🚀 Ngrok:轻松实现内网穿透的利器

在开发过程中,我们常常需要将本地服务暴露到公网,以便进行远程调试、接口测试或演示分享。Ngrok 是一款强大的内网穿透工具,能够帮助我们快速实现这一需求。

:mag: 什么是 Ngrok?

Ngrok 是一个反向代理工具,通过在公共端点和本地运行的 Web 服务器之间建立安全的隧道,将本地服务映射到公网地址。它的主要特点包括:

  • 外网访问本地服务:无需公网 IP 或复杂的网络配置,轻松实现本地服务的公网访问。
  • 临时公网地址:为本地服务提供临时的公网地址,方便快捷。
  • 安全隧道:建立加密的通信隧道,确保数据传输的安全性。
  • 实时更新:实时更新公网地址,确保访问的稳定性和可靠性。

:hammer_and_wrench: 安装与配置

  1. 注册账号:访问 Ngrok 官网 注册一个账号。
  2. 下载客户端:根据操作系统下载相应的 Ngrok 客户端。
  3. 配置 Authtoken:登录后,在控制台获取你的 Authtoken,并在终端执行以下命令:
./ngrok config add-authtoken <你的_authtoken>

:rocket: 启动本地服务并建立隧道

假设你在本地运行了一个监听 8080 端口的服务,执行以下命令即可将其暴露到公网:

./ngrok http 8080

执行后,Ngrok 会生成一个类似于 https://xxxx.ngrok.io 的公网地址,外部用户可以通过该地址访问你的本地服务。

:globe_with_meridians: 使用固定域名(付费功能)

默认情况下,Ngrok 为每次启动的隧道分配一个随机的子域名。如果你希望使用固定的子域名,可以在 Ngrok 控制台中进行配置:

  1. 在控制台的 “Reserved” 部分添加一个子域名。
  2. 启动隧道时,指定该子域名:
./ngrok http -subdomain=yourdomain 8080

注意:使用固定子域名是 Ngrok 的付费功能。

:arrows_counterclockwise: 同时暴露多个服务

如果你需要同时暴露多个本地服务,可以通过配置 ngrok.yml 文件来实现:

  1. 创建或编辑 ngrok.yml 文件,添加多个隧道配置:
tunnels:
  web:
    proto: http
    addr: 8080
  api:
    proto: http
    addr: 5000
  1. 启动所有隧道:
./ngrok start --all

这样,你的多个本地服务就分别通过不同的公网地址暴露出去。

:pushpin: 应用场景

Sever A上面启动了一个服务,暴露在8000端口,在Server B上面想要访问,可以直接执行 ngrok http 8000 命令,然后会生成一个公网的URL

通过这个URL即可访问

2 个赞

208正需要

208怎么不用zt

因为总不能所有人都加到zt里

哦对,还有个问题,zt比较不稳定捏

可以share一下使用场景 :smiley:什么场景需要+怎么用的

还不稳定捏,正在找原因

找到了吗()