[内网穿透]FRP部署方式和步骤说明
背景
当设备处于无公网IP的内网环境时,实现外网访问需要借助特定工具。当前主流解决方案可分为两大类:
一、内网穿透类工具
代表方案:FRP、NPS
通过建立中继通道将内网服务暴露到公网,需部署服务端(可自建或使用第三方)和客户端程序,但访问端无需特殊配置。
二、虚拟局域网类工具
代表方案:ZeroTier、Tailscale
将分散设备组建逻辑上的虚拟局域网,理论上访问内网设备如同局域网互联。但该方案存在两个显著缺陷:
1.全链路软件依赖
完整使用需在服务端(公共/自建)、客户端及访问端同时部署软件服务。任何需要访问内网的终端都必须安装专用组网软件,不仅操作繁琐,更无法适配禁止安装第三方软件的封闭设备场景(如企业级IoT设备或公共终端)。
2.中继传输性能瓶颈
当P2P直连打洞失败时,流量将被迫通过服务器中转。此类工具的免费公共服务器普遍存在严重带宽限制(通常仅提供1-10Mbps低速通道),而自建中继服务器的成本与复杂度,反而与直接采用内网穿透方案相当——后者本就支持灵活的自托管服务端部署,且天然具备更可控的传输质量保障。
内网穿透类工具的部署也不算复杂:只需准备一台带宽充足的公网服务器,在服务端和客户端分别安装对应软件即可,访问端设备无需任何额外配置。
其中,FRP 是内网穿透工具里较为轻量且易用的代表。接下来将详细介绍 FRP 的具体部署流程与操作步骤。
下面将讲解FRP部署方式和步骤。
准备工作
1,一台云服务器
建议优先选用高带宽云服务器——当传输数据量较大时,更大的带宽能有效减少数据重新同步的耗时。
我推荐 雨云 (邀请链接 https://www.rainyun.com/wifilu_),本站服务器就是雨云家的湖北十堰高防云服务器。访问速度嘎嘎快。
雨云的服务器带宽大,例如在宁波节点提供起步带宽100Mbps的云服务器,即使在网络高峰时段也能稳定跑满带宽。
如果你通过我的邀请(邀请链接 https://www.rainyun.com/wifilu_ ,邀请码:wifilu )购买云服务器。那么你在部署的过程遇到问题,可以加群咨询我。
目前雨云 有首月半价活动,宁波的 2核2G100M云服务器 首月只需要30元。年付7折。100M带宽对于内网穿透完全够用了。
如果你只是想尝试一下,雨云 也支持1元试用24小时。
2,准备一个域名(可选)
如果你希望使用域名访问,那么准备一个域名,并解析到云服务器IP
3,了解基本概念
FRP分为服务端(FRPS)和客户端(FRPC),需要你分别搭建。
服务端搭建
下面只介绍三种常用的搭建方式,其他方式自行探索。
1,直接部署FRPS服务端
适用于空白服务器。
1.1,准备工作
系统请选择Debian12 或者Ubuntu24.04。
请前往 https://github.com/fatedier/frp/releases 下载最新的frp服务端。
绝大部分服务器选择 frp_0.64.0_linux_amd64.tar.gz 这种amd64架构即可。
1.2,上传服务端到服务器并解压
利用ftp或者sftp工具上传文件到服务器并解压。
我上传的目录是 /usr , 解压后的的目录是 /usr/frp_0.64.0_linux_amd64
root@hbgfk2yNjih:/usr/frp_0.64.0_linux_amd64# ls
frpc frpc.toml frps frps.toml LICENSE
1.3,编辑服务端配置文件-frps.toml
使用nano或者vim工具编辑frps.toml 配置文件
bindAddr = "0.0.0.0"
# FRP 服务端监听所有网卡IP,等待客户端连接
bindPort = 7000
# 服务端和客户端通信端口-自定义
auth.method = "token"
# 通信模式
auth.token = "tongxinlingpai"
# 通信令牌-自定义
vhostHTTPPort = 7001
# 服务端HTTP端口-自定义
vhostHTTPSPort = 7002
# 服务端HTTPS端口-自定义
webServer.addr = "0.0.0.0"
# 监控面板可访问的地址,"0.0.0.0" 表示所有IP均可访问
webServer.port = 7500
# 监控面板服务端口-自定义
webServer.user = "admin"
# 监控面板服务访问用户名-自定义
webServer.password = "admin20252025"
# 监控面板服务访问密码-自定义
log.maxDays = 7
# 日志保存天数-自定义
log.level = "info"
# 日志级别,可选值为 trace, debug, info, warn, error,默认级别为 info
log.to = "/usr/frp_0.64.0_linux_amd64/info.log"
# 日志输出文件路径 (根据自己的实际目录填写)
特别说明下http和https端口,大多数情况下你的服务器也是需要架设网站的,所以建议将默认的80和443端口留给Nginx使用,当然你也可以直接把80和443给frp使用
vhostHTTPPort = 80
# 服务端HTTP端口-自定义
vhostHTTPSPort = 443
# 服务端HTTPS端口-自定义
1.4,创建系统服务
使用nano或者vim工具创建frps.service配置文件
nano /etc/systemd/system/frps.service
配置文件如下:
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /usr/frp_0.64.0_linux_amd64/frps -c /usr/frp_0.64.0_linux_amd64/frps.toml
[Install]
WantedBy = multi-user.target
管理命令如下
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
设置 frps 开机自启动
sudo systemctl enable frps
启动后查看状态如下,表示启动成功
1.5,防火墙放行相关端口
ssh中先安装ufw防火墙
apt install ufw -y
再放行以下端口
sudo ufw allow 7000
sudo ufw allow 7001
sudo ufw allow 7002
sudo ufw allow 7500
1.6,查看面板
面板只是用来查看一些统计信息,无法进行任何操作。浏览器访问ip:7500 即可查看。
2,宝塔面板部署(基于docker)
2.1,准备工作
安装宝塔面板,安装宝塔Docker模块
2.2,安装FRP 服务端应用
2.3,填写frps安装配置
这个配置和直接安装frps大同小异,不过这里不能直接设置通信令牌。
2.4,修改通信令牌
安装完成之后需要修改通信令牌,因为宝塔所有的frps通信令牌一样。
进入安装目录
进入data目录,找到frps.toml文件
编辑frps.toml文件
宝塔的FRPS所有的auth.token 通信令牌一样,都是 60d8a83c544e6168db,所以一定要修改
修改之后记得重启frps容器
2.5,防火墙
宝塔会帮你自动放行刚才设置中的几个端口。如果没有放行,请参照上文中的 1.5,防火墙放行相关端口 手动放行。
2.6,查看面板
面板只是用来查看一些统计信息,无法进行任何操作。浏览器访问ip:7500 即可查看。
3,1Panel面板部署(基于docker)
3.1,准备工作
安装1Panel面板,安装好Docker模块
3.2,安装FRP 服务端应用
3.3,填写frps安装配置
这个配置和直接安装frps大同小异,不过这里不能直接设置http和https端口。
3.4,修改HTTP和HTTPS端口
进入安装目录
进入data目录,找到frps.toml文件
编辑找到frps.toml文件,设置http和https端口。
在frps.toml文件中,添加如下代码
vhostHTTPPort = 7001
# 服务端HTTP端口-自定义
vhostHTTPSPort = 7002
# 服务端HTTPS端口-自定义
修改之后记得重启frps容器
3.5,防火墙放行相关端口
ssh中先安装ufw防火墙
apt install ufw -y
再放行以下端口
sudo ufw allow 7000
sudo ufw allow 7001
sudo ufw allow 7002
sudo ufw allow 7500
3.6,查看面板
面板只是用来查看一些统计信息,无法进行任何操作。浏览器访问ip:7500 即可查看。
客户端搭建
下面三种常用的搭建方式,其他方式自行探索。
1,iStoreOS(Openwrt)
这里以iStoreOS系统为例。
普通Openwrt上的设置参数和iStoreOS一样,只是UI排布略有不同,固不作另外说明。
1.1,iStore安装frpc客户端
安装好之后frpc客户端在 服务 菜单中
1.2,配置基础信息
打开frpc客户端,基础配置只需要设置3个参数即可
服务器地址:你服务器的IPV4地址,比如:1.1.11.111
服务器端口:你设置的服务端配置文件的bindPort 参数,本文使用的是 7000
令牌:你设置的服务端配置文件的 auth.token 参数,本文使用的是 tongxinlingpai
其他设置参数可以不用填写或者修改。
1.3,添加代理项目
在代理设置中点击添加新代理,下面会添加一个TCP和一个HTTP代理作为示例。
1.3.1,添加http代理
这里添加一个 远程访问路由器的HTTP代理作为示例。
访问方式是 http://域名:7001 (7001是本文设置的默认http端口)
1.3.1.1,常规设置中设置如下:
代理名称:随意
代理类型:http
本地IP:因为是访问路由器本身,路由器的内网IP是192.168.100.1,所以这里是127.0.0.1
本地端口:因为是访问路由器本身,所以这里是80
1.3.1.2,http选项设置
只需要设置你想要访问的域名即可 。
设置好之后保存并应用即可。
1.3.1.2,http远程访问
浏览器访问 http://域名:7001 (7001是本文设置的默认http端口),就可以访问路由器的管理页面了
如果把80端口留给了frp,那么你直接 http://域名 即可访问。
1.3.2,添加tcp代理
这里添加一个 远程访问路由器的tcp代理作为示例。
远程访问方式是 ip:端口
1.3.2.1,常规设置中设置如下:
代理名称:随意
代理类型:tcp
本地IP:因为是访问路由器本身,路由器的内网IP是192.168.100.1,所以这里是127.0.0.1
本地端口:因为是访问路由器本身,所以这里是80
远程端口:这是远程访问的端口,选一个不常用的端口即可,我随机选了个10081
设置好之后保存并应用即可。
1.3.2.2,云服务器放行10080端口
云服务器的ssh中执行
ufw allow 10081
1.3.2.3,远程访问
浏览器访问 http://ip:10081,就可以访问路由器的管理页面了
用域名访问可以节约端口,因为子域名理论上是无限的,如果你的云服务是共享IP端口较少,可以考虑。
用于端口访问可以省略域名,因为国内服务器域名访问很多时候需要备案。
各有优略根据自己的实际情况选择。
2,飞牛OS或者群晖
这里以飞牛OS为例,群晖和飞牛设置基本一致。
2.1,飞牛的应用中心安装Frpc客户端
2.2,桌面打开Frpc图标,编辑配置文件
serverAddr = "1.1.11.111"
# 你的服务器地址,请根据实际情况填写
serverPort = 7000
# 服务端配置文件的bindPort 参数,本文使用的是 7000
auth.method = "token"
auth.token = "tongxinlingpai"
# 服务端配置文件的 auth.token 参数,本文使用的是 tongxinlingpai
loginFailExit=false
#不能删除, 否则连接不上会闪退
# 这是一个http代理的示例,用于访问飞牛
[[proxies]]
name = "飞牛-HTTP"
type = "http"
localIP = "127.0.0.1"
localPort = 5666
# 飞牛的默认HTTP端口,请根据实际情况填写
customDomains = ["fn.wifilu.com"]
# 自定义的域名,需要你做好解析
# 这是一个tcp代理的示例,用于访问飞牛的WebDav服务
[[proxies]]
name = "飞牛_WebDav"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5005
# WebDav的端口,请根据实际情况填写
remotePort = 5005
# 远程WebDav的端口,请根据实际情况填写
需要注意,飞牛代理也可以使用tcp,示例如下
# 这是一个tcp代理的示例,用于访问飞牛
[[proxies]]
name = "飞牛-HTTP"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5666
# 飞牛的默认HTTP端口,请根据实际情况填写
remotePort = 5666
# 远程的访问端口,请根据实际情况填写
2.3,远程访问测试
浏览器访问 http://域名:7001 (7001是本文设置的默认http端口),就可以访问飞牛的管理页面了
3,Windows
3.1,下载软件
请前往 https://github.com/fatedier/frp/releases 下载最新的frp软件。
绝大部分Windows选择frp_0.64.0_windows_amd64.zip这种amd64架构即可。
需要注意某些防护软件会报风险,请自行判断是否继续。
下载后记得解压。
3.2,修改配置文件
修改客户端配置文件 frpc.toml
修改内容请直接参考 飞牛OS的配置文件,完全一致。