1.配置go编译环境

1.1 安装依赖包:

yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++ build-essential  mercurial

1.2 配置git

wget https://www.kernel.org/pub/software/scm/git/git-2.6.0.tar.gz

1.3 安装必要环境包☆

sudo yum install build-essential golang mercurial git

1.4 检出ngrok源代码☆

git clone https://github.com/inconshreveable/ngrok.git ~/ngrok

1.5 安装lrzsz下载上传工具☆

#该工具如何使用参考 http://blog.csdn.net/zy_zhengyang/article/details/52385887
yum -y install lrzsz

1.6 安装screen多窗户工具☆

yum install -y screen

2. 配置临时环境变量

export GOPATH=~/ngrok/   #ngrok源码根目录
export NGROK_DOMAIN="ngrok.zkaiyuan.com" #映射到该服务器隧道的域名

2.1 去到源码目录

cd ~/ngrok

3.生成https安全证书,Ngrok会使用此证书加密通讯

openssl genrsa -out rootCA.key 2048openssl req -new -x509 -nodes -key rootCA.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out rootCA.pemopenssl genrsa -out server.key 2048openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csropenssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -days 10000 -out server.crt

3.1 将证书文件复制到指定位置

#提示是否覆盖,输入y确定
cp rootCA.pem assets/client/tls/ngrokroot.crt -icp server.crt assets/server/tls/snakeoil.crt -icp server.key assets/server/tls/snakeoil.key -i

4.编译服务器端和客户端

注:这里测试时只编译了i386的服务器端和arm的客户端,实际上可以通过改变GOOS与GOARCH来获取各个平台的客户端与服务端,GOOS可以指定为windows、linux 、 freebsd 、darwin (Mac OS X 10.5 or 10.6) 和 nacl (Chrome 的Native Client 接口) ,GOARCH可以指定为amd64 (64-bit x86) 、386 (32-bit x86) 、 和arm (32-bit ARM),可见Go语言的跨平台能力相当彪悍。

4.1服务端

#我的服务器为:linux-x86-64
export GOOS=linux
export GOARCH=386
make release-server

编译完成过后~/ngrok/bin/ngrokd即为服务端运行文件。

4.2客户端

树莓派为linux-arm架构,重新声明go env里的变量

export GOOS=linux
export GOARCH=arm
make release-client

编译完成过后~/ngrok/bin/linux_arm/ngrok即为树莓派客户端运行文件

5.部署服务端和客户端

5.1 服务端

屏幕会输出一连串日志信息,ttpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,ngrokd 还会开一个 4443 端口用来跟客户端通讯,注意设置防火墙使端口开放。

./ngrokd -domain="ngrok.zkaiyuan.com" -httpAddr=":80" -httpsAddr=":443"
或者
./ngrokd -domain="ngork.zkaiyuan.com" -httpAddr=":8080" -httpsAddr=":8081" -tunnelAddr=":4443"

5.2 客户端

通过rz命令下载客户端

该目录下的ngrok
cd ~/ngrok/bin/linux_arm/

拷贝到客户端任意目录后。新建一个 ngrok.cfg 配置文件

 vim ngrok.cfg

内容如下

server_addr: zkaiyuan.com:4443
trust_host_root_certs: false

运行客户端,如果提示没权限,先授权

 chmod +x ngrok
#web测试
./ngrok -subdomain pi -proto=http -config=ngrok.cfg 80#tcp转发
./ngrok -proto=tcp -config ngrok.cfg 22

如果想一次性完成多个端口转发。可以完善ngrok.cfg。特别需要注意的是配置文件为YAML语法,所有缩进都要使用空格,不能够使用tab
而且可以看出不但可以转发本机的端口,亦可以转发其它内网设备

server_addr: ngork.zkaiyuan.com:4443
trust_host_root_certs: false
tunnels:ssh:remote_port: 1122proto:tcp: 22ss:emote_port: 8388proto:tcp: 8388ftp:remote_port: 20proto:tcp: 20ftp2:remote_port: 21proto:tcp: 21http:subdomain: wwwproto:http: 80https: 192.168.1.4:443

启动后,如果可以看到如下内容,说明你已经完成了

Tunnel Status                 reconnecting
Version                       1.7/1.7
Forwarding                    tcp://ngork.zkaiyuan.com:38755 -> 127.0.0.1:22
Web Interface                 127.0.0.1:4040
# Conn                        1
Avg Conn Time                 14275.98ms

到此结束。。。。正常来说就没问题了,有其他问题,自行百度

