飞雪连天射白鹿,笑书神侠倚碧鸳

0%

ngrok内网穿透工具

没有云服务器不要紧,分分钟让局域网资源公网可访问

太多教程标题党1分钟、10分钟完成一个ngrok的搭建,这里我只想说,funny mud pee,经过一堆配置报错异常处理后,本篇才是真正的10分钟


内网穿透 即 NAT穿透

详细的中文文档说明

  • 通过ngrok反向代理服务实现本机在无公网ip时被外部访问
  • ngrok建立一个安全隧道,主机A的http请求传递给主机B
  • 本地端口所监听的进程转发到远端服务器上,实现穿透

简单的国外官方服务器版 -v2.x - free版不支持自定义域名

注册并获取授权码
如通过github绑定注册的

  1. 下载客户端
    • window版是.exe文件
  2. 配置授权码
    • Authentication里获取
    • 执行.exe,输入ngrok authtoken xxxxx
    • 保存在C:\Users\xxx\.ngrok2\
  3. 本地启动服务器,端口8080
    • 推荐node下的anywhere,so easy
  4. 启动ngrok
    • 在ngrok.exe进程的shell里
    • 执行ngrok http 8080,
  5. 访问http://xxx.ngrok.io等于本地localhost:8080
    • 需等待官方同步

自建服务centos -v1.7 -自己的域名 (云服务器还是香)

采用了文中的go+docker方案

  • 公网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
2
3
4
5
6
7
8
9
10
11
server_addr: "ngrok.xxx.com:4443"
trust_host_root_certs: false
tunnels:
webapp:
proto: # 本地端口
http: 8080
subdomain: test # 二级域名,没有则自动生成
tcp12345:
remote_port: 4444 # tcp隧道中远程服务器端口
proto:
tcp: 12345

如果是window客户端,用cmd进入目录后执行
ngrok -config=config.yml start-all

棒不棒!(๑•̀ㅂ•́)و✧,可以通过域名访问本地内容了

如果切换盘符失败可以用cd /d xxx

8080是本地启动服务的端口
访问时加载速度取决于服务端的带宽

http://localhost:4040可以查看本地请求的资源信息

听说,打赏我的人最后都找到了真爱
↘ 此处应有打赏 ↙
// 用户脚本