FunnyWeb

据说这里有很多神奇的东西...

CentOS搭建ngrok服务器

2017-05-22 22:27:412523 views

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.zip

然后即可执行

./ngrok -config ngrok.cfg start ssh

连接zhuhd.win:46382即可转发到22端口