ngrok实现内网穿透

景岳_xo · · 635 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

系统:centos6.8

1、安装git

 .略

2、安装依赖

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++ golang

3、添加域名解析

ngrok.snsprj.cn是ngrok服务绑定的域名;*.ngrok.snsprj.cn是域名泛解析,ngrok的客户端在连接时可以自己指定子域名前缀。

4、安装ngrok

git clone https://github.com/inconshreveable/ngrok.gitcd ngrokNGROK_DOMAIN="ngrok.snsprj.cn"openssl genrsa -out base.key 2048openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pemopenssl genrsa -out server.key 2048openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -outserver.csropenssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -outserver.crtcp base.pem assets/client/tls/ngrokroot.crt

make release-server

生成的服务端在[安装目录ngrok]/bin/ngrokd

5、生成客户端

客户端如果跟编译的机器系统不同,编译前需要加参数。

# 编译mac使用的客户端GOOS=darwin GOARCH=amd64 make release-client

# 编译windows使用的客户端(未验证)

GOOS=windows GOARCH=amd64 make release-client

生成的客户端在ngrok/bin/darwin_amd64/ngrok

6、启动服务端(注意修改路径、域名、端口号)

/usr/local/ngrok/bin/ngrokd -tlsKey=/usr/local/ngrok/server.key -tlsCrt=/usr/local/ngrok/server.crt -domain="ngrok.snsprj.cn" -httpAddr=":8888" -httpsAddr=":444" > /home/logs/ngrok.log &

监听http 8888端口,https 444端口,所有访问到外网服务器8888和444端口的数据都会经过ngrok处理转发。可以把上面的命令加到/etc/rc.local,实现开机自启动。

7、启动客户端

将第5步生成的客户端下载到mac电脑上,例如/workspace/applications/ngrok/下。

在该目录新建一个配置文件 ngrok.cfg,内容如下:

server_addr: "ngrok.snsprj.cn:4443"trust_host_root_certs: false

测试将aaa.ngrok.snsprj.cn映射到本地的8080端口。

# 启动客户端

./ngrok -subdomain aaa -config=ngrok.cfg 8080

现在,启动本地的tomcat,端口8080,可以通过http://aaa.ngrok.snsprj.cn:8888访问。

最终效果:


注意事项:

ngrok服务用的到端口号都要在防火墙开启。


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:景岳_xo

查看原文:ngrok实现内网穿透

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

635 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传