自搭Ngrok实现内网穿透centos6
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相关推荐
- Ngrok: 使用 Ngrok 实现内网穿透
Jan 10,2017 in 教程 read (14235) | 百度已收录 | Author: Leonn 目录 背景 NAT 穿透原理 一个栗子 Ngrok 准备工作 编译服务端 服务端 测试连接 ...
- 使用工具ngrok 实现内网穿透(免费)
使用工具ngrok 实现内网穿透 工具下载:ngrok下载,提取码:5555 使用:
- Ngrok(内网穿透工具)使用教程详解
简介 国内Ngrok官网地址 Ngrok是什么? ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道 ngrok 可捕获和分析所有通道上的流量,便于后期分析 ...
- 用ngrok做内网穿透
背景 很多时候,我们都有这样的需求:需要将本地正在开发的服务暴露在公网上,也就是从外网直接访问我们本机上的服务. 正常情况下,这是办不到的,因为我们的本机并没有公网 IP,我们的本机处在内网当中. N ...
- Ngrok 实现内网穿透教程(Ngrok 和 Sunny-Ngrok )
ngrok是什么我这边就不多介绍了,百度一找一大堆.你可以把它理解为内网穿透的工具.(简而言之就是将内网IP映射成对外可访问的域名) Ngrok使用流程如下: 从https://ngrok.com/ ...
- 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 ...
- ngrok实现内网穿透,让家里的笔记本也能做服务器
背景 家里淘汰了一台笔记本,windows系统装起来很卡,于是装了个linux系统.这台笔记本有2G内存,奔腾双核处理器,配置比我在阿里云上买的ECS高多了,于是想着给它利用起来.研究了一下,发现ng ...
- 废旧Android手机搭建个人服务器:ksweb搭建Web服务器+Termux、Ngrok实现内网穿透
写在前面: 本篇博客介绍利用废旧手机搭建一个服务器,可以放自己的网页搭建网站 之前闲着没事,低价买了个虚拟主机,放了自己的静态网页,搭建了个人博客引导网站,后来虚拟主机被打死,凑巧了解到相关知识,于是 ...
- 微信开发-基于Ngrok的内网穿透工具-netapp
关键词: 微信开发,内网穿透,Ngrok,netapp 概述: 看到一篇博文介绍微信开发的,因为正在做这个东西,就认真看了一下,其中博文的第一章介绍了如何搭建自己的微信测试环境,为了解决微信开发中的调 ...
最新文章
- CentOS中用top命令CPU负载
- 教你搞定补码不恢复余数除法中够减和商的关系
- 【Keras速成】Keras图像分类从模型自定义到测试
- OpenCV学习笔记之Mat
- linux c ecb 加密解密,OpenSSL对数组加密解密的完整实现代码
- python plot函数label_python – Matplotlib Contour Clabel位置
- 中日文字编码转换_关于编码你必须知道的知识和技巧
- 你必须要知道的10款APP开发框架
- texmacs转到latex(winEdt)
- python导入math模块_Python math模块详解
- 测试网站速度简单方法
- oracle服务启动哪几项,Oracle服务启动项
- 地铁的建设主要用什么计算机知识,地铁知识竞答--选择题填空题
- 1.2 Unity3D 的注册
- 【Linux从无到有】进程的地址空间
- 宝塔服务器面板漏洞-越权访问
- 解决签名无法校验通过的问题
- RIA系列技术讲座(1)——在RIA世界里混个脸熟
- 《在Win10下使用DOSBox+MASM32工具包搭建汇编环境》
- 自学者福利!知乎上已获千赞,原理+实战+视频+源码
热门文章
- android studio 便携式wlan热点 网络名称_手机移动网络共享,还可以这么玩,你知道吗?...
- mongodb处理库 php_MongoDB数据库常用操作PHP代码
- mysql读写分离实现_laravel 配置MySQL读写分离
- html布局文字设置,div css布局中css中文字体设置
- 元件怎么反转_电气图纸怎么看?三分钟教你学会看懂,受用一生
- mysql添加外键约束的语法_Mysql添加外键约束.
- spring boot 教程(三)配置详解
- js打印到控制台_前端JS,8个问题测试你真的懂吗(高频面试题,附答案)
- 前景检测算法(二)--codebook和平均背景法
- 新的android包格式,在Android中注册新文件类型