参考链接:
https://www.it235.com/实用工具/内网穿透/pierce.html
https://www.cnblogs.com/007sx/p/17469301.html
由于没有公网ip,所以尝试内网穿透将本地电脑作为服务器,目的就是作为一个demo展示。这里尝试了多种内网穿透软件,算是各种坑踩了一下,需要直接上手的可以直接拉到下面。尝试了Zerotier,发现用途和想象的不一样,更多用来远程连接自己的电脑等。又尝试了NATAPP,这个在之前就用过,效果还行,缺点就是域名每次运行exe时会改变,不能固定,要是绑定自定义域名还得有一个域名。又尝试了花生壳,发现目前已经不支持HTTP协议了,要是使用HTTPS协议需要申请数字证书,并且代码中可能会出现问题。后来发现NATAPP和花生壳都是基于ngrok,于是尝试了ngrok,用的是ngrok国内版,使用起来还行,关键是可以自定义一个三级域名,这样域名就不会变了。但缺点是只能建立一条隧道,前端项目可以访问了,但前端给后端发送请求时又访问不到,于是又要另外一个隧道。后来又发现ngrok小米球可以用,于是使用小米球映射到后端的gateway,这时神奇的情况出现了,本地电脑通过域名和内网穿透是可以正常访问网站的,但是其他电脑怎么都访问不了,这里已经把前端请求的url改成了后端的域名,也使用了HTTPClient测试也可以,但是其他电脑请求总是超时,网上尝试了很多解决方法都无效。没有办法,最终还是开通了一个云服务器,并且使用“最强”的FRP建立内网穿透,原理大概就是云服务器作为服务端,本地电脑作为客户端,由云服务器进行端口映射,使用步骤如下:
下载FRP
https://github.com/fatedier/frp/releases
选择版本下载,服务器和客户端分别下载,我这里服务器下载linux版,客户端下载windows版。
服务端
服务端解压缩包后,进入文件夹,编辑文件vi frps.ini,粘贴以下内容。注意后续访问7005端口时需要用到用户名和密码就是这里的admin,123456789
[common]
bind_port = 7000
dashboard_port = 7005
dashboard_user = admin
dashboard_pwd = 123456789
token = ttt123
tls_enable = true
启动服务端frp
nohup ./frps -c frps.ini >/dev/null 2>&1 &
网址输入公网ip:7005,应该能看到仪表盘
客户端
同样解压,注意要编辑frpc.ini,下面RDP只是名字,可以再加一栏。注意local_port填写本地需要映射的端口,remote_port 填写云服务器的端口
[common]
server_addr = 云服务器ip
server_port = 7000
token = ttt123
tls_enable = true
[RDP]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001
运行客户端
frpc.exe -c frpc.ini