一、前提条件
1. 准备好一台主机,带公网IP
2. 准备一个一级域名,做好泛解析(二级域名的没有配置成功,汗。。。) 切记 一定要做好域名泛解析
二、安装必备软件包
yum install gettext curl-devel perl-devel zlib-devel
解决git clone 报SSL错误,需要执行下面的命令
yum update -y nss curl libcurl
三、安装到/usr/local
cd /usr/local
从github上下载软件包
git clone https://github.com/inconshreveable/ngrok.git ngrok
三、安装go
cd /usr/local
weget https://dl.google.com/go/go1.11.linux-amd64.tar.gz
tar -zxvf go1.11.linux-amd64.tar.gz
环境变量(vim /etc/profile)
export GOROOT=/usr/local/go
export NGROK_DOMAIN="ngrok.your.com"
export PATH=$GOROOT/bin:$PATH
生效
source /etc/profile
四、安装准备-证书
进入到第一步下载的ngrok源码根目录,执行以下命令,会在当前文件夹生成六个文件
cd /usr/local/ngrok
mkdir cert
cd cert
运行下面5条命令
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
五、证书覆盖
yes|cp rootCA.pem assets/client/tls/ngrokroot.crt
或者使用 \cp rootCA.pem assets/client/tls/ngrokroot.crt 直接覆盖 不提示
yes|cp server.crt ../assets/server/tls/snakeoil.crt
yes|cp server.key ../assets/server/tls/snakeoil.key
六、编译
在下载的ngrok根目录编译
cd /usr/local/ngrok
make release-server 或者使用 GOOS=linux GOARCH=amd64 make release-server , 只要和操作系统能对应即可
# Linux客户端
GOOS=linux GOARCH=amd64 make release-client
# win客户端
GOOS=windows GOARCH=amd64 make release-client
编译完成之后把bin目录下windows的启动工具下载下来
# MacOS
GOOS=darwin GOARCH=amd64 make release-client
七、启动
cd /usr/local/ngrok
./bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":8083"
如果不指定tunnelAddr 端口默认是 4443
八、配置客户端启动
1. 编译对应平台的客户端软件地址在cd /usr/local/ngrok/bin 下面,可以使用 fileZilla 等软件连接到Linux系统进行下载接口
2. 编写ngrok.cfg配置文件(注意冒号后面的空格,其实是yaml文件)
server_addr: "ongis.cn:4443"
trust_host_root_certs: false
九、客户端启动
./ngrok -config=ngrok.cfg -subdomain=ngrok 8080
十、客户端ngrok.cfg 复杂配置
server_addr: "myngrok.com:8083"
trust_host_root_certs: false
tunnels:
http:
subdomain: "www"
proto:
http: "8081"
https:
subdomain: "www"
proto:
https: "8082"
web:
proto:
http: "8050"
tcp:
proto:
tcp: "8001"
remote_port: 5555
ssh:
remote_port: 2222
proto:
tcp: "22"
ngrok -config=ngrok.cfg start web #启动web服务
ngrok -config=ngrok.cfg start tcp #启动tcp服务
ngrok -config=ngrok.cfg start web tcp #同时启动两个服务
ngrok -config=ngrok.cfg start-all #启动所有服务
共同学习,写下你的评论
评论加载中...
作者其他优质文章