ngrok编译和安装

原创 2018年01月09日 18:33:32

1:安装git

[root@iZuf6h59snssqyqa3ka87eZ home]# yum install git

[root@iZuf6h59snssqyqa3ka87eZ home]# yum install git
Loaded plugins: fastestmirror
                                                                                                                                                        5/6 
  Verifying  : git-1.8.3.1-12.el7_4.x86_64                                                                                                                                                                6/6 

Installed:
  git.x86_64 0:1.8.3.1-12.el7_4                                                                                                                                                                                

Dependency Installed:
  libgnome-keyring.x86_64 0:3.12.0-1.el7       perl-Error.noarch 1:0.17020-2.el7       perl-Git.noarch 0:1.8.3.1-12.el7_4       perl-TermReadKey.x86_64 0:2.30-20.el7       rsync.x86_64 0:3.0.9-18.el7      

Complete!
2:clone 代码

[root@iZuf6h59snssqyqa3ka87eZ home]# git clone https://github.com/inconshreveable/ngrok.git ngrok
Cloning into 'ngrok'...
remote: Counting objects: 2732, done.
remote: Total 2732 (delta 0), reused 0 (delta 0), pack-reused 2732
Receiving objects: 100% (2732/2732), 665.40 KiB | 764.00 KiB/s, done.
Resolving deltas: 100% (1298/1298), done.
3:安装go环境
[root@iZuf6h59snssqyqa3ka87eZ home]# yum install golang
Running transaction
  Installing : golang-src-1.8.3-1.el7.noarch                                                                                                                                                               1/3 
  Installing : golang-1.8.3-1.el7.x86_64                                                                                                                                                                   2/3 
  Installing : golang-bin-1.8.3-1.el7.x86_64                                                                                                                                                               3/3 
  Verifying  : golang-bin-1.8.3-1.el7.x86_64                                                                                                                                                               1/3 
  Verifying  : golang-src-1.8.3-1.el7.noarch                                                                                                                                                               2/3 
  Verifying  : golang-1.8.3-1.el7.x86_64                                                                                                                                                                   3/3 

Installed:
  golang.x86_64 0:1.8.3-1.el7                                                                                                                                                                                  

Dependency Installed:
  golang-bin.x86_64 0:1.8.3-1.el7                                                                        golang-src.noarch 0:1.8.3-1.el7                                                                       

Complete!
4:设置域名
[root@iZuf6h59snssqyqa3ka87eZ home]# cd ngrok
[root@iZuf6h59snssqyqa3ka87eZ ngrok]# export NGROK_DOMAIN="vx.xxx.cn"
5:配置证书
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
[root@iZuf6h59snssqyqa3ka87eZ ngrok]# openssl genrsa -out rootCA.key 2048
Generating RSA private key, 2048 bit long modulus
......................................+++
.......+++
e is 65537 (0x10001)
[root@iZuf6h59snssqyqa3ka87eZ ngrok]# openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem

[root@iZuf6h59snssqyqa3ka87eZ ngrok]# openssl genrsa -out device.key 2048
Generating RSA private key, 2048 bit long modulus
.+++
.............+++
e is 65537 (0x10001)
[root@iZuf6h59snssqyqa3ka87eZ ngrok]# openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
[root@iZuf6h59snssqyqa3ka87eZ ngrok]# openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
Signature ok
subject=/CN=vx.xxx.cn
Getting CA Private Key
   复制证书 \cp 覆盖不提示

[root@iZuf6h59snssqyqa3ka87eZ ngrok]# \cp rootCA.pem assets/client/tls/ngrokroot.crt
[root@iZuf6h59snssqyqa3ka87eZ ngrok]# \cp device.crt assets/server/tls/snakeoil.crt 
[root@iZuf6h59snssqyqa3ka87eZ ngrok]# \cp device.key assets/server/tls/snakeoil.key
6:编译
 #win服务端
[root@iZuf6h59snssqyqa3ka87eZ ngrok]# GOOS=windows GOARCH=386 make release-server 
go install -tags 'release' ngrok/main/ngrokd
 #win客户端
[root@iZuf6h59snssqyqa3ka87eZ ngrok]# GOOS=windows GOARCH=386 make release-client
go install -tags 'release' ngrok/main/ngrok
 #linux服务端
[root@iZuf6h59snssqyqa3ka87eZ ngrok]# GOOS=linux GOARCH=386 make release-server
go install -tags 'release' ngrok/main/ngrokd
#linux客户端
[root@iZuf6h59snssqyqa3ka87eZ ngrok]# GOOS=linux GOARCH=386 make release-client
go install -tags 'release' ngrok/main/ngrok
7:运行服务端

[root@iZuf6h59snssqyqa3ka87eZ ngrok]# ./bin/linux_386/ngrokd -domain="vx.xxx.cn" -httpAddr=":80"
[18:02:40 CST 2018/01/09] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [metrics] Reporting every 30 seconds
[18:02:40 CST 2018/01/09] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [registry] [tun] No affinity cache specified
[18:02:40 CST 2018/01/09] [INFO] (ngrok/log.Info:112) Listening for public http connections on [::]:80
[18:02:40 CST 2018/01/09] [INFO] (ngrok/log.Info:112) Listening for public https connections on [::]:443
[18:02:40 CST 2018/01/09] [INFO] (ngrok/log.Info:112) Listening for control and proxy connections on [::]:4443
8:运行客户端

为客户端编写一个配置文件 ngrok.cfg,然后运行:

server_addr: "vx.xxx.cn:4443"
trust_host_root_certs: false
ngrok -config=./ngrok.cfg -subdomain=test 80
  运行结果

