FRP内网穿透部署

FRP (Fast Reverse Proxy) 是一款高性能的内网穿透工具,FRP 的工作原理是利用内网机器主动与公网服务器建立连接,从而创建一个数据隧道,使得外网流量可以通过这个隧道被转发到内网机器。这样,即使内网机器没有公网 IP,也可以被外网访问。

FRP分为FRPS(服务器)和FRPC(客户端)。服务器需要有公网IP,客户端部署在你想要穿透的内网机上,同局域网布一个客户端就行了。

FRPS(FRP 服务端)

SSH进入服务器,用一键安装脚本部署:

1
2
3
wget https://raw.githubusercontent.com/MvsCode/frps-onekey/master/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install

接着脚本会让你依次设置各种端口,为了避免冲突,建议手动设置各个端口号,我设置的如下:

1
2
3
4
5
6
BindPort 7000
HTTP Port 8800
HTTPS Port 8443
Web面板端口 8555
账号密码都是 admin
token 设置长密码

域名地址,默认
最大用户默认
接下来各种日志选择都默认即可

安装好后运行 FRP(后台运行)

1
nohup ./frps -c frps.ini >/dev/null 2>&1 &

访问服务器公网ip:Web面板端口,能成功进入WEB后台就成功了。

常用命令

1
2
3
4
5
开启FRP:frps start

停止FRP:frps stop

重启FRP:frps restart

FRPC(FRP 客户端)

这里使用Docker安装。

镜像名:
stilleshan/frpc

docker pull拉一下或者可视化面板拉一下。

我的镜像版本是0.62.1,这个版本已经不支持ini了,所以我用的是toml。

将docker内部地址/frp/frpc.toml映射到自己的物理地址。

配置文件内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[common]
server_addr = 你的服务器 IP
server_port = frp 通信通道端口号(最开始设置的第一个)
token = 你的token

[任务名称,随便写,不能重名,如:NAS1]
type = tcp
local_ip = 局域网 IP
local_port = 本地端口号
remote_port = 对外端口号

[任务名称,随便写,不能重名,如:NAS2]
type = tcp
local_ip = 局域网 IP
local_port = 本地端口号
remote_port = 对外端口号

注意:每次增加设备或者改写配置都需要重启 Docker 容器才会生效。

现在在浏览器打开服务器IP/域名:端口号就可以正常访问内网的设备了。

参考文章:2024 一键部署 FRP 内网穿透服务端 + 群晖 NAS 客户端配置 | 保姆级教程