超全内网穿透教程:Ngrok+Cloudflare Tunnel 零基础上手,免费实现本地服务公网访问
在日常开发、调试、项目演示场景中,我们经常遇到这样的问题:本地电脑搭建的网站、接口、项目服务,仅局域网可访问,外网设备无法打开。
想要实现公网访问,传统方案需要配置公网IP、设置端口映射、配置防火墙,步骤繁琐且有安全风险。而内网穿透工具可以完美解决这个问题,无需公网IP、无需路由器配置,一键将本地内网服务暴露到公网。
今天详细分享两款最常用、免费、稳定的内网穿透工具:Ngrok 和 Cloudflare Tunnel(cloudflared),从安装、配置、实操到优缺点对比,手把手教你零基础上手,全程适配Windows、Mac、Linux系统。
一、内网穿透核心原理(通俗理解)
简单来说,内网穿透就是通过公网中转服务器,建立外网与本地内网服务的专属隧道。外网用户访问工具生成的公网地址,请求会通过中转服务器转发到你的本地电脑,最终实现跨网络访问本地服务。
两款工具核心区别提前看:
- Ngrok:开箱即用、操作极简,免费版够用,适合临时调试、快速演示
- Cloudflare Tunnel:完全免费、不限流量、支持自定义域名、稳定性更强,适合长期使用、正式项目演示
二、Ngrok 内网穿透详细教程
Ngrok 是轻量化内网穿透工具,优势是操作简单、零复杂配置,启动即可生成公网HTTPS地址,是开发临时调试的首选工具。
1. 工具下载与安装
根据自己的操作系统,前往 Ngrok官网 下载对应客户端,无需复杂安装,解压即可使用。
系统快速安装命令:
- Mac OS:终端执行
brew install ngrok - Windows:官网下载压缩包解压,或终端执行
winget install ngrok - Linux:官网下载对应二进制包,赋予执行权限即可
2. 账号注册与Token配置
Ngrok 必须配置专属认证Token才能正常使用,免费注册即可获取:
- 进入 Ngrok注册页面,支持邮箱、GitHub、Google快捷登录
- 登录后台后,找到 Your Authtoken 板块,复制专属认证令牌
- 打开终端/CMD,执行配置命令,完成账号绑定:
ngrok config add-authtoken 你的专属Token
执行命令后提示配置成功,代表Ngrok环境搭建完成。
3. 启动内网穿透(核心实操)
先启动本地服务(例如本地项目运行在 localhost:8080、localhost:3000),再执行穿透命令:
基础HTTP穿透命令:ngrok http 本地端口号
示例(暴露本地3000端口服务):ngrok http 3000
4. 公网访问测试
命令执行成功后,终端会自动生成两个公网地址(HTTP/HTTPS),格式如下:
https://xxxx.ngrok.io
复制该地址,任意设备(手机、外网电脑)均可直接访问你的本地服务,穿透成功。
(配图4:Ngrok运行成功终端界面,标注公网访问地址)
5. Ngrok 常用拓展命令
- 指定穿透域名(付费版):
ngrok http -subdomain=自定义域名 端口 - TCP端口穿透(适配数据库、SSH):
ngrok tcp 22 - 查看帮助文档:
ngrok help
三、Cloudflare Tunnel 内网穿透详细教程
Cloudflare Tunnel(工具名 cloudflared)是 Cloudflare 官方推出的内网穿透工具,永久免费、无流量限制、无域名过期限制、支持自定义域名,完美弥补Ngrok免费版域名随机、时效有限的短板,适合长期使用。
1. 安装 cloudflared 工具
全平台一键安装,无需注册账号即可临时使用:
- Mac OS:
brew install cloudflared - Windows:
winget install Cloudflare.cloudflared - Linux:可通过包管理器或官网下载二进制包安装
2. 临时穿透(快速使用,无需配置)
临时调试场景无需注册、无需配置,一条命令直接穿透本地服务:
命令格式:cloudflared tunnel --url http://localhost:本地端口
示例(穿透本地8080端口):cloudflared tunnel --url http://localhost:8080
执行命令后,终端自动生成 trycloudflare.com 后缀的公网地址,直接访问即可。
3. 进阶配置:固定域名、长期稳定穿透
临时穿透域名随机、地址会变动,适合单次调试。如果需要固定公网域名、长期稳定使用,可配置专属隧道:
- 注册登录 Cloudflare控制台,绑定自己的域名
- 创建专属隧道,获取隧道ID和认证配置文件
- 新建配置文件
config.yml,配置隧道映射规则,绑定自定义域名与本地端口 - 通过专属命令启动永久隧道,实现域名固定、永久穿透
四、Ngrok vs Cloudflare Tunnel 优缺点对比
| 对比维度 | Ngrok | Cloudflare Tunnel |
|---|---|---|
| 使用门槛 | 极低,开箱即用,命令极简 | 临时使用极简,固定域名需简单配置 |
| 流量限制 | 免费版有流量、带宽限制 | 永久免费、无任何流量限制 |
| 域名特性 | 免费版域名随机、临时有效 | 支持自定义域名、固定域名、长期有效 |
| 稳定性 | 临时调试稳定,长时间运行易断开 | 大厂服务器,稳定性极强,适合长期挂起 |
| 适用场景 | 本地临时调试、接口测试、短期项目演示 | 正式演示、长期外网访问、生产环境临时穿透 |
五、常见问题排查
1. 穿透成功但外网无法访问
大概率是本地服务监听地址为 127.0.0.1,仅本机可访问,需改为监听 0.0.0.0,重启本地服务后重新穿透即可。
2. Ngrok 提示Token无效
核对后台Token是否复制完整,重新执行配置命令,覆盖旧配置即可解决。
3. Cloudflared 命令报错
检查工具是否安装成功、环境变量是否配置,重新安装工具或重启终端即可修复。
六、总结
两款内网穿透工具各有优势,大家可以根据场景灵活选择:
日常快速调试、临时演示,优先用 Ngrok,零配置、一分钟搞定;
需要长期使用、固定域名、无流量限制,首选 Cloudflare Tunnel,免费稳定、性价比拉满。
掌握这两款工具,彻底告别公网IP、端口映射等繁琐操作,完美解决本地服务外网访问难题,适配90%以上的开发调试场景。