虽然ngrok很久没有更新了,但是目前还是比较好用的内网穿透利器,这里我就来介绍下如何在centos 7上搭建ngrok服务端和客户端
1、环境安装:
yum -y install gcc golang wget
2、下载ngrok:
cd /usr/local/ git clone https://github.com/dollarphper/ngrok.git cd ngrok/
3、生成证书:
openssl genrsa -out rootCA.key 2048 openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=ileiming.com" -days 5000 -out rootCA.pem openssl genrsa -out server.key 2048 openssl req -new -key server.key -subj "/CN=ileiming.com" -out server.csr openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000
4、拷贝证书:
cp rootCA.pem assets/client/tls/ngrokroot.crt cp server.crt assets/server/tls/snakeoil.crt cp server.key assets/server/tls/snakeoil.key
5、生成服务端文件:
make release-server
6、生成客户端文件:
# linux: GOOS=linux GOARCH=amd64 make release-client # windows: GOOS=windows GOARCH=amd64 make release-client # mac GOOS=darwin GOARCH=amd64 make release-client
7、服务端启动脚本:
vi /usr/local/sbin/ngrok.sh
#!/bin/bash /usr/local/ngrok/bin/ngrokd -log="/var/log/ngrok/ngrok.log" -domain="ileiming.com" -httpAddr=:80 -httpsAddr=:443 -tunnelAddr=:4443 1> /dev/null 2> /var/log/ngrok/ngrok.log & echo $! > /var/run/ngrok.pid
8、服务端创建启动服务:
[Unit] Description=ngrok After=network.target [Service] Type=forking PIDFile=/var/run/ngrok.pid ExecStart=/bin/bash /usr/local/sbin/ngrok.sh ExecStop=pkill ngrok PrivateTmp=true [Install] WantedBy=multi-user.target
9、客户端配置:
server_addr: "ileiming.com:4443" trust_host_root_certs: false tunnels: abc: proto: http: "10.122.140.84:17109"
10、客户端启动
这里有个小细节,就是ileiming.com我没有在公网解析,所以要在客户端服务器上的/etc/hosts文件上添加服务端IP
/opt/usr/ngrok/ngrok -config=/opt/usr/ngrok/ngrok.cfg start abc