前提条件: 需要一台有公网IP的服务器
实现效果: 将公网服务器的一个端口映射本地的一个端口,如服务器为ninvfeng.com, 将服务器的8888端口映射到本地80端口, 然后浏览器访问http://ninvfeng.com:8888即可打开本地的站点, 对于开发需要公网访问的第三方接口特别方便
原理说明:内网穿透由三部分组成:client端,server端,bridge端;client和server主动连接bridge端进行桥接. 当用户访问server端,流程是:
- 首先server端主动和bridge端建立连接;
- 然后bridge端通知client端连接bridge端和目标端口;
- 然后client端绑定“client端到bridge端”和“client端到目标端口”的连接;
- 然后bridge端把“client过来的连接”与“server端过来的连接”绑定;
- 整个通道建立完成;
操作步骤
curl -L https://raw.githubusercontent.com/snail007/goproxy/master/install_auto.sh | bash
2. 服务器执行以下命令启动服务端与桥接端
proxy bridge -p ":9999" -C /root/proxy/proxy.crt -K /root/proxy/proxy.key --daemon
proxy server -r ":8888@:80" -P "ninvfeng.com:9999" -C /root/proxy/proxy.crt -K /root/proxy/proxy.key --
daemon
3. 将服务端的证书下载到本地
4. 本地执行
proxy client -P "ninvfeng.com:9999" -C "D:/tools/proxy/proxy.crt" -K "D:/tools/proxy/proxy.key" --daemon
5. 完成,这时全世界访问ninvfeng.com:8888都可打开本地web目录,对微信开发之类的也是非常方便.