1 安装 gcc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ..#安装 gcc yum -y install gcc yum y install gcc-c++ ..#安装 golang , [下载地址](https://studygolang.com/dl go) wget https://studygolang.com/dl/golang/go1.8.linux-amd64.tar.gz tar -zxvf go1.8.linux-amd64.tar.gz vi /etc/profile #文件中加上环境变量 export GOROOT=你的go解压地址 export PATH=$PATH:$GOROOT/bin source /etc/profile #是环境生效 go version #查看go是否安装成功
2 下载ngrok 1 2 3 4 5 yum -y install git #安装git 用于下载ngrok代码 .. #克隆代码,文件夹命名为 ngrok-server,也可以填写,默认就是ngrok git clone https://github.com/inconshreveable/ngrok.git ngrok-server
3 ngrok配置 执行一下命令。使用ngrok.com官方服务时,我们使用的是官方的SSL证书。自建ngrokd服务,如果不想买SSL证书,我们需要生成自己的自签名证书,并编译一个携带该证书的ngrok客户端。 证书生成过程需要一个NGROK_BASE_DOMAIN。 填写我们的域名地址
1 2 3 4 5 6 7 8 9 10 11 12 13 cd ngrok-server NGROK_DOMAIN="ngrok.xxxx.com" openssl genrsa -out rootCA.key 2048 openssl req -new -x509 -nodes -key rootCA.key -days 10000 -subj "/CN=$NGROK_DOMAIN " -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 -days 10000 -out server.crt
4 经过以上步骤,证书已经生成,下面复制证书到默认读取目录下 1 2 3 4 5 6 7 8 9 10 11 ..#复制rootCA.pem到assets/client/tls/并更名为ngrokroot.crt cp rootCA.pem assets/client/tls/ngrokroot.crt ..#复制server.crt到assets/server/tls/并更名为snakeoil.crt cp server.crt assets/server/tls/snakeoil.crt ..#复制server.key到assets/server/tls/并更名为snakeoil.key cp server.key assets/server/tls/snakeoil.key
上面会让你提示是否覆盖,输入y即可。如果不想每次都提示,可以使用如下命令,这是一个骚操作。 cp前面加上一个\,然后加上-rf即可没有提示,直接覆盖。
1 2 3 4 5 \cp -rf rootCA.pem assets/client/tls/ngrokroot.crt \cp -rf server.crt assets/server/tls/snakeoil.crt \cp -rf server.key assets/server/tls/snakeoil.key
5 生成客户端和服务器端 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ..#win服务端 GOOS=windows GOARCH=386 make release-server ..#win客户端 GOOS=windows GOARCH=386 make release-client ..#linux服务端 GOOS=linux GOARCH=386 make release-server ..#linux客户端 GOOS=linux GOARCH=386 make release-client
我只用到linux服务器端和win客户端,我只需要执行如下即可。 根据自己需要生成
1 2 3 4 5 6 7 ..#linux服务端 GOOS=linux GOARCH=386 make release-server ..#win客户端 GOOS=windows GOARCH=386 make release-client
第一次生成需要点时间,因为golang编译需要下载一些插件。
编译后的软件在bin目录下
进入 linux_386服务器端文件夹配置启动服务器,启动linux服务端
httpAddr,httpsAddr为访问服务端端口,可以设置为80和443,访问的时候不用加端口号.
tunnelAddr为给客户端提供的连接端口默认4443可自行修改,这里改为34443
1 2 3 4 5 6 7 8 9 #./ngrokd -domain="ngrok.cluee.tech" -httpAddr=":30080" -httpsAddr=":30443" -tunnelAddr=":34443" server_addr: ngrok.cluee.tech:34443 trust_host_root_certs: false tunnels: webapi_client: subdomain: test proto: http: 127.0.0.1:10101
start.bat
1 ngrok -config=ngrok.yml -log=ngrok.log start webapi_client