几年前,开发微信网页,经常用到内网穿透功能,当时用的花生壳或者ngrok,很方便。目前花生壳也是最佳选择吧,中文界面,下载即用,但是免费的只能创建1-2个。

    ngrok国外很常用,之前开发过paypal支付,看到过paypal支付文档上就有ngrok。而且ngrok开源,支持部署到自己的服务器,支持udp/tcp等协议,而且国内也有很多开发者部署到自己服务器供其他人使用。

    我现在介绍的一个是叫 frp 的软件,国人用golang写的,很厉害,也是开源的,支持docker部署。frp分frps(frp服务器)和frpc(frp客户端)


下面介绍如何docker部署 frps 和 启动 frpc


 docker pull yangliu/frps
 # 拉取frps镜像
 docker run -d --name frps \
 -v ./conf/frps.ini:/conf/frps.ini \ # 制定一个配置文件
 -p 7000-8000:7000-8000 \ # 开放端口
 --restart=always \ # 设置宕机总是尝试重启
 yangliu/frps

frps完整配置文件


# frps.ini 简单配置
[common]
bind_port = 7000  #开放端口

服务器搭建好之后,在需要穿透的客户端上从这里下载客户端

然后通过命令行启动客户端


# frpc.ini 客户端文件简单配置
[common]
# 公网IP
server_addr = x.x.x.x
# 公网端口
server_port = 7000

[ssh]
type = tcp
# 本地ip
local_ip = 127.0.0.1
# 需要对外开放的端口号
local_port = 22
# 外网通过访问的端口
remote_port = 6000
./frpc -c ./frpc.ini  #启动客户端 指定启动配置

frpc完整配置文件