在个人云服务器上搭建 frp 内网穿透服务的操作步骤
1、内网穿透的作用
-
远程办公:在家或出差在外时,可以远程访问公司内网的业务系统、代码仓库、数据库。
-
开发调试:第三方回调接口测试、本地开发环境对外展示、小程序(公众号)开发的本地调试。
-
个人应用:游戏联机、远程访问 NAS (或个人电脑硬盘)上的文件资源。
2、内网穿透的工具
| 工具 | 优点 | 缺点 | 适用人群 |
|---|---|---|---|
| frp | 开源免费、功能强大、自主可控 | 需要自购服务器,技术门槛较高 | 能自行维护服务器的用户 |
| ZeroTier | 配置简单、安全性高 | 不适合对外提供公开服务,所有设备都要安装客户端 | 需要将分布在各地的设备组成一个虚拟局域网的用户 |
| 花生壳 | 操作简单、到手即用 | 免费版带宽低、限制多,数据经过第三方服务器 | 没有技术基础,或愿意为省心付费的用户 |
3、frp 的工作原理

如上图所示,因为 IPV4 的地址数量有限,所以不是每台联网设备都有公网 IP ,因此无法直接建立连接进行访问。
没有公网 IP 但安装了 frp 客户端的设备,会主动向有公网 IP 且安装了 frp 服务端的服务器建立连接;并将内网(或本地)的某个服务,关联到服务器的某个端口上。
这样一来,特定用户(知道服务器公网 IP 和端口等信息的用户),便能通过服务器的特定端口,访问到没有公网 IP 的设备的服务或资源。
提示:内网 IP 地址的范围有三种:
10.0.0.0 ~ 10.255.255.255,192.168.0.0 ~ 192.168.255.255,172.16.0.0 ~ 172.31.255.255
4、安装 frp 服务端
4.1、下载 frp 程序包

