Windows、Linux环境下搭建ngrok服务器
Windows、Linux环境下搭建ngrok服务器
微信公众号、支付宝支付等开发要求有公网(外网)服务器。每次调试时,上传代码到服务器很不方便。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位。访问网址https://www.hongzaosoft.cn/downloadngrok.jsp 即可制作下载 windows、Linux版本的ngrok服务端和客户端。
生成好的程序是绿色免安装版,直接拷贝就可以用,连脚本都配置好了。
一、搭建前准备条件:
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
客户端也要放开对应的端口,一般客户端安全性要求不高,可以直接关掉防火墙
windows开放防火墙有图形化界面,不赘述。
二、编译服务器端、客户端软件
自己编译需下载安装Git、Go环境、编译ngrok、为域名生成证书。
比较复杂,要了解的东西比较多,这里可以借助红枣软件提供的生成服务器端、客户端软件的功能,避免繁杂的工作。
自己弄下来得大半天功夫,一个程序员一天都值几百大洋,不如直接通过红枣软件提供的服务生成来的好。
图形化界面,通俗易懂;编译好软件的同时,生成服务端和客户端启动脚本。
服务器端配置:
如果您没有域名,或者不想用域名,也可以填您的公网ip
客户端配置:
这里配置一个http转发示例:讲内网tomcat的8080端口使用wx.hongzaosoft.cn这个域名来访问
那么访问https://wx.hongzaosoft.cn就可以访问到https://127.0.0.1:8080的效果。
再配置一个tcp转发示例:
比如转发我的世界游戏用的25565端口到ngrok服务器的25565端口,则可如下配置
点提交后,会跳转到ngrok下载页面。下载得到的文件如下:
生成的文件全部是绿色免安装,拷过去就可以用了。为了提高您的下载速度,将主程序放到了百度网盘,从百度网盘下载下来后,windows下双击bat文件,Linux下执行sh的shell脚本就可以了。
三、服务器、客户端启动方法
以windows为例,从百度网盘下载服务端exe文件到《启动ngrok服务端.bat》所在目录后,双击运行这个bat文件,启动后界面
接下来启动客户端。从百度网盘下载服务端exe文件到《启动端口25565.bat》所在目录后,双击运行这个bat文件,就可以映射25565端口了,显示online表明成功。
如果要启动wx这个子域名的http内网穿透,双击《启动子域名wx.bat》就可以了,显示online的成功界面如下:
如果要做其他tcp端口、http子域名的内网穿透,详细参见生成的软件中包含的文档。
Linux的使用方法也很简单,有写好的对应的shell脚本。
软件的下载链接https://www.hongzaosoft.cn/downloadngrok.jsp
客户端配置进阶篇
如果需要转发服务器ngrok.hongzaosoft.c的80端口到本地的8080;
转发服务器ngrok.hongzaosoft.c的tcp 22端口到本地的22
转发服务器ngrok.hongzaosoft.c的tcp 3389端口到本地的3389
则可以这么做,创建一个ngrok.cfg文件,配置如下:
server_addr: "ngrok.hongzaosoft.cn:4443"
trust_host_root_certs: false
tunnels:
httptest:
proto:
http: 8080
ssh1:
remote_port: 22
proto:
tcp: 22
tcp2:
remote_port: 3389
proto:
tcp: 127.0.0.1: 3389
配置文件写好后,我们可以写一个bat文件,示例如下:
ngrok.exe -config=ngrok.cfg start httptest ssh1 tcp2
以后直接运行bat文件就可以启动客户端了
最后更新:2017-07-18 20:35:05