阅读720 返回首页    go 阿里云 go 技术社区[云栖]


Windows、Linux环境下搭建ngrok服务器

      WindowsLinux环境下搭建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.防火墙准备:请开放以下端口:

4443ngrok服务端默认用到的端口,此端口可以在配置文件中更换。

80ngrok服务端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开放防火墙有图形化界面,不赘述。

 

二、编译服务器端、客户端软件

自己编译需下载安装GitGo环境、编译ngrok、为域名生成证书。

比较复杂,要了解的东西比较多,这里可以借助红枣软件提供的生成服务器端、客户端软件的功能,避免繁杂的工作。

自己弄下来得大半天功夫,一个程序员一天都值几百大洋,不如直接通过红枣软件提供的服务生成来的好。

图形化界面,通俗易懂;编译好软件的同时,生成服务端和客户端启动脚本。

服务器端配置:

17ff94474123db775150b05c7903835221b637f717ff94474123db775150b05c7903835221b637f7

如果您没有域名,或者不想用域名,也可以填您的公网ip

e5c24f1b9d095754ed17772dade7ecc798b64192

 

客户端配置:

这里配置一个http转发示例:讲内网tomcat的8080端口使用wx.hongzaosoft.cn这个域名来访问

22ef555516a6bca6d87c21fcc37d1c3b31826a04

那么访问https://wx.hongzaosoft.cn就可以访问到https://127.0.0.1:8080的效果。

再配置一个tcp转发示例:

比如转发我的世界游戏用的25565端口到ngrok服务器的25565端口,则可如下配置

d3907ef094c571287b215896a1265361e3dac0e0

点提交后,会跳转到ngrok下载页面。下载得到的文件如下:

b30e8a99f5f9024320f87b248f1e8fc4822510ff

生成的文件全部是绿色免安装,拷过去就可以用了。为了提高您的下载速度,将主程序放到了百度网盘,从百度网盘下载下来后,windows下双击bat文件,Linux下执行shshell脚本就可以了。

 

 

三、服务器、客户端启动方法

以windows为例,从百度网盘下载服务端exe文件到《启动ngrok服务端.bat》所在目录后,双击运行这个bat文件,启动后界面

9e21cea74113b389b6fd9d1a0e399b3c861f7500

 

接下来启动客户端。从百度网盘下载服务端exe文件到《启动端口25565.bat》所在目录后,双击运行这个bat文件,就可以映射25565端口了,显示online表明成功。

21ac619c8b46e897409b4f95611363bb5c4c1738

如果要启动wx这个子域名的http内网穿透,双击《启动子域名wx.bat》就可以了,显示online的成功界面如下:

289503fd2dee7e98b3cf6d10549d18eeb8d9a99d

如果要做其他tcp端口、http子域名的内网穿透,详细参见生成的软件中包含的文档。

 

Linux的使用方法也很简单,有写好的对应的shell脚本。

 

软件的下载链接https://www.hongzaosoft.cn/downloadngrok.jsp

 

客户端配置进阶篇

如果需要转发服务器ngrok.hongzaosoft.c80端口到本地的8080

转发服务器ngrok.hongzaosoft.ctcp 22端口到本地的22

转发服务器ngrok.hongzaosoft.ctcp 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

  上一篇:go  Vim技能修炼教程(15) - 时间和日期相关函数
  下一篇:go  如何拆分你的微服务架构?