Frp 安装教程
Frp 是内网穿透界的瑞士军刀,是鼻祖级内网穿透工具,今天来介绍 Frp 的安装。本文服务器操作系统均为 Debian 12。
安装前提
现有一台具有公网ip的服务器,还有一台内网服务器服务器B,需要通过外网访问位于内网服务器的网站,还需要能在外网通过SSH控制内网服务器。
下载安装包
从官方GitHub的Release页面下载最新版的二进制文件:https://github.com/fatedier/frp/releases ,以下安装版本为:v0.61.0,linux版下载地址:点击这里下载 或在服务器上运行
mkdir /app
cd /app
wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
公网服务器部署frp
公网部署的是frps,是frp的服务端。
- 上传安装包到/app目录并解压
tar -xf frp_0.61.0_linux_amd64.tar.gz
mv frp_0.61.0_linux_amd64 frp
- 修改配置
运行命令:
cd /app/frp
nano frps.toml
参照以下内容:
#服务绑定的IP与端口
bindAddr = "0.0.0.0"
#端口
bindPort = 7000
#web dashboard配置,可通过ip:7000登录后查看frp面板
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"
#启用prometheus监控指标
enablePrometheus = true
#token权限验证,需与客户端配置一致
auth.method = "token"
auth.token = "123456"
#设置http和https服务的端口
vhostHTTPPort = 80
vhostHTTPSPort = 443
#日志配置
log.to = "/app/frp/logs/frps.log"
log.level = "info"
log.maxDays = 3
修改完成后按Ctrl+x
然后再按y
回车即可。
- 创建日志目录
mkdir logs
- 启动服务
命令行方式启动
./frps -c ./frps.toml
启动后窗口不能关闭或者退出
后台启动
nohup ./frps -c ./frps.toml &> /dev/null &
此启动为后台运行,每次都得手动运行
systemd方式启动(推荐)
准备启动文件
nano /etc/systemd/system/frps.service
内容如下:
[Unit]
#服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
#启动frps的命令,需修改为您的frps的安装路径
ExecStart = /app/frp/frps -c /app/frp/frps.toml
[Install]
WantedBy = multi-user.target
保存退出后就可以启动服务了:
systemctl daemon-reload
systemctl start frps
内网服务器部署frp
内网部署是frpc,是frp的客户端。
- 上传安装包至/app并解压:
tar -xf frp_0.61.0_linux_amd64.tar.gz
mv frp_0.61.0_linux_amd64 frp
cd frp
- 创建代理配置目录与日志存储目录
mkdir logs
- 修改配置
nano frpc.toml
内容参照下面:
#配置公网服务器上frp服务的IP与端口
serverAddr = "x.x.x.x"
serverPort = 7000
#web dashboard配置
webServer.addr = "0.0.0.0"
webServer.port = 7400
webServer.user = "admin"
webServer.password = "admin"
#日志配置
log.to = "/app/frp/logs/frpc.log"
log.level = "info"
log.maxDays = 3
#token权限验证,需与服务端配置一致
auth.method = "token"
auth.token = "123456"
#http访问
[[proxies]]
name = "http" #名称
type = "http" #代理类型
localPort = 80 #本地端口
customDomains = ["your domain"] #域名
#https访问
[[proxies]]
name = "https" #名称
type = "https"#代理类型
localPort = 443 #本地端口
customDomains = ["yourdomain"] #域名
#ssh
[[proxies]]
name = "ssh" #名称
type = "tcp" #代理类型
localIP = "127.0.0.1" #本地IP
localPort = 22 #内网服务监听的端口
remotePort = 2022 #需要在公网服务器上监听的端口
- 启动服务
命令行方式启动
./frpc -c ./frpc.toml
后台启动
nohup ./frpc -c ./frpc.toml &> /dev/null &
使用systemd方式启动(推荐)
准备启动文件:
nano /etc/systemd/system/frpc.service
内容和服务端的大同小异
[Unit]
Description = frp client
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
ExecStart = /app/frp/frpc -c /app/frp/frpc.toml
[Install]
WantedBy = multi-user.target
启动服务
systemctl daemon-reload
systemctl start frpc
访问测试
在浏览器输入你的网址http://
即可访问到内网的网站。
通过ssh工具可以管理内网服务器,IP地址填公网服务器的ip,端口填2022。
公网服务器web界面:http://<公网IP>:7500
公网服务器监控指标:http://<公网IP>:7500/metrics
注意,如果公网服务器有安全组,记得放开相应的端口。
附录
官网服务端与客户端的全配置文件,仅供参考:
-
服务端全配置文件:frps_full_example.toml
-
客户端全配置文件:frpc_full_example.toml
官方完整文档
其实,frp的功能不仅仅是这些,还有很多,官方有详细的中文文档,详见: