CentOS搭建ngrok服务器
ngrok 是一个反向代理,可以穿透各种内网,使目标端口暴露在公网中。
支持Mac OS X,Linux,Windows等多个平台,使用方便。
下面介绍ngrok的服务端和客户端的安装配置。
首先安装go语言环境
sudo yum install build-essential golang mercurial git
git下载ngrok源码
git clone https://github.com/tutumcloud/ngrok.git ngrok mv ngrok /usr/local/ cd /usr/local/ngrok
生成证书,替换NGROK_DOMAIN为你自己的域名地址
NGROK_DOMAIN="zhuhd.win" openssl genrsa -out base.key 2048 openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.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 base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt cp base.pem assets/client/tls/ngrokroot.crt sudo make release-server release-client
为了方便后台运行,创建startng.sh
vi start.sh
写入
/usr/local/ngrok/bin/ngrokd -tlsKey=/usr/local/ngrok/server.key -tlsCrt=/usr/local/ngrok/server.crt -domain="zhuhd.win" -tunnelAddr=":11000" -httpAddr=":11001" -httpsAddr=":11002"
修改权限
chmod 777 startng.sh
添加开机启动
echo 'nohup /usr/local/ngrok/startng.sh & ' >> /etc/rc.local
然后编译客户端(必须自己编译后下载)
分别为windows和linux的64位版本
sudo GOOS=windows GOARCH=amd64 make release-server release-client sudo GOOS=linux GOARCH=amd64 make release-server release-client
编译完成后可以在/usr/local/ngrok/bin/目录下找到对应的系统版本
客户端配置:
下载编译后的可以执行文件到客户机上
然后编辑配置文件
server_addr: "zhuhd.win:11000" trust_host_root_certs: false tunnels: ssh: remote_port: 46382 proto: tcp: 22
配置文件似乎要求严格的缩进,可以直接下载解压
然后即可执行
./ngrok -config ngrok.cfg start ssh
连接zhuhd.win:46382即可转发到22端口