原标题:CentOS 搭建ngrok服务器
1一、前提条件
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 /inconshreveable/ngrok.git ngrok
三、安装go
cd /usr/local
weget /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=
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: :4443
trust_host_root_certs: false
九、客户端启动
./ngrok -config=ngrok.cfg -subdomain=ngrok 8080
十、客户端ngrok.cfg 复杂配置
server_addr: :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 #启动所有服务返回搜狐,查看更多
责任编辑: