ngrok服务的编译与环境搭建

ngrok作为一个内网穿透工具,可以帮助我们将内网的服务器直接公布在外网上,但如果自己要搭建的话还是需要耗费一些功夫。

这里我将我用到的编译脚本整理出来,供下次需要时候在查阅。

操作系统:Ubuntu 16.04.2 LTS 

GO版本:go version go1.11.4 linux/amd64

由于上述两个环境之前搭建的,忘记了步骤,此处不做阐述,可以自行百度

这里说说几个问题

1. 第一就是Ubuntu 16.04.2 LTS上通过apt-get install golang 出来的版本好像不是最新的,因此需要卸载在执行安装go1.11.4

2. 安装完成后需要将go设置到环境变量中,由于对linux不熟悉,因此此处自行百度

工作目录结构为:

接下来是编译步骤

1. 设置当前shell的环境变量(对应:0_set_go_path.sh)

export PATH=$PATH:/usr/local/go/bin

2. clone代码(自行安装git)(对应:1_get_ngrok.sh)

rm ngrok -r
git clone https://github.com/inconshreveable/ngrok.git ngrok
git clone https://github.com/inconshreveable/mousetrap.git ngrok/src/github.com/inconshreveable/mousetrap
git clone https://github.com/rcrowley/go-metrics.git ngrok/src/github.com/rcrowley/go-metrics

3. 制作证书(自行安装相关工具,对应:4_make_cert.sh)

cd ngrok
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=wx.pjservice.cn" -days 5000 -out rootCA.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=wx.pjservice.cn" -out server.csr
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000

4. 拷贝证书到编译目录下(对应:5_move_cert.sh)

cp /home/root/ngrok/rootCA.pem /home/root/ngrok/assets/client/tls/ngrokroot.crt
cp /home/root/ngrok/server.crt /home/root/ngrok/assets/server/tls/snakeoil.crt
cp /home/root/ngrok/server.key /home/root/ngrok/assets/server/tls/snakeoil.key

5. 编译windows版本的服务器(对应:6_build_server.sh)

cd ngrok
make clean
make GOOS=windows GOARCH=amd64 release-server
cd ../

6. 编译windows版本的客户端(对应:7_build_client.sh)

cd ngrok
make clean
make GOOS=windows GOARCH=amd64 release-client
cd ../

完成上述步骤后,在/home/root/ngrok/bin/windows_amd64/目录下获取生成的服务器和客户端

服务器需要的文件

其中server.bat的内容为:

ngrokd.exe -tlsKey=server.key -tlsCrt=server.crt -domain wx.pjservice.cn -httpAddr :服务端口(http) -httpsAddr :服务端口(https) -tunnelAddr :控制端口

客户端需要的文件为:

其中ngrok.cfg的内容为:

server_addr: "wx.pjservice.cn:你的控制端口"
trust_host_root_certs: false

start.bat的文件内容为(demo表示二级请求域名):

ngrok.exe -subdomain demo -config=ngrok.cfg 你的本地服务端口

至此,ngrok的已经可以正常工作。接下来,我们需要将服务器部署到服务器端,然后在域名解析里面增加如下两个解析项目:

域名正常解析之后,即可以通过域名访问服务器的80端口,由于大多数情况下80端口被iis占用,因此,此处还需要在iis上配置反向代理,步骤如下:

1. 通过Web平台安装程序安装相关组件(自行百度)

2. 启用请求路由

2. 在iis上的80端口网站上做如下配置

2.1 编辑绑定

2.2 打开URL重新

2.3 新建空白规则

2.4 配置匹配URL

2.5 编辑条件

2.6 设置操作

2.7 确保上一步总中转的端口外网也可访问即可

重写URL部分说明:

{C:0}表示匹配到的hostname

{R:0}表示除hostname外的其他内容

{C:0}:后面的端口为"你的服务端口(http)"

参考资料:

http://www.it165.net/admin/html/201604/7486.html

https://blog.csdn.net/qq_16093323/article/details/82182027

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值