一、说明
通过阿里云域名解析以及ngrok,将外网映射到本地计算机。
二、安装
2.1 环境准备
vim /etc/profile export NGROK_DOMAIN="ngrok.yourdomain.com"
yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++ git
安装go
wget https://dl.google.com/go/go1.12.linux-amd64.tar.gz
tar -zxvf go1.12.linux-amd64.tar.gz
vim /etc/profile
//添加以下内容:
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
//检测是否安装成功go
go version
下载ngrok源码包
mkdir /ngrok
cd /ngrok
git clone https://github.com/inconshreveable/ngrok.git
cd /ngrok
mkdir cert
cd cert
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
覆盖证书
cp rootCA.pem /ngrok/ngrok/assets/client/tls/ngrokroot.crt #复制rootCA.pem到assets/client/tls/并更名为ngrokroot.crt
cp server.crt /ngrok/ngrok/assets/server/tls/snakeoil.crt #复制server.crt到assets/server/tls/并更名为snakeoil.crt
cp server.key /ngrok/ngrok/assets/server/tls/snakeoil.key #复制server.key到assets/server/tls/并更名为snakeoil.key
编译生成ngrokd
cd /ngrok/ngrok
go env //查看环境
GOOS=linux GOARCH=amd64 make release-server
后台运行
cd /ngrok/ngrok
setsid ./bin/ngrokd -tlsKey="assets/server/tls/snakeoil.key" -tlsCrt="assets/server/tls/snakeoil.crt" -domain="ngrok.yourdomain.com" -httpAddr=":8081" -httpsAddr=":8082" -tunnelAddr=":8083"
编译客户端
GOOS=windows GOARCH=amd64 make release-client
#编译成功后会在ngrok/bin/下面生成一个windows_amd64目录下面有ngrok.exe
#Linux 平台 32 位系统:GOOS=linux GOARCH=386
#Linux 平台 64 位系统:GOOS=linux GOARCH=amd64
#Windows 平台 32 位系统:GOOS=windows GOARCH=386
#Windows 平台 64 位系统:GOOS=windows GOARCH=amd64
#MAC 平台 32 位系统:GOOS=darwin GOARCH=386
#MAC 平台 64 位系统:GOOS=darwin GOARCH=amd64
#ARM 平台:GOOS=linux GOARCH=arm
到此,ngrok已经安装成功。
2.2 本地使用
(1)将ngrok.exe下载到本地计算机上。
(2)新建ngrok.cfg
server_addr: " ngrok.yourdomain.com:8083"
trust_host_root_certs: false
(3)新建start.bat
ngrok -config=ngrok.cfg -subdomain=test 80
(4)启动,执行start.bat
//出现以下内容表示成功链接:
ngrok
Tunnel Status online
Version 1.7/1.7
Forwarding http://test.ngrok.yourdomian.com:8081 -> 127.0.0.1:80
Forwarding https://test.ngrok.yourdomain.com:8081 -> 127.0.0.1:80
Web Interface 127.0.0.1:4040
# Conn 0
Avg Conn Time 0.00ms
2.3 阿里云设置
(1)域名解析:
将ngrok.yourdomian.com 映射到外网Ip地址
将test.ngrok.yourdomian.com 映射到外网Ip地址
(2)端口8001,8002,8003都对特定ip开发
(3)若想使用阿里云的免费证书,那么先申请,然后将/ngrok/ngrok/assets/client/tls/ngrokroot.crt 证书替换成阿里云免费ssl证书以pem结尾的,然后修改名字ngrokroot.crt。
/ngrok/ngrok/assets/server/tls/snakeoil.crt 修改为阿里云免费ssl证书以pem结尾的,然后修改名字snakeoil.crt
/ngrok/ngrok/assets/server/tls/snakeoil.key 修改为阿里云免费ssl证书以key结尾的,然后修改名字snakeoil.key
参考文章:https://www.cnblogs.com/irich/p/8708014.html