Windows下编译部署Ngrok内网穿透

一、服务端
1、下载SSL证书生成程序,安装后,将安装路径下的bin目录添加到PATH环境变量,方便cmd直接运行openssl.exe。
下载:Win64OpenSSL_Light-1_1_1j.zip
2、(可使用域名)任意路径打开cmd,执行下面命令:(注意,将两处域名全部替换成自己的域名,比如我的mabokai.ltd)
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=mabokai.ltd" -days 10000 -out rootCA.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=mabokai.ltd" -out server.csr
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -days 10000 -out server.crt
2、(可使用IP)任意路径打开cmd,执行下面命令:(注意,将三处IP全部替换成自己的IP,比如我的114.113.152.208)
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=114.113.152.208" -days 10000 -out rootCA.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=114.113.152.208" -out server.csr
echo subjectAltName = IP:114.113.152.208 > extfile.cnf
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -extfile extfile.cnf -days 10000 -out server.crt
#查看证书内容:
openssl x509 -in server.crt -noout -text
3、重命名文件
rootCA.pem ==》ngrokroot.crt
server.crt ==》snakeoil.crt
server.key ==》snakeoil.key
4、下载Go的Windows平台编译器,按照提示安装。
下载:go1.9.2.windows-amd64.zip
5、设置Go环境变量。
a、PATH:Go安装目录下的bin文件夹,如C:\Go\bin,方便cmd中直接使用go命令。
b、GOROOT:Go的安装目录,如C:\Go。
c、GOPATH:C:\GoPath(源代码的保存路径)
6、安装Git,默认安装即可。
下载:Git-2.14.3-64-bit.exe
7、下载、编译Ngrokd(服务端),打开cmd命令行,任意路径,执行以下命令:
go get github.com/newflydd/ngrok/main/ngrokd
成功编译后,在%GOPATH%\bin目录下会出现ngrokd.exe可执行程序。
8、将上边生成的 snakeoil.key、snakeoil.crt 复制到 ngrokd.exe 同目录,然后执行下边命令启动服务:
ngrokd -tlsKey=snakeoil.key -tlsCrt=snakeoil.crt -domain="114.113.152.208" -httpAddr=":9381" -httpsAddr=":9382" -tunnelAddr=":27001"
二、客户端
1、下载、编译Ngrok(客户端),打开cmd命令行,任意路径,执行以下命令:
set GOOS=windows
set GOARCH=amd64
go get github.com/newflydd/ngrok/main/ngrok
2、新建 ngrok.cfg 文件,内容如下:
        server_addr: "114.113.152.208:27001"
        trust_host_root_certs: false
        tunnels:
            yuancheng:
                remote_port: 27002
                proto:
                    tcp: 3389
3、cmd执行:
ngrok.exe -config=ngrok.cfg start yuancheng
#ngrok.exe -subdomain www -config=ngrok.cfg 80
#ngrok.exe -config=ngrok.cfg 80
注:GOOS、GOARCH的组合可以参照如下:


后台运行ngrok(注:nohup & 不能让ngrok后台运行):
#安装screen
yum install screen
#运行
screen -S ngrok(名字随便,回车后会一闪,此时已经开启了一个screen)
#之后正常启动就行
./ngrok -config=ngrok.cfg start ssh
#按 ctrl+a+d 暂时离开当前screen,并将当前screen丢到后台执行
#回到screen窗口
screen -r ngrok