先决条件:
- 云服务器一台
- 域名
- Linux
下载源码和生成证书
git clone https://github.com/inconshreveable/ngrok.git
cd ngrok
NGROK_DOMAIN="你的域名"
openssl rand -writerand ~/.rnd # linux mint19
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
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
编译
先自行安装Go
export GO111MODULE=off
make release-server release-client
出现下载失败的,先
export GOPROXY="goproxy.io";export GO111MODULE=on
再使用go get下载无法下载的包
然后切换回go path模式
export GO111MODULE=off
make release-server release-client
服务端运行
scp ./bin/ngrokd user@host:/path/to/save
ssh连接进服务器,运行
./ngrokd -domain="你的域名" -httpAddr=":9091" -tunnelAddr=":4443" -httpsAddr=":9092"
打开云平台安全组设置,将这几个端口开放
客户端运行
创建ngrok.cfg文件,编辑
server_addr: 你的域名:4443
trust_host_root_certs: false
tunnels:
myserver:
remote_port: 9093
proto:
tcp: 3000
remote_port为服务器转发端口,同样的,打开云平台安全组设置,将这个端口开放。
3000为局域网主机端口,使用tcp方式(http一样可以用)
运行
./ngrok -config=./ngrok.cfg start myserver
根据提示打开网址即可, 如果你的局域网端口实际是http协议,那么直接浏览器打开即可。
临时的后台运行
nohup ./start_ngrok.sh &
start_ngrok.sh文件内容如下
./ngrokd -domain="你的域名" -httpAddr=":9091" -tunnelAddr=":4443" -httpsAddr=":9092"
网友评论