自搭Ngrok实现内网穿透centos6相关推荐

  1. Ngrok: 使用 Ngrok 实现内网穿透

    Jan 10,2017 in 教程 read (14235) | 百度已收录 | Author: Leonn 目录 背景 NAT 穿透原理 一个栗子 Ngrok 准备工作 编译服务端 服务端 测试连接 ...

  2. 使用工具ngrok 实现内网穿透(免费)

    使用工具ngrok 实现内网穿透 工具下载:ngrok下载,提取码:5555 使用:

  3. Ngrok(内网穿透工具)使用教程详解

    简介 国内Ngrok官网地址 Ngrok是什么? ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道 ngrok 可捕获和分析所有通道上的流量,便于后期分析 ...

  4. 用ngrok做内网穿透

    背景 很多时候,我们都有这样的需求:需要将本地正在开发的服务暴露在公网上,也就是从外网直接访问我们本机上的服务. 正常情况下,这是办不到的,因为我们的本机并没有公网 IP,我们的本机处在内网当中. N ...

  5. Ngrok 实现内网穿透教程(Ngrok 和 Sunny-Ngrok )

    ngrok是什么我这边就不多介绍了,百度一找一大堆.你可以把它理解为内网穿透的工具.(简而言之就是将内网IP映射成对外可访问的域名) Ngrok使用流程如下: 从https://ngrok.com/ ...

  6. CentOS7下使用ngrok搭建内网穿透服务器

    目录 1.简介 1 2. 必要条件 2 2.1.ngrok服务器 2 2.2.域名 2 2.3.ngrok客户端 2 3. 安装依赖包 2 4. 安装golang 2 5. 下载ngrok源码 3 6 ...

  7. ngrok实现内网穿透,让家里的笔记本也能做服务器

    背景 家里淘汰了一台笔记本,windows系统装起来很卡,于是装了个linux系统.这台笔记本有2G内存,奔腾双核处理器,配置比我在阿里云上买的ECS高多了,于是想着给它利用起来.研究了一下,发现ng ...

  8. 废旧Android手机搭建个人服务器:ksweb搭建Web服务器+Termux、Ngrok实现内网穿透

    写在前面: 本篇博客介绍利用废旧手机搭建一个服务器,可以放自己的网页搭建网站 之前闲着没事,低价买了个虚拟主机,放了自己的静态网页,搭建了个人博客引导网站,后来虚拟主机被打死,凑巧了解到相关知识,于是 ...

  9. 微信开发-基于Ngrok的内网穿透工具-netapp

    关键词: 微信开发,内网穿透,Ngrok,netapp 概述: 看到一篇博文介绍微信开发的,因为正在做这个东西,就认真看了一下,其中博文的第一章介绍了如何搭建自己的微信测试环境,为了解决微信开发中的调 ...

最新文章

  1. CentOS中用top命令CPU负载
  2. 教你搞定补码不恢复余数除法中够减和商的关系
  3. 【Keras速成】Keras图像分类从模型自定义到测试
  4. OpenCV学习笔记之Mat
  5. linux c ecb 加密解密,OpenSSL对数组加密解密的完整实现代码
  6. python plot函数label_python – Matplotlib Contour Clabel位置
  7. 中日文字编码转换_关于编码你必须知道的知识和技巧
  8. 你必须要知道的10款APP开发框架
  9. texmacs转到latex(winEdt)
  10. python导入math模块_Python math模块详解
  11. 测试网站速度简单方法
  12. oracle服务启动哪几项,Oracle服务启动项
  13. 地铁的建设主要用什么计算机知识,地铁知识竞答--选择题填空题
  14. 1.2 Unity3D 的注册
  15. 【Linux从无到有】进程的地址空间
  16. 宝塔服务器面板漏洞-越权访问
  17. 解决签名无法校验通过的问题
  18. RIA系列技术讲座(1)——在RIA世界里混个脸熟
  19. 《在Win10下使用DOSBox+MASM32工具包搭建汇编环境》
  20. 自学者福利!知乎上已获千赞,原理+实战+视频+源码

热门文章

  1. android studio 便携式wlan热点 网络名称_手机移动网络共享,还可以这么玩,你知道吗?...
  2. mongodb处理库 php_MongoDB数据库常用操作PHP代码
  3. mysql读写分离实现_laravel 配置MySQL读写分离
  4. html布局文字设置,div css布局中css中文字体设置
  5. 元件怎么反转_电气图纸怎么看?三分钟教你学会看懂,受用一生
  6. mysql添加外键约束的语法_Mysql添加外键约束.
  7. spring boot 教程(三)配置详解
  8. js打印到控制台_前端JS,8个问题测试你真的懂吗(高频面试题,附答案)
  9. 前景检测算法(二)--codebook和平均背景法
  10. 新的android包格式,在Android中注册新文件类型