简单搭建ngrok服务器,实现内网穿透


声明:本文转载自https://my.oschina.net/imjueying/blog/1786737,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

为啥搭建ngrok服务器

在做Web开发时,我们需要将一个本地的Web网站暴露给外网访问(比如我在做本地开发微信时)。

ngrok 是一个反向代理工具,我们可以直接下载官网的客户端使用,但是因为官网服务器在国外,比较慢,而且免费版不支持绑定二级域名。

需要准备什么

  • 公网的linux服务器(最好是centos7,一步通过)
  • 独立域名

如果对docker熟悉的话可以直接运行我制作的ngrok服务器的镜像来启动https://github.com/jueying/docker-ngrok-server

步骤

1. 安装git, golang和openssl
yum install -y git golang openssl 

git版本和golang版本不能太旧,centos7默认安装git1.8.3,go1.8.3

2. clone ngrok项目到本地
git clone https://github.com/inconshreveable/ngrok.git /usr/local/ngrok 
3. 生成证书
# 这里替换为自己的独立域名 export NGROK_DOMAIN="huahongbin.cn"  #进入到ngrok目录生成证书 cd /usr/local/ngrok  # 下面的命令用于生成证书 openssl genrsa -out rootCA.key 2048 openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem openssl genrsa -out device.key 2048 openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000  # 将我们生成的证书替换ngrok默认的证书 cp rootCA.pem assets/client/tls/ngrokroot.crt cp device.crt assets/server/tls/snakeoil.crt cp device.key assets/server/tls/snakeoil.key 
4. 编译不同平台的服务端和客户端
# 编译64位linux平台服务端 GOOS=linux GOARCH=amd64 make release-server # 编译64位windows客户端 GOOS=windows GOARCH=amd64 make release-server # 如果是mac系统,GOOS=darwin。如果是32位,GOARCH=386 

执行后会在ngrok/bin目录及其子目录下看到服务端ngrokd和客户端ngrok.exe

5. 启动服务端
# 指定我们刚才设置的域名,指定http, https, tcp端口号,端口号不要跟其他程序冲突 ./bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80" -httpsAddr=":8082" -tunnelAddr=":443" 
6. 启动客户端

将ngrok.exe拷贝到本地文件夹中(可以用winscp),并在文件夹新建配置文件ngrok.cfg,内容如下:

server_addr: "huahongbin.cn:443" trust_host_root_certs: false 

域名替换为自己的独立域名,端口替换为启动ngrok服务器设置的tunnel端口。

然后在cmd中使用以下命令启动:

ngrok.exe -subdomain=jueying -config=ngrok.cfg 80 

80即为你要代理的本地端口

在浏览器中输http://127.0.0.1:4040 可以看到具体的请求信息。

常见问题

  • 编译时在下面步骤卡主 go get gopkg.in/yaml.v1 这是因为Git版本太低,请将服务器git版本升级到1.7.9.5以上。

  • 因为ngrok首次编译时需要在国外网站下载一些依赖。可能会很慢甚至timeout。多尝试几次,或者你懂得。

本文发表于2018年03月29日 22:38
(c)注:本文转载自https://my.oschina.net/imjueying/blog/1786737,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 1691 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1