内网穿透frp使用

1. 添加server配置文件 frps.toml

bindPort = 7000
bindAddr = "0.0.0.0"

2. 添加client配置文件 frpc.toml

serverAddr = "192.168.0.189"
# frps服务器端口
serverPort = 7000

[[proxies]]
name = "sql-colder"
type = "tcp"
localIP = "127.0.0.1"
# 本地服务端口
localPort = 8090
# 远程服务器发布端口,将流量路由到frp client,frp client再将流量路由到本地服务
remotePort = 18090

3. 使用docker启动server

docker run -d --rm --network host --name frps -v /tmp/frp/frps.toml:/etc/frp/frps.toml snowdreamtech/frps

4. 启动Windows客户端:

frpc.exe -c frpc.toml

GitHub上可下载frp客户端和服务器。

设计分析:

  1. 启动frps服务器。
  2. 启动frpc客户端并连接到frps服务器。
  3. frpc客户端通知frps服务器监听客户端指定的端口remotePort。
  4. frps使用remotePort启动tcp服务并等待用户连接。
  5. 用户访问frps:remotePort,frps将请求转发到frpc。
  6. frpc再将收到的请求转发到本地服务。
  7. 本地服务回复内容到frpc,frpc再回复给frps,frps最终转发到用户。