准备工作(2020-05-18 测试有效)
Git
GoLang
一台拥有公网ip的服务器
一个绑定到公网ip服务器上的域名
开始
服务器下
下载ngrok源码
git clone https://github.com/inconshreveable/ngrok.git
生成证书 (依次执行如下命令)
export NGROK_DOMAIN=“wangle.musickd.com” //需改为自己的域名
cd ngrok
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj “/CN=$NGROK_DOMAIN” -days 5000 -out rootCA.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 rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000
将生成的客户端和服务端证书拷贝到对应资源目录下(这一步很重要)
需要输入 y 回车进入下一步
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
编译ngrok服务端(我的服务器是linux系统,所以这里指定编译成linux平台的可执行程序)
#32位Linux系统
GOOS=linux GOARCH=386 make release-server
#64位Linux系统
GOOS=linux GOARCH=amd64 make release-server
本机电脑版本 Windows版本
GOOS=windows GOARCH=amd64 make release-client
(Mac版本
GOOS=darwin GOARCH=amd64 make release-client)
编译之后,在ngrok源码的bin目录下生成了对应不同平台的ngrok可执行程序
下载到本机指定文件夹(WINDOWS)
回到本机
暂定使用 SecureCRT8.0
yum install lrzsz (简单的上传下载命令)
进入ngrok下bin目录下windows amd64 文件夹下
sz ngrok.exe (下载到本机)
回到本机
为了启动方便,新建一个ngrok.cfg配置文件
server_addr: “wangle.musickd.com:4443”
trust_host_root_certs: false
为Windows平台新建一个startup.bat文件
@echo on
cd %cd%
ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=wangle 9000
回到服务器
开放端口 4443 和 80(http)(https 还有开放 443)
firewall-cmd --zone=public --add-port=4443/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
启动linux下ngrok
./ngrokd -domain=“musickd.com” -httpAddr=":80" &
回到本机
启动windows下startup.bat