超全内网穿透教程: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才能正常使用,免费注册即可获取:

  1. 进入 Ngrok注册页面,支持邮箱、GitHub、Google快捷登录
  2. 登录后台后,找到 Your Authtoken 板块,复制专属认证令牌
  3. 打开终端/CMD,执行配置命令,完成账号绑定:
    ngrok config add-authtoken 你的专属Token

执行命令后提示配置成功,代表Ngrok环境搭建完成。

3. 启动内网穿透(核心实操)

先启动本地服务(例如本地项目运行在 localhost:8080、localhost:3000),再执行穿透命令:

基础HTTP穿透命令:
ngrok http 本地端口号

示例(暴露本地3000端口服务):
ngrok http 3000

Image

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:可通过包管理器或官网下载二进制包安装

Image

2. 临时穿透(快速使用,无需配置)

临时调试场景无需注册、无需配置,一条命令直接穿透本地服务:

命令格式:
cloudflared tunnel --url http://localhost:本地端口

示例(穿透本地8080端口):
cloudflared tunnel --url http://localhost:8080

执行命令后,终端自动生成 trycloudflare.com 后缀的公网地址,直接访问即可。

Image

3. 进阶配置:固定域名、长期稳定穿透

临时穿透域名随机、地址会变动,适合单次调试。如果需要固定公网域名、长期稳定使用,可配置专属隧道:

  1. 注册登录 Cloudflare控制台,绑定自己的域名
  2. 创建专属隧道,获取隧道ID和认证配置文件
  3. 新建配置文件 config.yml,配置隧道映射规则,绑定自定义域名与本地端口
  4. 通过专属命令启动永久隧道,实现域名固定、永久穿透

四、Ngrok vs Cloudflare Tunnel 优缺点对比

对比维度NgrokCloudflare Tunnel
使用门槛极低,开箱即用,命令极简临时使用极简,固定域名需简单配置
流量限制免费版有流量、带宽限制永久免费、无任何流量限制
域名特性免费版域名随机、临时有效支持自定义域名、固定域名、长期有效
稳定性临时调试稳定,长时间运行易断开大厂服务器,稳定性极强,适合长期挂起
适用场景本地临时调试、接口测试、短期项目演示正式演示、长期外网访问、生产环境临时穿透

五、常见问题排查

1. 穿透成功但外网无法访问

大概率是本地服务监听地址为 127.0.0.1,仅本机可访问,需改为监听 0.0.0.0,重启本地服务后重新穿透即可。

2. Ngrok 提示Token无效

核对后台Token是否复制完整,重新执行配置命令,覆盖旧配置即可解决。

3. Cloudflared 命令报错

检查工具是否安装成功、环境变量是否配置,重新安装工具或重启终端即可修复。

六、总结

两款内网穿透工具各有优势,大家可以根据场景灵活选择:

日常快速调试、临时演示,优先用 Ngrok,零配置、一分钟搞定;

需要长期使用、固定域名、无流量限制,首选 Cloudflare Tunnel,免费稳定、性价比拉满。

掌握这两款工具,彻底告别公网IP、端口映射等繁琐操作,完美解决本地服务外网访问难题,适配90%以上的开发调试场景。