由于众所周知的原因,我们无法使用ngrok.com
国内有一个基于ngrok的网络服务:tunnel.mobi,不过时常不稳定。所以想自己搭建一个
#搭建
环境:ubuntu14.04
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#安装依赖
sudo apt-get install build-essential golang mercurial git`
#获取ngrok
git clone https://github.com/inconshreveable/ngrok.git ngrok
cd ngrok
#生成并替换默认的证书
NGROK_DOMAIN="YOUR_DOMAIN"
openssl genrsa -out base.key 2048
openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt
cp base.pem assets/client/tls/ngrokroot.crt
|
#开始编译
sudo make release-server release-client
编译完成后bin目录下将生产ngrokd和ngrok
###编译window版本客户端:
GOOS=windows GOARCH=386
1
|
sudo GOOS=windows GOARCH=386 make release-client
|
###编译mac版本客户端:
1
|
sudo GOOS=darwin GOARCH=amd64 make release-client
|
之后都能在bin目录下找到
#运行服务
1
2
|
chmod +x ./bin/ngrokd
sudo ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="YOUR_DOMAIN" -httpAddr=":8000" -httpsAddr=":443"
|
#注意
客户端必须使用自己编译的ngrok文件
#设置开机自动启动ngrok服务
vim /etc/init.d/ngrok_start:
1
|
/path/to/ngrokd -tlsKey=/path/to/server.key -tlsCrt=/path/to/server.crt -domain="findhao.com" -httpAddr=":8000" -httpsAddr=":443"
|
做些设置:
1
2
3
4
5
6
|
sudo chmod 755 /etc/init.d/ngrok_start
cd /etc/init.d
sudo update-rc.d ngrok_start defaults 20
#卸载启动脚本
cd /etc/init.d
sudo update-rc.d -f ngrok_start remove
|
#设置域名解析
把域名解析到VPS上,如果你只需要主机记录@和www,直接设置A记录把他们解析到VPS的IP上,如果需要很多二级域名的话,可以直接把*解析到IP上
#客户端使用
vim ngrok.cfg:
1
2
|
server_addr: YOUR_DOMAIN:4443
trust_host_root_certs: false
|
./ngrok -subdomain wwj -config=ngrok.cfg 8000