如上图所示,使用 MobaXterm 等工具连接云服务器,执行命令下载 frp 官方的程序包到云服务器中。
wget https://github.com/fatedier/frp/releases/download/v0.71.0/frp_0.71.0_linux_amd64.tar.gz
注意:frp 程序包的官方下载链接是国外的,可能会由于网络原因导致下载失败,(不同时间段)多试几次即可。
提示:本示例下载的是 Linux 系统 x86_64 架构的 v0.71.0 版本,如需使用其他版本,请到 frp 官方发布页( https://github.com/fatedier/frp/releases )复制对应的下载链接。
4.2、解压 frp 程序包

如上图所示,解压已下载到云服务器的 frp 程序包。
tar -zxvf frp_0.71.0_linux_amd64.tar.gz
提示:本示例的 frp 程序包名称为“frp_0.71.0_linux_amd64.tar.gz”,如下载了其他版本的程序包,命令需替换对应的文件名称。
4.3、进入 frp 程序目录

如上图所示,frp 程序目录里只有简单的几个文件。
frps 和 frps.toml 是服务端的可执行程序以及配置文件,“s”表示“server”的意思。
frpc 和 frpc.toml 是客户端的可执行程序以及配置文件,“c”表示“client”的意思。
cd frp_0.71.0_linux_amd64/
提示:本示例的 frp 程序目录名称为“frp_0.71.0_linux_amd64/”,如下载了其他版本的程序包,命令需替换对应的目录名称。
4.4、修改 frps.toml 配置文件

vi frps.toml

# 服务端监听端口配置
bindPort = 7000 # 本示例使用 frp 的默认监听端口 7000
# 安全配置
[auth]
method = "token"
token = "Test@123" # 本示例使用的演示 token 值,实际请修改为更复杂的
# frp 管理界面配置(可选)
[webServer]
addr = "0.0.0.0"
port = 7500 # 本示例使用 frp 的默认 web 管理界面端口 7500
user = "admin" # 可自定义用户名
password = "Test@123" # 本示例使用的演示密码,实际请修改为更复杂的
# 日志配置
[log]
to = "./frps.log"
level = "info"
maxDays = 3
提示:关于 vi 工具的模式切换和保存操作,请参考 Vim常用操作速查表 这篇文章的第 2 小节和 3.2 小节。
4.5、启动 frp 服务

如上图所示,frp 服务端成功。
nohup ./frps -c frps.toml > frps.out 2>&1 &
4.6、关闭 frp 服务

如上图所示,如果 frp 服务不用(或修改配置文件)时,可以关闭 frp 服务。
kill -15 frp的实际进程id
5、使用 frp 客户端
5.1、下载 frp 程序包

如上图所示,因为本文演示在 Windows 系统中使用 frp 客户端,所以下载的是 Windows 系统的 frp 程序包。
注意:frp 程序包的官方下载链接是国外的,可能会由于网络原因导致下载失败,(不同时间段)多试几次即可。
5.2、解压 frp 程序包

如上图所示,解压已下载的 frp 程序包。
5.3、移动 frp 程序目录

如上图所示,将解压后的 frp 程序目录移动到合适的位置,本示例移动到“D:\DevTools”目录下。
5.4、修改 frpc.toml 配置文件

如上图所示,可以使用记事本打开修改 frpc.toml 配置文件。
# 连接服务端的配置
serverAddr = "x.x.x.x" # 安装了 frp 服务端的服务器 IP 地址
serverPort = 7000 # frp 服务端的监听端口
auth.token = "Test@123" # token 值,用于和服务端认证,需与服务端保持一致
# 端口转发配置
[[proxies]]
name = "test-web" # 自定义代理标识,不可重复
type = "tcp" # 协议类型,一般是 tcp 或 udp
localIP = "127.0.0.1" # 内网 IP 地址,本例写的 127.0.0.1 代表本机地址
localPort = 8080 # 内网服务的端口
remotePort = 6002 # 关联内网服务端口的公网端口,可自定义
# 文件访问配置
[[proxies]]
name = "test-file" # 自定义代理标识,不可重复
type = "tcp" # 协议类型,文件服务是 tcp 协议
remotePort = 6001 # 访问本地文件服务的公网端口,可自定义
[proxies.plugin]
type = "static_file" # 启用静态文件插件
localPath = "D:\\pt\\CaptainTsubasa2018" # 对外开放的本地文件目录
stripPrefix = "myfile" # 自定义访问路径名,http://服务端IP地址:6001/myfile/ ,即可访问本地目录
httpUser = "TestUser" # 自定义用户名,用于访问认证
httpPassword = "Test@123" # 自定义密码,用于访问认证
注意:云服务器对 frpc.toml 配置文件模板中的 6000 端口可能有特殊限制,不建议使用这个端口。
5.5、启动 frp 客户端

如上图所示,在 frp 程序目录中,打开 cmd 窗口,然后执行启动客户端的命令。
如果 frp 客户端不用(或修改配置文件)时,直接关闭 cmd 窗口即可。
frpc.exe -c frpc.toml
提示:Linux 环境下客户端的启动命令是:nohup ./frpc -c frpc.toml > frpc.out 2>&1 &
注意:启动 frp 客户端之前,需先开放云服务器的防火墙端口(见第 6 小节),否则无法连接 frp 服务端的监听端口(本例为 7000 )。
6、开放云服务器的防火墙端口
6.1、控制台的防火墙

如上图所示,在云服务器的防火墙配置中,添加四条“入方向规则”。
目的端口 7000 是 frp 服务端的监听端口,目的端口 7500 是 frp 服务端的管理界面端口。
目的端口 6002 用于 frp 客户端的端口转发,目的端口 6001 用于 frp 客户端的文件访问。
协议类型都是 TCP 协议,访问来源均是任何位置。
6.2、服务器的防火墙

如上图所示,除了在阿里云的控制台开放端口外,还需要在服务器内开放相关端口。
firewall-cmd --add-port=7000/tcp --permanent
firewall-cmd --add-port=7500/tcp --permanent
firewall-cmd --add-port=6002/tcp --permanent
firewall-cmd --add-port=6001/tcp --permanent
firewall-cmd --reload
提示:“firewall-cmd --reload”命令是重启服务器内的防火墙,让刚刚的防火墙配置修改生效。
7、测试内网穿透效果
7.1、端口转发

如上图所示,可以通过云服务器 IP 的 6002 端口,访问到本地电脑的 8080 端口的服务。
7.2、文件访问

如上图所示,访问 http://服务端IP地址:6001/myfile/ 时,出现了认证弹窗。
注意:myfile 后面还要有 /

如上图所示,认证通过后,可以访问到本地文件。
8、使用 frp 管理界面

如上图所示,访问 http://服务端IP地址:7500 时,出现了认证弹窗。

如上图所示,认证通过后,可以查看到 frp 的端口代理状态。
本文参考
【1】【知乎用户58412】【frp 内网穿透完整指南:从入门到实战】【知乎】【2025-06-04】
【2】【在下莫老师】【使用云服务器搭建内网穿透!纵享独属于个人的丝滑体验!】【bilibili】【2025-10-11】
【3】【小in分享】【远程办公、游戏联机与网站部署必备技能:零基础学会花生壳内网穿透技术】【bilibili】【2024-06-28】
【4】【Twilightlx】【frp内网穿透简单搭建教程】【bilibili】【2024-07-15】
【5】【风灵誓】【frp内网穿透最新实践教程 从零开始详细步骤】【bilibili】【2025-04-06】
【6】【司波图】【独享带宽,教你搭建只属于自己的内网穿透服务器(基于frp与zerotier moon服务器)】【bilibili】【2022-05-24】
本文来自博客园,作者:Javaer1995,转载请注明原文链接:https://www.cnblogs.com/Javaer1995/p/22684031


浙公网安备 33010602011771号