ngrok服务器搭建 一分钟实现内网穿透( 六 )

ngrok服务器搭建 一分钟实现内网穿透

文章插图
 
将*.ngrok与ngrok都指向您的主机IP 。
默认的域名是ngrok自己的 , 要替换成您自己的域名
export GOPATH=/usr/local/ngrok/#设置环境变量 , Go语言的安装位置export NGROK_DOMAIN="ngrok.yourdomain.com"#设置环境变量 , ngrok域名PS. ngrok名称可以任意 , 推荐名称为ngrok或者tunnel
 
4.3.4. 为域名生成证书openssl genrsa -out rootCA.key 2048openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pemopenssl genrsa -out server.key 2048openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csropenssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000
生成后的结果如下:
ngrok服务器搭建 一分钟实现内网穿透

文章插图
 
证书如下:
ngrok服务器搭建 一分钟实现内网穿透

文章插图
 
 
4.3.5. 拷贝证书到指定位置cp rootCA.pem assets/client/tls/ngrokroot.crt#复制rootCA.pem到assets/client/tls/并更名为ngrokroot.crtcp server.crt assets/server/tls/snakeoil.crt #复制server.crt到assets/server/tls/并更名为snakeoil.crtcp server.key assets/server/tls/snakeoil.key #复制server.key到assets/server/tls/并更名为snakeoil.key运行结果:
ngrok服务器搭建 一分钟实现内网穿透

文章插图
 
 
4.3.6. 编译由于go语言的特性 , 在编译时直接生成机器码 , 所以在运行过程中并不需要go的环境(非托管应用) 。在ngrok目录下 , 运行一下命令分别生成对应的客户端与服务端 。
#win服务端GOOS=windows GOARCH=386 make release-server #win客户端GOOS=windows GOARCH=386 make release-client#linux服务端GOOS=linux GOARCH=386 make release-server#linux客户端GOOS=linux GOARCH=386 make release-client
生成完成后 , 在工作目录的bin文件夹下 , 产生对应的文件 。以编译windows平台为例 , 会产生“ngrok.exe”与“ngrokd.exe”这两个文件 , 前者客户端 , 后者需要运行在公网服务器上 。
因为项目中引用了一些外部资源 , 生成会耗费一些时间 , 对网络也有一定的要求 , 太慢会中短 , 命令执行下如:
ngrok服务器搭建 一分钟实现内网穿透

文章插图
 
生成结果:
ngrok服务器搭建 一分钟实现内网穿透

文章插图
 
这里我还生成了两个运行在windows服务器与客户端的应用:
ngrok服务器搭建 一分钟实现内网穿透

文章插图
 
ngrok.exe是客户端 , ngrokd.exe是服务端 , 下面是比较连续的操作结果 。
ngrok服务器搭建 一分钟实现内网穿透

文章插图
 
 
ngrok服务器搭建 一分钟实现内网穿透

文章插图
 
 
五、部署服务器端主程序 
5.1、部署到Windows Server服务器将生成的ngrokd.exe文件复制到windows服务器中 , 当然如果要部署到linux中也是没有问题的 。
这里我将ngrokd.exe放在c:grokeServer目录下:
ngrok服务器搭建 一分钟实现内网穿透

文章插图
 
为了方便 , 我编写了一个批处理文件:ngrokserver2.bat
ngrokd.exe -tlsKey="snakeoil.key" -tlsCrt="snakeoil.crt" -domain="ngrok.你的域名.com" -httpAddr=":801" -httpsAddr=":802"点击批处理运行结果如下:
ngrok服务器搭建 一分钟实现内网穿透

文章插图
 
绑定的域名换成自己的域名 , http使用801端口 , https使用802端口 , 供客户端连接的管道端口设置为4443端口 , 必须前面的域名相同 。
为了安全许多服务器会将端口屏蔽 , 我使用的是ECS服务器 , 默认801 , 802都是关闭的 , 需要手动开启 , 在阿里云的后台添加开放的端口就可了:
ngrok服务器搭建 一分钟实现内网穿透

文章插图
 
 
5.2、一键部署ngrok服务器(CentOS、Debian、Ubuntu)如果编译生成ngrok的源代码生成应用太麻烦 , 你可以选择网友写的工具 , 支持一键部署到安装平台:CentOS、Debian、Ubuntu 。


推荐阅读