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

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

 

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

 

简简单单教你实现内网穿透_第1张图片

简简单单教你实现内网穿透_第2张图片

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

        因为Ngrok是基于Go语言编写的

 

sudo apt-get install build-essential golang mercurial git

 

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

# 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

 


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

 

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

 

3.编译客户端(看你自己,这里可以有linux的,和windows的)

linux:

 

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.启动服务端(域名换成自己的

 

# 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
 

5.启动客户端

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

简简单单教你实现内网穿透_第3张图片

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  

简简单单教你实现内网穿透_第4张图片

 

 

 

 

 

 

你可能感兴趣的:(linux操作系统)