微信公众号、支付宝支付等开发要求有公网(外网)服务器。每次调试时,上传代码到服务器很不方便。ngrok很好的解决了这一问题。网上的文章大多是讲怎么在Linux下搭建ngrok服务器。其实依靠云计算的强大计算能力,可以实现快速编译制作windows操作系统下服务器端程序,也可以实现linux操作系统下的服务器端程序。目前测试支持 Windows XP/ Windows 7 (win7)/Windows Server 2008/Windows Server 2012,各类Windows 32位,64位操作系统。同时支持Linux系列服务器,Ubuntu Linux/Red Hat Linux/CentOS,Linux 32位,Linux 64位,Linux arm系列。访问网址http://www.hongzaosoft.cn/downloadngrok.html 即可制作下载 windows、Linux版本、Mac OS下的ngrok服务端和客户端。
生成好的程序是绿色免安装版,直接拷贝就可以用,连脚本都配置好了。
注意:使用ngrok必须使用安全证书,否则其他人使用端口扫描工具,扫到你的ngrok端口,可以直接连接到你的服务器。ngrok使用证书验证来保障通讯安全,某些二次开发的版本去掉了这一功能,在安全上有很大缺陷。而http://www.hongzaosoft.cn/downloadngrok.html 运用云计算的强大力量,快速为您生成用您的域名定制的证书,充分保障您服务器的安全。ngrok使用RSA非对称加密算法加密数据,数字证书签名,请不要使用去掉证书验证的版本。
生成的ngrok程序可选用户管理功能,在安全证书的基础上,连接时需要验证用户名和密码。针对Http隧道可分配子域名给用户,防止用户越权使用子域名;针对Tcp隧道可指定用户可以使用的端口号,防止用户越权使用端口。此功能对分享给多个好友,或者有偿给其他人使用时非常方便,在服务器端做用户权限验证,把您服务器的带宽充分利用起来。
一、搭建前准备条件:
1.如果是做tcp内网穿透,只需要公网ip,或者域名,域名可以不备案,但必须确保被解析到你的服务器公网ip上。
如果是做http穿透,必须要有域名,并且通常你的服务器提供商会要求域名备过案。
通常我们用自己的域名例如hongzaosoft.cn来给ngrok服务端用,如果被占用,也可以准备个二级域名比如ngrok.hongzaosoft.cn来专门给ngrok用,这个域名在后面编译服务器端会用到,配置文件里也必须与这个域名一致,否则连不上;此域名一旦生成,配置文件中不可更改。
2.防火墙准备:请开放以下端口:
4443:ngrok服务端默认用到的端口,此端口可以在配置文件中更换。
80:ngrok服务端http协议用到的端口,此端口可以在配置文件中更换。
还有您指定的remote远程服务器端口,例如将服务器的tcp端口25565转发到本地内网25565端口,则远程服务器必须开放25565端口,本地客户机开放25565端口。
怎么开放防火墙端口,以我的centos为例
#开放 8080 端
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
service iptables save