官方介绍

frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。

准备

* 一台有公网ip的服务器(阿里云服务器或腾讯云等)并且安装好docker
* truenas-scale(版本TrueNAS-SCALE-23.10.2)服务器一台

开始安装

我这里使用的frp版本是 0.54.0

安装服务端frps

拉取镜像

1
$ docker pull snowdreamtech/frps:0.54.0

宿主机新建/etc/frp/frps.toml frps配置文件并编辑,frps默认的监听端口是7000,我这里改成了 8085;frps的webserver管理端的端口是7500,我这里改成了 8086,整个配置文件如下:

1
2
3
4
5
6
7
8
bindPort = 8085

# The default value is 127.0.0.1. Change it to 0.0.0.0 when you want to access it from a public network.
webServer.addr = "0.0.0.0"
webServer.port = 8086
# dashboard's username and password are both optional
webServer.user = "frps的webserver用户名"
webServer.password = "frps的webserver密码"

运行镜像

1
$ docker run --restart=always --network host -p 8085:8085 -p 8086:8086 -d -v /etc/frp/frps.toml:/etc/frp/frps.toml --name frps 镜像id

安装客户端frpc

登录到 truenas scale 的 web 页面,点击 Apps

truenas scale 的 web 页面

然后点击右上角的 Discover Apps

truenas scale 的 web 页面

再点击 Custom App

truenas scale 的 web 页面

依次输入 Application Name、Image repository、Image Tag 内容,注意图中的 Image Tag 需要与 frps 的版本对应,输入 0.54.0

truenas scale 的 web 页面

挂载配置文件,方便后续的维护

truenas scale 的 web 页面

完成上面的配置后,我们进入到 truenas-scale 的 shell 命令窗口,编辑 /mnt/test/frpc/frpc.toml,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
serverAddr = "阿里云或腾讯云等的公网ip"
#和上面frps更改的绑定端口相同
serverPort = 8085

[[proxies]]
name = "test"
type = "tcp"
#本地内网中想要转发的电脑ip
localIP = "192.168.2.3"
#本地内网中想要转发的电脑服务端口,我这里是truenas-scal的管理端
localPort = 8089
#阿里云或腾讯云等的外网端口
remotePort = 8087

#如果你有多个想要转发的服务,这里可以继续配置
[[proxies]]
name = "test2"
type = "tcp"
localIP = "192.168.2.3"
localPort = 8090
remotePort = 8088

至此安卓工作结束

通过 http://阿里云或腾讯云等公网ip:8086 访问frp控制台

账号密码就是上面设置的webServer.user和webServer.password,正常会显示如下:

truenas scale 的 web 页面

如果访问不通请检查阿里云或腾讯云等主机防火墙是不是打开了对应的端口。