文档章节

搭建ngrok服务

returnSky
 returnSky
发布于 2017/07/22 21:55
字数 708
阅读 24
收藏 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;
    }
}

 

© 著作权归作者所有

共有 人打赏支持
上一篇: Centos安装nginx
下一篇: Centos6 安装MySQL5.7
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
关于搭建自己的内网穿透服务-ngrok

简述搭建ngrok的过程 1、环境准备 1)必须有一台公网服务器,阿里云服务器为例(最好是linux 系统 centOs7) 2)必须注册自己的域名(xxx.vip),阿里云上可以注册 并在阿里云服务器管理中,...

打酱油11号
07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android 报错 Could not find com.android.tools.build:aapt2:3.2.1-4818971.

报错信息: Could not find com.android.tools.build:aapt2:3.2.1-4818971.Searched in the following locations: file:/C:/Users/96110/AppData/Local/Android/Sdk/extras/m2reposito......

lanyu96
24分钟前
1
0
我的Linux系统九阴真经

我的Linux系统九阴真经 在今天,互联网的迅猛发展,科技技术也日新月异,各种编程技术也如雨后春笋一样,冒出尖来了。各种创业公司也百花齐放百家争鸣,特别是针对服务行业,新型互联网服务行...

linuxCool
今天
20
0
Python程序员需要知道的30个技巧

1 直接交换两个数字位置 1x, y = 10, 202print(x, y)3x, y = y, x4print(x, y)5#1 (10, 20)6#2 (20, 10) 2 比较运算符的链接 1n = 102result = 1 < n < 203print(result)4# True5result = 1 ......

糖宝lsh
今天
12
0
[LintCode] Linked List Cycle(带环链表)

描述 给定一个链表,判断它是否有环。 样例 给出 -21->10->4->5, tail connects to node index 1,返回 true。 这里解释下,题目的意思,在英文原题中,tail connects to node index 1 表示的...

honeymose
今天
14
0
Nginx平滑添加模块

Nginx已经编译安装并运行了一段时间, 然后某一天, 发现需要用到某个模块但当初没有编译, 这个时候怎么办呢? 卸载重新安装肯定可以的, 如果Nginx版本没有变更的话, 则有一个相对平滑的方法来添...

老菜鸟0217
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部