炼数成金 门户 大数据 网络技术 查看内容

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

2018-4-2 14:57| 发布者: 炼数成金_小数| 查看: 18953| 评论: 0|来自: 开源中国

摘要: 在做Web开发时,我们需要将一个本地的Web网站暴露给外网访问(比如我在做本地开发微信时)。ngrok 是一个反向代理工具,我们可以直接下载官网的客户端使用,但是因为官网服务器在国外,比较慢,而且免费版不支持绑定 ...

Java Hadoop 服务器 培训 Web

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

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

需要准备什么
公网的Linux服务器(较好是centos7,一步通过)
独立域名

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

步骤
1. 安装git, golang和openssl

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

2. clone 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. 编译不同平台的服务端和客户端


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

5. 启动服务端


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


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

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

80即为你要代理的本地端口
在浏览器中输http://127.0.0.1:4040 可以看到具体的请求信息。

常见问题
编译时在下面步骤卡主 go get gopkg.in/yaml.v1 这是因为Git版本太低,请将服务器git版本升级到1.7.9.5以上。
因为ngrok首次编译时需要在国外网站下载一些依赖。可能会很慢甚至timeout。多尝试几次,或者你懂得。

欢迎加入本站公开兴趣群
软件开发技术群
兴趣范围包括:Java,C/C++,Python,PHP,Ruby,shell等各种语言开发经验交流,各种框架使用,外包项目机会,学习、培训、跳槽等交流
QQ群:26931708

Hadoop源代码研究群
兴趣范围包括:Hadoop源代码解读,改进,优化,分布式系统场景定制,与Hadoop有关的各种开源项目,总之就是玩转Hadoop
QQ群:288410967

鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

热门文章

     

    GMT+8, 2018-9-21 04:03 , Processed in 0.182548 second(s), 24 queries .