Tunnel Status                 online
Version                       1.7/1.7
Forwarding                    http://test.vx.xxx.cn -> 127.0.0.1:80
Forwarding                    https://test.vx.xxx.cn -> 127.0.0.1:80
Web Interface                 127.0.0.1:4040
# Conn                        0
Avg Conn Time                 0.00ms
9:需要把域名

vx.xxx.cn

test.vx.xxx.cn 指向服务器的IP
10:指定域名

   客户端启动参数配置即可

ngrok -config=./ngrok.cfg -hostname=test.xxx.cn 80

11:配置https

首先在阿里云申请免费的ssl证书,然后下载证书上传到服务器,解压

[root@iZuf6h59snssqyqa3ka87eZ van]# ls -l
total 28
-rw-r--r-- 1 root root 1679 Jan 11 10:08 213976973460777.key
-rw-r--r-- 1 root root 3292 Jan 11 10:08 213976973460777.pem
-rw-r--r-- 1 root root 4258 Jan 11 10:08 213976973460777.pfx
-rw-r--r-- 1 root root 1679 Jan 11 10:08 chain.pem
-rw-r--r-- 1 root root   15 Jan 11 10:08 pfx-password.txt
-rw-r--r-- 1 root root 1614 Jan 11 10:08 public.pem
    重新运行服务端:

[root@iZuf6h59snssqyqa3ka87eZ ngrok]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      10742/sshd          
tcp6       0      0 :::8080                 :::*                    LISTEN      17146/docker-proxy- 
tcp6       0      0 :::8082                 :::*                    LISTEN      8175/docker-proxy-c 
[root@iZuf6h59snssqyqa3ka87eZ ngrok]# ./bin/linux_386/ngrokd -domain="vx.xxx.cn" -httpAddr=":80"  -tlsKey="./van/213976973460777.key" -tlsCrt="./van/213976973460777.pem" &
[1] 2586
[root@iZuf6h59snssqyqa3ka87eZ ngrok]# [15:58:45 CST 2018/01/12] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [registry] [tun] No affinity cache specified
[15:58:45 CST 2018/01/12] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [metrics] Reporting every 30 seconds
[15:58:45 CST 2018/01/12] [INFO] (ngrok/log.Info:112) Listening for public http connections on [::]:80
[15:58:45 CST 2018/01/12] [INFO] (ngrok/log.Info:112) Listening for public https connections on [::]:443
[15:58:45 CST 2018/01/12] [INFO] (ngrok/log.Info:112) Listening for control and proxy connections on [::]:4443

修改客户端配置文件 ngrok.cfg,然后运行,就可以使用htts访问了

server_addr: "vx.xxx.cn:4443"
trust_host_root_certs: true







ngrok服务端客户端编译

编译分两块: 服务端配套客户端 客户端是需要和服务端匹配的,在编译的时候是要指定域名证书的,所以不用担心别人用其他的客户端去连你的服务端。 编译准备 一个vps,阿里云或者其他...
  • uselym
  • uselym
  • 2015-11-22 16:54:58
  • 8153

自己搭建ngrok服务

最近国内国外的ngrok的服务都不能用了,国外的是被墙了,国内的服务器停止续费了。但是微信开发不能缺少ngrok啊,所以决定自己搭建一个ngrok服务。 服务环境:阿里云CentOS 6.5 X64 ...
  • huangchao064
  • huangchao064
  • 2015-11-09 16:49:28
  • 3065

ngrok安装使用

世界上最遥远的距离就是你在外网请求,我在内网测试。 比如微信公众号开发的时候,需要接入一个外网的IP地址,由于我们在自己的电脑上需要开发,测试很不方便,不可能每次都把代码上传到服务器,测...
  • linshichen
  • linshichen
  • 2016-09-26 15:02:11
  • 51598

ngrok 安装

ngrok1.0是开源的,ngrok官网目前是2.0版本,https://ngrok.com/   二者功能和命令有一些区别,用的时候别搞混了,这里讲的是ngrok1.7版本      操作如下:...
  • huangchao1010
  • huangchao1010
  • 2016-09-11 07:09:03
  • 5232

Windows 下 配置 ngrok ngrok使用教程

1. ngrok介绍 ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。简单来说就...
  • l631068264
  • l631068264
  • 2014-12-18 00:08:54
  • 53617

ngrok 本机代码部署外网访问神器

背景:听哥们说了个工具ngrok,可以让本机配置的web服务在外网访问,抱着将信将疑的态度试了试,发现还真的可以。下面记录下我自己的安装步骤,另外谈下自己还有些疑问的地方。 参考资料网站:htt...
  • gebitan505
  • gebitan505
  • 2014-09-23 14:09:11
  • 35578

搭建自己的ngrok服务

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • kenlong
  • kenlong
  • 2016-10-21 10:03:37
  • 5324

搭建自己的ngrok服务

1. 服务器准备  CentOS6上试过了, 编译卡住了, 据说是Git版本过低导致, 想升级git , 谁知又有一堆问题, 索性放弃, 安装了CentOS7, 在上面部署.  2. Go环境搭建...
  • cheng183
  • cheng183
  • 2017-03-15 13:30:07
  • 200

centos 6.5 编译安装ngrok

阿里云香港服务器centos6.5安装ngrok 一、环境安装  安装git 安装go 二、编译ngrok 启动ngrok服务端 启动ngrok客户端...
  • qq_30551211
  • qq_30551211
  • 2018-01-27 00:10:53
  • 222

构建自己的Ngrok服务器

ngrok是什么(借别人的一段来说明)? 做前端开发的童鞋或许不会太陌生。 如果你完全不知道它是什么东西,可以在它的github项目上了解下:https://github.co...
  • ufocode
  • ufocode
  • 2016-10-07 15:50:25
  • 1285
收藏助手
不良信息举报
您举报文章:ngrok编译和安装
举报原因:
原因补充:

(最多只允许输入30个字)