ubuntu搭建ngrok内网穿透服务

一、安装go(阿里云ESC服务器)

第一次照着其他教程直接apt-get install golang安装go语言环境,结果编译的时候报错,最终使用go 1.8版本顺利通过。

1、下载go安装包并解包

 wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
 tar -zxvf go1.8.linux-amd64.tar.gz

2、配置环境变量

sudo vim /etc/profile
# 添加以下内容
export GOROOT=/usr/local/go # 注意此处为解压后文件夹的路径
export GOPATH=$GOROOT/bin
export PATH=$PATH:$GOPATH

3、使其生效

source /etc/profile

4、查看go版本

go version

在这里插入图片描述

二、安装ngrok(阿里云ESC服务器)

1、下载安装包并解压

wget htps://coding.net/u/sfantree/p/self_use_OSS/git/raw/master/source/ngrok.tar.gz
tar zxvf ngrok.tar.gz
cd ngrok

2、生成签名证书

NGROK_DOMAIN="xxx.com" # 此处为公网服务器域名(我是用的阿里云ESC服务器)
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 device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr 
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

ngrok目录下会生成6个新的文件
device.crt device.csr device.key
rootCA.key rootCA.pem rootCA.srl

3、替换证书

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

4、编译服务端与客户端口

make release-server release-client

编译成功后会在bin目录下找到ngrokd和ngrok这两个文件。其中ngrokd 是服务端程序ngrok是客户端程序。

5、运行服务端

ngrokd -domain="xxxx.com" -httpAddr=":5200" -httpsAddr=":8081"

6、将ngrok拷贝到客户端上,并在同级文件夹下新建ngrok.cfg文件,其中内容如下:

server_addr: "xxxx.com:4443" # xxxx.com是公网主机的域名,4443是公网主机默认的端口
trust_host_root_certs: false

7、启动客户端

 ./ngrok -subdomain pub -proto=http -config=ngrok.cfg 5000 # -subdomain是子域名,这里取pub,那么在浏览器访问时打入pub.xxxx.com:5200,5000是真正提供服务的端口

推荐参考博客:
https://blog.csdn.net/diyiday/article/details/84504206
https://blog.csdn.net/yjc_1111/article/details/79353718
https://blog.csdn.net/u014739430/article/details/88245129

发布了54 篇原创文章 · 获赞 17 · 访问量 9202

猜你喜欢

转载自blog.csdn.net/qq_41979513/article/details/99463613