没有云服务器不要紧,分分钟让局域网资源公网可访问
太多教程标题党1分钟、10分钟完成一个ngrok的搭建,这里我只想说,funny mud pee,经过一堆配置报错异常处理后,本篇才是真正的10分钟
内网穿透 即 NAT穿透
- 通过ngrok反向代理服务实现本机在无公网ip时被外部访问
- ngrok建立一个安全隧道,主机A的http请求传递给主机B
- 本地端口所监听的进程转发到远端服务器上,实现穿透
简单的国外官方服务器版 -v2.x - free版不支持自定义域名
注册并获取授权码
如通过github绑定注册的
- 下载客户端
- window版是.exe文件
- 配置授权码
- Authentication里获取
- 执行.exe,输入
ngrok authtoken xxxxx
- 保存在
C:\Users\xxx\.ngrok2\
中
- 本地启动服务器,端口8080
- 推荐node下的anywhere,so easy
- 启动ngrok
- 在ngrok.exe进程的shell里
- 执行ngrok http 8080,
- 访问
http://xxx.ngrok.io
等于本地localhost:8080
- 需等待官方同步
自建服务centos -v1.7 -自己的域名 (云服务器还是香)
- 公网ip服务器
- 域名及备案
- 配置两条二级域名*.ngrok和ngrok
- 安全组端口开通80、4443是服务通信、4444是tcp端口转发、8000是http请求转发
- 安全组添加端口白名单和域名
- ngrok.sh传到服务器上,执行
服务端
安装镜像
docker build -t ngrok .
一共10个Step
go install -tags ‘release’ ngrok/main/ngrokd会比较慢,等待install8次才成功
启动镜像
docker run -it -p 8081:8081 -p 4443:4443 -p 4444:4444 -p 4445:4445 -d ngrok /ngrok/bin/ngrokd -domain="ngrok.xxx.com" -httpAddr=":8081"
查看镜像列表
docker images
,拿到镜像ID,image id
查看正在运行的容器
docker ps
,拿到容器ID,container id
查看镜像/容器信息
docker inspect id
找到挂载目录Mounts.Source
进入这个目录,找到bin/里面选择客户端版本ngrok.exe,下载
客户端
新建配置文件config.yml,放在刚刚下载的同一层
1 | server_addr: "ngrok.xxx.com:4443" |
如果是window客户端,用cmd进入目录后执行ngrok -config=config.yml start-all
棒不棒!(๑•̀ㅂ•́)و✧,可以通过域名访问本地内容了
如果切换盘符失败可以用cd /d xxx
8080是本地启动服务的端口
访问时加载速度取决于服务端的带宽
http://localhost:4040
可以查看本地请求的资源信息