简简单单教你实现内网穿透

sudo ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="zzmd.superboycxx.top" -httpAddr=":8081" -httpsAddr=":8082"

 

屁话不讲,先来看下效果:html

 

1.搭建环境(安装git,golang)node

        由于Ngrok是基于Go语言编写的linux

 

sudo apt-get install build-essential golang mercurial git

 

2.安装ngrok(运行下面命令,通常不会有问题的)git

# git clone https://github.com/tutumcloud/ngrok.git ngrok
# cd ngrok
生成自签名证书
$ cd ngrok

# NGROK_DOMAIN="ngrok.mdzz2333.cn"换成本身的域名哦

# 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

 


  在当前目录,替换一个文件:github

 

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

 

3.编译客户端(看你本身,这里能够有linux的,和windows的)golang

linux:windows

 

sudo make release-server release-client
这一步骤等待时间较长,成功编译后,会在bin目录下找到ngrokd和ngrok这两个文件。
将/ngrok/bin目录下的 ngrok 经过ssh的scp指令下载到当前客户端所在的系统中。
 
scp username@serverIp:/ngrok/bin/ngrok /home/ubunutu/ngrok
 

 

windows:服务器

 

GOOS=windows GOARCH=amd64 make release-client

 

4.启动服务端(域名换成本身的dom

 

# sudo ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ngrok.mdzz2333.cn" -httpAddr=":8081" -httpsAddr=":8082"

经过 http://ngrok.mdzz2333.cn:8081 和 http://ngrok.mdzz2333.cn:8082 (你们要访问本身的域名哦) 就能够访问到 ngrok 提供的转发服务访问后看到提示:Tunnel pub.imququ.com:8081 not found,这说明万事俱备,只差客户端来连了。在服务端为了保证服务的一直启动,能够使用screen,此处略过apt install screen,你能够看我另外一篇博客,里面写了,你搜索关键词:screen
 ssh

5.启动客户端

在根路径下,建立一个ngrok配置文件:ngrok.cfg

server_addr: “ngrok.mdzz2333.cn:4443"
trust_host_root_certs: false

注意:这里的server_addr换成前面配置的自签名证书中的域名

另外,这个域名请提早解析到服务器IP,参考以下:

*.ngrok    ngrok.

接下来只须要指定子域、要转发的协议和端口,以及配置文件,运行客户端:

ngrok.exe -config=ngrok.cfg -log=ngrok.log -subdomain=test 8080