一、安装go环境
1.Centos下使用epel源安装:
1 |
|
2.Centos/Linux下源码安装golang:
1 2 3 4 5 6 7 |
|
安装go get工具:
1 |
|
(参考:http://www.haiyun.me/archives/1009.html)
二、安装ngrok
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
如果一直停留在go get gopkg.in/yaml.v1
在安装yaml的时候不能下载,无反应:
原因git版本太低,需>= 1.7.9.5,通过RPMForge源安装最新版本git解决:
参考:https://twitter.com/gniemeyer/status/472318780472045568 |
生成服务端
1 |
|
按理讲,应该就可以编译成功了,但是我发现,编译的时候很多依赖包是需要自动下载的,有一个包log4go 是在 code.google 上的,我们的XX服务器是无法访问google的,大家懂,所以我这里是这么处理的:
(1)修改源码,将该包改为 github 上的地址:
找到 /usr/local/src/ngrok/src/ngrok/log/logger.go ,第五行import中的 log 包,改为: log "github.com/keepeye/log4go" 。
编译成功后,应该可以在 /usr/local/src/ngrok/bin 下生成了一个 ngrokd 可执行文件,这就是我们的服务端了
1 |
./ngrokd -domain example.com ngrokd服务端走的80端口 ./ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=test 8080 这里指向的端口8080说明客户端的网站在8080端口 |
三、运行客户端,新建一个文件 ngrok.cfg,内容为:
1 2 |
|
四、注意:安装ngrok需要有一个域名,并且DNS解析到ngrokd公网服务器上面。将ngrok客户端拷贝到内网服务器上面,在内网上编写配置文件,并且先启动服务器端,再启动客户端连接服务器。
如果客户端连接不上服务器,查看客户端日志,并且如果 域名example.com公网解析不指向现在的服务器,可以在内网hosts文件中修改,修改为现在的公网IP 解析域名 example.com。
原文:http://nanchunle.blog.51cto.com/9244770/1710295