文档章节

搭建ngrok服务

returnSky
 returnSky
发布于 2017/07/22 21:55
字数 708
阅读 13
收藏 0
点赞 0
评论 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

ngrok平台搭建

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

罗布V ⋅ 2016/11/13 ⋅ 0

ngrok服务安装笔记

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

侠云 ⋅ 2015/10/22 ⋅ 0

Ngrok搭建服务器

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

dingdayu ⋅ 2016/08/23 ⋅ 6

调试web服务

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

wzyuliyang ⋅ 2016/12/03 ⋅ 0

Angrok 一个内网穿透服务

网上的搭建的教程挺多,尝试搭建的时候遇到了很多问题。 准备 1、GO环境安装 2. ngrok下载 3.证书生成 4.下载ngrok go包(建议手动下载) 1)编译server端 2)编译客户端 5. 服务端ngrokd后台...

冷冷gg ⋅ 2016/10/18 ⋅ 2

Ngrok内网穿透服务搭建

> 第一次发个博客好激动啊,总之(@¥%#¥%¥#@……#¥……%@#%¥&%……&¥%……!#¥#%%¥@……%¥&%……*@#%@!#¥@!¥#!¥#!……此处省略99999字)对你们深深的思念。好了,废话不多说...

chen松灿 ⋅ 2017/12/25 ⋅ 0

关于Ngrok的一些思考

初衷 在开发拇指动力项目的时候遇到了微信JS接口的问题。做微信公众号的开发的时候,因为微信公众平台发到公众账号的消息只能是发到公众IP和端口上。然后我做开发的电脑和我的公网服务器又不...

林泳坛 ⋅ 2015/01/25 ⋅ 1

树莓派搭建记录(1)--系统安装

组装 树莓派相对来说比较简单,几个螺丝,一块板子+散热片,外壳,还有风扇(长时间开机确实需要不然发热还是挺高的) 贴散热片 一大一小两个散热片贴好便是 风扇安装,注意针脚的位置 系统安...

桀骜不驯的喵 ⋅ 2017/08/01 ⋅ 0

微信公众号开发80端口映射之搭建ngrok服务器

说明 了解本文之前,最好先看前篇:<>。最近公司要搞微信公众号开发,需要解决80端口映射的问题,为了稳定可靠,只好自己搭建ngrok服务端。ngrok 是一个使用go语言编写的反向代理软件,通过在...

pizibaidu ⋅ 2017/06/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

Spring JDBC使用方法

普通实现: 1、创建数据表customer。 可以使用任何数据库实现,在项目中要引入相应数据库驱动包并配置相应数据库连接。 2、创建Customer pojo。 Customer类的属性对应数据库的属性,除了为每...

霍淇滨 ⋅ 今天 ⋅ 0

Contos 7 安装Jenkins

Jenkins是一款能提高效率的软件,它能帮你把软件开发过程形成工作流,典型的工作流包括以下几个步骤 开发 提交 编译 测试 发布 有了Jenkins的帮助,在这5步中,除了第1步,后续的4步都是自动...

欧虞山 ⋅ 今天 ⋅ 0

revel

revel install go get github.com/revel/revelgo get github.com/revel/cmd create new app revel new git.oschina.net/zdglf/myapp run app revel run git.oschina.net/zdglf/myapp ot......

zdglf ⋅ 今天 ⋅ 0

49. Group Anagrams - LeetCode

Question 49. Group Anagrams Solution 思路:维护一个map,key是输入数组中的字符串(根据字符排好序) Java实现: public List<List<String>> groupAnagrams(String[] strs) { Map<Strin......

yysue ⋅ 今天 ⋅ 0

spring Email

使用spring发Email其实就是使用spring自己封装携带的一个javamail.JavaMailSenderImpl类而已。这个类可以当一个普通的java对象来使用,也可以通过把它配置变成spring Bean的方式然后注入使用...

BobwithB ⋅ 今天 ⋅ 0

spark 整理的一些知识

Spark 知识点 请描述spark RDD原理与特征? RDD全称是resilient distributed dataset(具有弹性的分布式数据集)。一个RDD仅仅是一个分布式的元素集合。在Spark中,所有工作都表示为创建新的...

tuoleisi77 ⋅ 今天 ⋅ 0

思考

时间一天天过感觉自己有在成长吗?最怕的是时光匆匆而过,自己没有收获!下面总结下最近自己的思考。 认识自己 认识另一个自己,人们常说要虚心听取别人意见和建议。然而人往往是很难做到的,...

hello_hp ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部