Ubuntu16.04下内网穿透ngrok安装流程

ngrok:
1、下载go语言包

apt-get install golang

2、下载源码

mkdir ngrok
apt-get update
apt-get install git
git clone https://github.com/inconshreveable/ngrok.git

3、更改ngrok域名
切换路径:

cd /opt/server/ngrok
export GOPATH=~/ngrok
export NGROK_DOMAIN="ngrok.6cm.top" 

(这里是你自己的域名,要在域名管理里面增加对”ngrok.6cm.top”和”*.ngrok.6cm.top”的解析,ip指向部署ngrok的外网服务器。)
4、为域名生成证书

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

5、替换证书

cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key

6、编译ngrokd(服务端)

make release-server release-client

7、启动服务
切换路径:

/opt/server/ngrok/bin

输入:

./ngrokd -tlsKey="../assets/server/tls/snakeoil.key" -tlsCrt="../assets/server/tls/snakeoil.crt" -domain="ngrok.6cm.top" -httpAddr=":80" -httpsAddr=":443"  &

httpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,可以随意指定。ngrokd 还会开一个 4443 端口用来跟客户端通讯(可通过 -tunnelAddr=”:xxx” 指定)。

浏览器访问ngrok.6cm.top 提示“Tunnel ngrok.6cm.top not found”,即为服务开启成功。

8、编译ngrok(客户端)

32位linux客户端: GOOS=linux GOARCH=386 make release-client
64位linux客户端: GOOS=linux GOARCH=amd64 make release-client
32位windows客户端: GOOS=windows GOARCH=386 make release-client
64位windows客户端: GOOS=windows GOARCH=amd64 make release-client
32位mac平台客户端:GOOS=darwin GOARCH=386 make release-client
64位mac平台客户端:GOOS=darwin GOARCH=amd64 make release-client
ARM平台linux客户端: GOOS=linux GOARCH=arm make release-client

编译好的客户端在:/opt/server/ngrok/bin 目录下。
9、设置本地客户端
windows
(1)在ngrok.exe同级目录下新建一个配置文件ngrok.cfg

 server_addr: "ngrok.6cm.top:4443"  
         trust_host_root_certs: false

(2)同级目录下新建一个启动脚本startup.bat

@echo on
         cd %cd%
         #ngrok -proto=tcp 22
         #ngrok start web
         ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=zz 8080

其中,-config指向配置文件,-log存放日志文件位置,-subdomain为自定义的域名前缀。8080为本地端口号。
直接用命令启动:

ngrok.exe -log=ngrok_log.txt -subdomain=test -config="ngrok.cfg" 80

linux
(1)在ngrok同级目录下新建一个配置文件ngrok.cfg

 server_addr: "ngrok.6cm.top:4443"  
         trust_host_root_certs: false

(2)使用命令启动:

./ngrok -config=ngrok.cfg -subdomain exam 8866

其中,-config指向配置文件,-log存放日志文件位置,-subdomain为自定义的域名前缀。8080为本地端口号。
10、设置为系统服务,后台运行
在/etc/systemd/system/目录下创建服务ngrok.service,内容为

[Unit]
Description=ngrok
After=network.target

[Service]
ExecStart=/opt/server/ngrok/bin/ngrokd -tlsKey="/opt/server/ngrok/assets/server/tls/snakeoil.key" -tlsCrt="/opt/server/ngrok/assets/server/tls/snakeoil.crt" -domain="ngrok.6cm.top" -httpAddr=":80" -httpsAddr=":443" 

[Install]
WantedBy=multi-user.target

通过systemctl start ngrok.service启动服务

猜你喜欢

转载自blog.csdn.net/tonyfreak/article/details/80016577
今日推荐