利用ngrok实现内网穿透,将本地服务暴露到公网上,可实现小程序与后台API通信
摘要:ngrok是一款流行的内网穿透工具,通过建立本地与服务器之间的安全隧道,将内网服务映射到公网地址(如yoursubdomain.ngrok.io),实现外网访问。使用步骤包括:下载安装、注册获取AuthToken、启动服务(如ngrok http 8080)。典型应用场景包括小程序开发测试等,但需注意安全风险和免费版流量限制。完成后应及时关闭服务以防止未授权访问。
·
原理
内网穿透的本质是将外网IP地址与内网IP地址建立联系,一种内网发布公网,本地开放给异地的网络连接权限。ngrok作为一款非常流行的内网穿透工具,它可以在本地启动客户端,并配置好映射的端口,然后获得一个临时的域名,通过该域名即可访问内网应用。
1. 简单来说,ngrok 干了这么几件事:
- 创建隧道:它在你的本地计算机和 ngrok 的服务器之间创建一个安全的隧道。
- 映射地址:将你的本地地址(如
localhost:8080)映射到一个公网上可访问的地址(如yoursubdomain.ngrok.io)。 - 外网访问:这样,即使手机和电脑不在同一个局域网,也可以通过 ngrok 提供的公网地址访问你的本地服务。
2. 举个例子:
假设你开发了一个网站,运行在本地的 http://localhost:8080,你的朋友想看看你的网站,但你们不在同一网络下。这时,你可以:
- 启动 ngrok 客户端,它会在你的电脑上创建一个到 ngrok 服务器的安全隧道。
- ngrok 会给你分配一个公网可访问的 URL(如
123.ngrok.io)。 - 你把这个 URL 发给你的朋友,他们就能在任何地方通过这个 URL 访问你的本地网站了。
3. 具体步骤:
1. 下载与安装 ngrok
- 访问官网:前往 ngrok 官方网站。
- 下载客户端:根据你的操作系统(Windows、Mac 或 Linux),选择对应的下载链接。
- 解压文件:下载完成后,解压到指定目录,例如
C:\ngrok(Windows 系统)或/usr/local/bin(Linux 系统)。


2. 注册账号并获取 Auth Token
- 注册账号:在 ngrok 官网点击 “Sign Up” 按钮,使用邮箱或 Google 账户注册。有 GitHub 账号可以直接登录。
- 获取 Auth Token:登录后,在用户页面中找到 “Auth Token”,复制该令牌。

- 配置 Auth Token:打开终端(Windows 系统为命令提示符),切换到 ngrok 解压后的目录,运行以下命令:
ngrok config add-authtoken <你的认证令牌>
此时,ngrok 会将 Auth Token 保存到本地配置文件中。

如何在当前目录下打开 cmd 命令呢?
- 文件路径框中输入 cmd,回车
- shift+右键
3. 启动内网穿透
- 启动本地服务:确保你的本地服务正在运行,例如 Web 服务运行在
http://localhost:8080。 - 运行 ngrok 命令:在终端中运行以下命令,将本地服务暴露到公网:
ngrok http http://localhost:8080

- 获取公网地址:运行 ngrok 命令后,其中
https://9826-140-250-246-131.ngrok-free.app是你的公网地址,复制后即可通过公网访问本地服务。

4. 应用场景:配置小程序
背景:小程序与后台API通信时,通常不能直接访问后台接口,需要通过一些技术手段来实现。
将ngrok提供的临时域名配置到小程序的合法域名中,然后就可以在小程序中通过这个域名访问后台API。
注意事项
- 安全问题:不要泄露 Auth Token,若泄露应及时清除和更换。
- 关闭服务:用完后务必关闭 ngrok 服务,否则他人可能通过公网地址访问你的本地服务。如果你使用的是 ngrok 的免费版,隧道会在一段时间后自动关闭(例如 2 小时),但建议手动关闭以释放资源。
- 流量限制:免费版的 ngrok 有流量限制,如果流量超出限制,可能会导致服务中断。
更多推荐



所有评论(0)