Docker部署内网穿透工具FRP
怎样从公网随时随地访问家里的任何设备?
可以用一款叫frp的内网穿透工具来解决上面的问题
配置服务端并运行FRP
在拥有公网IP的设备上部署FRP的服务端frps
我用的是docker + docker-compose部署
docker-compose.yml如下:1
2
3
4
5
6
7
8services:
frps:
restart: always
network_mode: host
volumes:
- './frps.toml:/etc/frp/frps.toml' #这里我选择将 frps.toml 文件放在和 docker-compose.yml 文件所在的同一个的目录下
container_name: frps
image: snowdreamtech/frps
frps.toml如下:1
2
3
4
5
6
7bindPort = 5553 # frp 监听端口,与客户端绑定端口
auth.token = "token" # 设置客户端 token。如果在服务端配置了 token,对应的客户端也需要配置同样的 token,如果客户端不填写则连不上服务端
webServer.user = "dashboard登录用户名"
webServer.password = "dashboard登录密码"
webServer.addr = "0.0.0.0" # 若要从公网访问登录dashboard,此项必填!!!
webServer.port = 5556 # dashboard 端口
启动容器,FRP的服务端搞定
配置客户端并运行FRP
在客户端下载相应的frp软件,解压缩,删除frps开头的文件
打开frpc.toml文件,输入以下内容:1
2
3
4
5
6
7
8
9
10
11serverAddr = "公网设备IP"
serverPort = 5553
auth.token = "token"
# 这个配置用于连接windows的远程桌面
[[proxies]]
name = "windows_RDP" # 随便填,便于标识就好
type = "tcp" # 这里只是个例子,安全起见可使用 stcp 或 xtcp 实现端对端的连接(具体配置看官方文档)
localIP = "127.0.0.1"
localPort = 3389 # 默认情况下 win 的远程桌面服务使用 3389 端口。
remotePort = 9527 # 将远程服务端的 9527 端口映射到客户端本地的 3389 端口
配置好frpc后,在设备的命令行工具中使用如下命令启动客户端程序:1
frpc.exe -c frpc.toml
FRP有很多用法,具体参考此在线文档