一、操作系统描述
服务器:Centos6.10 64位
客户端:Windows 10 64位
二、服务器环境准备
1.安装git
yum -y install git
2.安装go
如果wget下载比较慢,可以通过迅雷下载完再拷贝到服务器上
wget https://golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz
tar zxvf go1.9.2.linux-amd64.tar.gz
mv go /usr/local/
ln -s /usr/local/go/bin/* /usr/bin/
修改profile配置文件
vi /etc/profile
#go lang
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
环境变量生效:
source /etc/profile
检查go是否安装成功:
go version
出现以下信息,go安装成功
go version go1.9.2 linux/amd64
三、ngrok安装及配置
1.下载ngrok源码
cd /usr/local
git clone https://github.com/inconshreveable/ngrok.git
2.填入域名地址
cd ngrok
export NGROK_DOMAIN="xxx.com"
3.生成秘钥
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 device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
4.替换秘钥
\cp -rf rootCA.pem assets/client/tls/ngrokroot.crt
\cp -rf device.crt assets/server/tls/snakeoil.crt
\cp -rf device.key assets/server/tls/snakeoil.key
5.编译生成服务端
GOOS=linux GOARCH=amd64 make release-server
生成的服务端在/usr/local/ngrok/bin/目录中
6.编译生成客户端
GOOS=windows GOARCH=amd64 make release-client
生成的客户端在/usr/local/ngrok/bin/windows_amd64/目录中
将ngrok.exe拷贝到Windows上
7.启动服务
./bin/ngrokd -domain="xxx.com" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":8083"
8083为通道端口,可以自定义
8.配置客户端
Windows上ngrok.exe同级目录创建ngrok.cfg配置文件,内容如下
server_addr: "xxx.com:8083"
trust_host_root_certs: false
tunnels:
http:
subdomain: "a"
proto:
http: "80"
https:
subdomain: "b"
proto:
https: "443"
mstsc:
remote_port: 3389
proto:
tcp: "3389"
ssh:
remote_port: 2222
proto:
tcp: "22"
创建启动文件start.bat,内容如下:
ngrok -config=ngrok.cfg start http https mstsc ssh
运行start.bat,出现如下状态,则内网穿透成功。
四、总结
1.如果碰到bat无法启动,检查ngrok.cfg文件,不能有tab。
2.start.bat启动后 offline,检查服务器防火墙状态,是否放通端口。