文档章节

搭建ngrok服务

returnSky
 returnSky
发布于 2017/07/22 21:55
字数 708
阅读 17
收藏 0

服务器环境:Centos6 x86 (32位)

准备工作

一台VPS,一个域名,另外需要准备 golang 环境和 git,因为ngrokd和ngrok的编译是用 golang 。

Centos下使用epel源安装GO语言环境:

$ yum install golang

检查GO语言是否安装成功

$ go version

输出:go version go1.7.6 linux/386 表示成功

搭建流程

1.下载 ngrok 源码

$ cd /usr/local/
$ git clone https://github.com/inconshreveable/ngrok.git
$ export GOPATH=~/ngrok
$ cd ngrok/

2.生成签名证书

在自生成证书时需要一个解析到服务器上的主域名,现在以”test.com”为例。

$ export NGROK_DOMAIN="test.com"
$ 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

将新生成的证书,替换掉 assets/client/tls 路径下的证书

$ cp rootCA.pem assets/client/tls/ngrokroot.crt
$ cp device.crt assets/server/tls/snakeoil.crt
$ cp device.key assets/server/tls/snakeoil.key

3.编译生成ngrokd(服务端)

在 ngrok 目录下执行以下命令:

$ make release-server

编译成功后,生成的 ngrokd 保存到 ngrok/bin/ 路径下。

4.编译生成ngrok(客户端)

由于我打算在window环境下使用,所以编译生成的系统OS需要指定为 windows。

$ GOOS=windows GOARCH=amd64 make release-client

编译成功后,会在 ngrok/bin/ 路径下多一个 windows_amd64 的文件夹。将该文件夹拉取到本机windows下即可执行。

5.启动ngrokd

$ ./ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":8091" -httpsAddr=":8092" -tunnelAddr=":8083"

#出现下面信息则表示启动成功
[09:40:30 EDT 2017/07/22] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [registry] [tun] No affinity cache specified
[09:40:30 EDT 2017/07/22] [INFO] (ngrok/log.Info:112) Listening for public http connections on [::]:8091
[09:40:30 EDT 2017/07/22] [INFO] (ngrok/log.Info:112) Listening for public https connections on [::]:8092
[09:40:30 EDT 2017/07/22] [INFO] (ngrok/log.Info:112) Listening for control and proxy connections on [::]:8083
[09:40:30 EDT 2017/07/22] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [metrics] Reporting every 30 seconds

6.启动ngrok

在 windows_amd64 文件夹创建 nrgok.cfg 文件,内容如下:

server_addr: "test.com:8083"   #test.com替换为自己的域名
trust_host_root_certs: false
tunnels:
    http:
        subdomain: "wx"         #子域名
        proto:
            http: "8010"        #监听本地的端口

    https:
        subdomain: "wxs"
        proto:
            https: "8011"

创建好配置文件之后,在CMD切换到 windows_amd64 目录下,执行以下命令:

ngrok.exe -config ngrok.cfg start http 

若看到以下信息则表示成功启动客户端:

Tunnel Status                 online
Version                       1.7/1.7
Forwarding                    http://wx.test.com:8091 -> 127.0.0.1:8010
Forwarding                    https://wxs.test.com:8092 -> 127.0.0.1:8011
Web Interface                 127.0.0.1:4040
# Conn                        0
Avg Conn Time                 0.00ms

-------------------------------------------------------------------------------------------------------------

若要监听 80 端口,同时避免和其他应用冲突,可以使用nginx进行代理配置。

修改 nginx.conf 文件,在 http 模块下添加以下内容,然后重启nginx服务即可直接访问。

upstream ngrok_http {
    server 127.0.0.1:8091;
    keepalive 64;
}

server {
    listen 80;
    server_name *.自己的域名;
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host:8091;
        proxy_set_header X-Nginx-Proxy true;
        proxy_set_header Connection "";
        proxy_pass http://ngrok_http;
    }
}

 

© 著作权归作者所有

共有 人打赏支持
returnSky
粉丝 0
博文 8
码字总数 3024
作品 0
珠海
CentOS7搭建ngrok服务器

CentOS7搭建ngrok服务器 会飞的污熊2017-12-302 阅读 web ngrok是一个反向代理,它能够让你本地的web服务或tcp服务通过公共的端口和外部建立一个安全的通道,使得外网可以访问本地的计算机服...

会飞的污熊
2017/12/30
0
0
ngrok平台搭建

ngrok 搭建 之前反向代理的功能一直使用其他人搭建的服务来进行微信的开发,但是最近一段时间特别的不稳定,正好手里还有一台空闲VPS和域名,所以就萌生自己搭建服务器的念头。 编译 ngrok ...

罗布V
2016/11/13
127
0
Ngrok搭建服务器

一、ngrok简介及作用 ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。 这些看上去很麻烦,我们更需要的是了解ngrok的用途。 完美代替“花生壳”软件。 “花生壳”是一款老牌的内网...

dingdayu
2016/08/23
2.2K
6
ngrok服务安装笔记

ngrok目前只开源1.x版本,最新的是1.7,使用下来发现比花生壳内网版要稳定和好用得多,重要的是ngrok支持mac和Linux平台,很是好用。先前参考JerryQu的博文搭建 ngrok 服务实现内网穿透进行部...

侠云
2015/10/22
0
0
调试web服务

使用ngrok调试web服务,一般是直接使用已有的别人提供的服务,最近需要用到ngrok来抓请求,虽然可以用wireshark和tcpdump这类神器。但是还是ngrok比较直观 使用包含ngrok的docker镜像 作者提...

wzyuliyang
2016/12/03
16
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

移除或自定义 WordPress 仪表盘欢迎面板

第一次登录 WordPress 后台仪表盘页面,默认都会显示 WordPress 的欢迎面板: 如果我们要移除这个面板,在主题的 functions.php 中添加下面的代码即可: 12 //移除 WordPress 仪表盘欢迎面...

james_laughing
17分钟前
0
0
HashMap实现原理及源码分析

HashMap实现原理及源码分析   哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,...

DemonsI
21分钟前
0
0
eggjs学习笔记

快速初始化 生成项目(要求最低的node版本8.x) npm i egg-init -gegg-init egg-example --type=simplecd egg-examplenpm i 启动项目 npm run dev 配置 环境配置会覆盖默认配置 config...

别人说我名字很长
24分钟前
1
0
Winform Timer控件时间间隔

sender as System.Timers.Timer).Interval = 23 * 60 * 60 * 1000.0;//将时间间隔改为23小时,23小时后重新发生timer_Elapsed事件。 //60000:时间间隔1分钟,300000:时间间隔5分钟,600000:...

笑丶笑
25分钟前
0
0
在win10系统下怎样快速切换任务视图

切换窗口:Alt + Tab 任务视图:Win + Tab (松开键盘界面不会消失) 切换任务视图:Win + Ctrl +左/右 创建新的虚拟桌面:Win + Ctrl + D 关闭当前虚拟桌面:Win + Ctrl + F4...

SummerGao
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部