| 2022-05-31
免费ngrok服务器是一个内网穿透的解决方案,它使得你本地的服务器可以被局域网外的公网访问,免费ngrok服务器有服务端和客户端,服务端运行在公网服务器,客户端运行在本地服务器ngrok服务端会建立http和https服务,默认端口80/443,以及供ngrok客户端连接的服务,默认端口4443。
一,安装git和go以及其它依赖
wget https://studygolang.com/dl/golang/go1.11.linux-amd64.tar.gz
tar -zxvf go1.11.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/src/go/bin
go version
二,下载源码 (项目早已停止更新,源码完全固定)
git clone https://github.com/inconshreveable/ngrok.git
三,生成证书(默认的证书是 ngrok.com,我们需要改成我们自己的域名,如:abc.com,如果一级域名已经占用,也可以使用二级域名,需要自己在域名解析里申请,如何申请,就不细说了,如:tunnel.abc.com)
cd ngrok
mkdir cert
cd cert
export NGROK_DOMAIN="tunnel.abc.com"
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
cp rootCA.pem ../assets/client/tls/ngrokroot.crt
cp device.crt ../assets/server/tls/snakeoil.crt
cp device.key ../assets/server/tls/snakeoil.key
四:生成服务端与客户端
GOOS=linux GOARCH=amd64 make release-server
GOOS=windows GOARCH=amd64 make release-client
五:启动服务端服务
./bin/ngrokd -domain="$NGROK_DOMAIN"
nohup ./bin/ngrokd -domain="tunnel.zyksedt.com" -httpAddr=":8000" -httpsAddr=":8443" >log/ngrok.log &
这里我们使用后台启动nohup,域名为tunnel.abc.com,由于商品与系统其他服务有冲突,这里http和htpps端口分别自定义为8000、8443,并记录日志到文件夹log下的ngrok.log文件中。
参数说明:
-httpAddr=":8000" http服务的访问端口 默认80
-httpsAddr=":8443" https服务的访问端口 默认443
-tunnelAddr=":4443" 客户端连接服务端的端口 默认4443
注意事项,使用端口时,同时记得配置防火墙。
六:客户端配置与连接
将ngrok下载到你需要使用客户端的电脑中,并新建配置文件ngrok.cfg
server_addr: "tunnel.abc.com:4443"
trust_host_root_certs: false
运行客户端
ngrok -config=ngrok.cfg -subdomain h5 8081
七:通过Nginx反射代理
启动本地web服务,端口8081,可以通过http://h5.tunnel.abc.com:8000 访问。但带着端口号始终不方便,我们可以在运行在服务器80端口上的nginx上做个转发:
server {
listen 80;
server_name h5.tunnel.abc.com;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host:8000;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://h5.tunnel.abc.com:8000;
}
}
重启nginx,现在可以用http://h5.tunnel.abc.com访问本地80端口。
花生壳既是内网穿透软件、端口映射软件。功能比较齐全,比较简单,也是大家比较耳熟了,支持tcp,udp.https.http,socket5应用。
需要使用的软件工具:花生壳客户端和SERV-U 10.5.0.24
第一步、下载、安装、登录花生壳客户端
1、下载花生壳客户端并进行安装。
2、输入账号密码登录花生壳客户端。
3、登录贝锐账号之后,点击主界面左下角的“域名”按钮,进入到域名列表的管理界面。
4、点击“域名诊断”,诊断结果:花生壳已经成功地将您的域名和公网ip绑定在一起了,花生壳的动态域名解析正确无误。
这时候,花生壳客户端已经在线了,我们所申请的免费域名已经绑定到当前的公网IP地址,互联网可通过所申请的域名直接访问到当前的公网IP了。
第二步、搭建Server-U服务器
1.安装Serv-U:
使用Serv-U来搭建FTP服务器,需要先下载安装Serv-U,然后双击程序安装即可。
2.新建域:
在Serv-U中,点击“新建域”。
输入“名称”(自定义),然后点击下一步。其他都使用系统默认的设置点下一步直至完成。
这里定义域使用的协议及其对应的端口,若服务器上有其他端口与Serv-U的冲突,建
议修改为其他。如下图的HTTP端口,修改为88。
3、新建域账户:
域已经建立好,此时Serv-U会提示域中无用户,是否给域创建用户,点击“是”。
根据提示,我们现在来添加一个用户名为oray的账户。
定义此账户的密码。
选择此域用户的根目录地址,点击下一步。
到了这里我们已经安装并创建好FTP服务了。当然,大家可以根据实际情况自行进行调整。
测试内网是否可以访问FTP站点,通过点击电脑开始—运行—CMD,在命令行界面里面输入ipconfig,通过查看IP Address获得本机内网IP。
打开IE浏览器,在地址栏中输入http://192.168.1.101:88 进行访问,
能访问到指定的文件目录中,FTP服务器搭建成功。
第三步、设置端口映射
浏览器访问路由器的管理地址(可通过路由器背面查看) ,并输入密码登录。
在路由器—应用管理—虚拟服务器中,添加HTTP 88的端口映射。
外网使用花生壳域名+端口的方式访问,成功访问到内网的FTP服务器。
看了本文,知道免费ngrok服务器如何搭建了吧,而且大家可以看出用花生壳软件实现内网穿透更加简单一些。花生壳是一款内网穿透兼动态域名解析软件,支持端口映射和内网穿透,从2006年面世起十多年间累计为全球1800万用户提供动态域名解析服务。