frp是一个内网穿透工具,具体介绍详见https://gofrp.org/
简介
frp分为服务端frps和客户端frpc两部分,主要使用配置文件对端口映射进行配置。
服务端
配置文件
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 12345678
vhost_http_port = 8888
vhost_https_port = 9999
token = 12345678
bind_port为frp服务的主端口
dashboard开头的配置是配置frp面板的端口及账户密码等
vhost开头配置分别对应http和https的端口配置
token配置为秘钥,只有客户端配置了跟服务端一样的秘钥,才能链接上
使用docker启动服务端
docker run --restart=always --network host -d -v /root/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps
需要使用-v参数,将本地的配置文件映射到容器中,上述配置才会生效。至此服务端配置完成(记得公网的服务器需要在运营商侧把端口都开放,即防火墙、安全组之类的设置)
客户端
配置文件
[common]
server_addr = www.yourdomain.com
server_port = 7000
token = 12345678
[rdp]
type = tcp
local_ip = 0.0.0.0
local_port = 3389
remote_port = 3389
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2222
[web]
type = http
local_port = 80
custom_domains = www.yourdomain.com
common中的内容用于连接服务端,其中server_addr为服务端的ip地址或者域名,server_port为上述服务端配置的端口,token为服务端配置的token(需要一致才能连接,起到鉴权的作用)
其余部分为各个用途自己的配置,如windows远程桌面的配置rdp,将服务器3389端口映射到内网3389端口;ssh配置将服务端2222映射到内网22端口;web配置,将www.yourdomain.com 域名映射到内网80端口等。更多配置参考:https://gofrp.org/docs/examples/
使用docker启动客户端
docker run --restart=always --network host -d -v C:/Users/Administrator/Documents/frpc.ini:/etc/frp/frpc.ini --name frpc snowdreamtech/frpc
需要使用-v参数,将本地的配置文件映射到容器中,上述配置才会生效。这里需要注意,命令中是frpc而不是frps,与服务端有区别,别写错了。(服务端是server,所以是frps。客户端是client,所以是frpc)