![ngrok服务器搭建 一分钟实现内网穿透](http://img.jiangsulong.com/220410/1QZa1L-42.jpg)
文章插图
将*.ngrok与ngrok都指向您的主机IP 。
默认的域名是ngrok自己的 , 要替换成您自己的域名
export GOPATH=/usr/local/ngrok/#设置环境变量 , Go语言的安装位置export NGROK_DOMAIN="ngrok.yourdomain.com"#设置环境变量 , ngrok域名
PS. ngrok名称可以任意 , 推荐名称为ngrok或者tunnel4.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服务器搭建 一分钟实现内网穿透](http://img.jiangsulong.com/220410/1QZ91631-43.jpg)
文章插图
证书如下:
![ngrok服务器搭建 一分钟实现内网穿透](http://img.jiangsulong.com/220410/1QZ9E43-44.jpg)
文章插图
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服务器搭建 一分钟实现内网穿透](http://img.jiangsulong.com/220410/1QZ9A09-45.jpg)
文章插图
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服务器搭建 一分钟实现内网穿透](http://img.jiangsulong.com/220410/1QZ93D5-46.jpg)
文章插图
生成结果:
![ngrok服务器搭建 一分钟实现内网穿透](http://img.jiangsulong.com/220410/1QZa604-47.jpg)
文章插图
这里我还生成了两个运行在windows服务器与客户端的应用:
![ngrok服务器搭建 一分钟实现内网穿透](http://img.jiangsulong.com/220410/1QZ92233-48.jpg)
文章插图
ngrok.exe是客户端 , ngrokd.exe是服务端 , 下面是比较连续的操作结果 。
![ngrok服务器搭建 一分钟实现内网穿透](http://img.jiangsulong.com/220410/1QZ95296-49.jpg)
文章插图
![ngrok服务器搭建 一分钟实现内网穿透](http://img.jiangsulong.com/220410/1QZa5J-50.jpg)
文章插图
五、部署服务器端主程序
5.1、部署到Windows Server服务器将生成的ngrokd.exe文件复制到windows服务器中 , 当然如果要部署到linux中也是没有问题的 。
这里我将ngrokd.exe放在c:grokeServer目录下:
![ngrok服务器搭建 一分钟实现内网穿透](http://img.jiangsulong.com/220410/1QZ91630-51.jpg)
文章插图
为了方便 , 我编写了一个批处理文件:ngrokserver2.bat
ngrokd.exe -tlsKey="snakeoil.key" -tlsCrt="snakeoil.crt" -domain="ngrok.你的域名.com" -httpAddr=":801" -httpsAddr=":802"
点击批处理运行结果如下:![ngrok服务器搭建 一分钟实现内网穿透](http://img.jiangsulong.com/220410/1QZ913S-52.jpg)
文章插图
绑定的域名换成自己的域名 , http使用801端口 , https使用802端口 , 供客户端连接的管道端口设置为4443端口 , 必须前面的域名相同 。
为了安全许多服务器会将端口屏蔽 , 我使用的是ECS服务器 , 默认801 , 802都是关闭的 , 需要手动开启 , 在阿里云的后台添加开放的端口就可了:
![ngrok服务器搭建 一分钟实现内网穿透](http://img.jiangsulong.com/220410/1QZ920J-53.jpg)
文章插图
5.2、一键部署ngrok服务器(CentOS、Debian、Ubuntu)如果编译生成ngrok的源代码生成应用太麻烦 , 你可以选择网友写的工具 , 支持一键部署到安装平台:CentOS、Debian、Ubuntu 。
推荐阅读
- 搭建ELK容器化
- 如何搭建一支高效的互联网运营团队
- web服务器 IIS、Apache和Ngnix基础
- Ubuntu16.04搭建VNC Server远程桌面服务器
- Ngrok:超简单的内网穿透,了解一下?
- Nginx+Tomcat搭建高性能负载均衡集群
- 服务器端如何开启GZIP压缩功能
- 虚拟主机、服务器在网站建设选购主机大有讲究
- 史上最全Linux服务器程序规范
- 分享Nginx搭建图片服务器简单实现