1.安装go
sudo apt-get remove golang-go -y
cd /opt
sudo wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.11.2.linux-amd64.tar.gz
#配置环境变量

echo 'export GOPATH=/usr/local/go
export PATH=$PATH:$GOPATH/bin
export NGROK_DOMAIN="sum.free.idcfengye.com"' | sudo tee -a /etc/profile

source /etc/profile

1.安装git 和Golang,Golang,Go语言支持,因为Ngrok是基于Go语言编写的

apt-get install build-essential golang mercurial git -y

2.使用Git下载下载源码

git clone https://github.com/tutumcloud/ngrok.git ngrok

搭建ngrok服务器_Go


3.生成自签名证书

cd ngrok

NGROK_DOMAIN=“sum.free.idcfengye.com”

openssl genrsa -out base.key 1300

搭建ngrok服务器_Go_02


openssl req -new -x509 -nodes -key base.key -days 10000 -subj “/CN=$NGROK_DOMAIN” -out base.pemopenssl genrsa -out server.key 1300

搭建ngrok服务器_linux_03

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

搭建ngrok服务器_Go_04


执行完成后需要替换证书

cp base.pem assets/client/tls/ngrokroot.crt

cp server.crt assets/server/tls/snakeoil.crt

cp server.key assets/server/tls/snakeoil.key

4.编译server和client端

#linux服务端(bin/linux_386/ngrokd)

GOOS=linux GOARCH=386 make release-server

搭建ngrok服务器_git_05


#linux客户端(路径 bin/linux_386/ngrok)

GOOS=linux GOARCH=386 make release-client

make release-server release-client

搭建ngrok服务器_git_06


编译成功后在ngrok目录下的bin目录。

搭建ngrok服务器_git_07


6.新建ngrok.cfg

vi ngrok.cfg

server_addr: "sum.free.idcfengye.com:4443"
trust_host_root_certs: false
tunnels:
ssh:
remote_port: 1122
proto:
tcp: 22
ss:
emote_port: 8388
proto:
tcp: 8388
ftp:
remote_port: 20
proto:
tcp: 20
ftp2:
remote_port: 21
proto:
tcp: 21
http:
subdomain: www
proto:
http: 80
https: 443

5.server端启动
./ngrok -subdomain sum.free.idcfengye.com -proto=http -config=ngrok.cfg 1300
./ngrokd -domain=“sum.free.idcfengye.com” -httpAddr=":1300"-config=ngrok.cfg
httpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,可以随意指定。ngrokd 还会开一个 4443 端口用来跟客户端通讯(可通过 -tunnelAddr=”:xxx” 指定)。