本地部署痛点解决:配合 Cloudflare Tunnel 实现 n8n 外网远程访问

2026-01-19 25 0

还在为 n8n 外网访问发愁?Cloudflare Tunnel 是你的最佳拍档

兄弟们,把 n8n 跑在本地或者自家 NAS 上,这事儿笔者举双手赞成。数据掌握在自己手里,安全又省心。但问题来了:你人在公司,或者出门在外,想临时修改个 workflow,或者查看运行日志,咋办?

传统的做法是搞端口转发,或者在路由器上开映射。但这套操作不仅繁琐,还把你的家底(端口)直接暴露在公网上,黑客只要扫一下,你的 n8n 就在劫难逃。更别提大多数家庭宽带根本没有公网 IP,这事儿直接卡死。

今天,N8N大学 给大家带来一个“白嫖”且硬核的方案:**Cloudflare Tunnel**。它能打通你本地内网和外网的通道,不仅零成本,还能隐藏你的真实 IP,安全性拉满。跟着笔者走,15 分钟搞定外网无障碍访问。

准备工作:手里要有“枪”

在开始之前,我们需要盘点一下手里的资源。别到时候命令敲到一半,发现缺东西。

  • 一个 Cloudflare 账号:免费注册即可,不需要付费套餐。
  • 一个属于你的域名:比如 example.com,必须托管在 Cloudflare 上(修改 DNS 服务器即可)。
  • 本地部署的 n8n 环境:无论是 Docker 还是直接装在物理机上都行。

  • 终端工具:你熟悉的 SSH 客户端或直接敲命令的窗口。

核心实操:四步打通任督二脉

别慌,看着步骤多,其实就是在 Cloudflare 后台点几下,然后在本地运行一个小脚本。咱们拆解来看。

步骤一:在 Cloudflare 后台创建 Tunnel

首先登录 Cloudflare 仪表盘,选择你的域名。在侧边栏找到 Zero Trust(零信任)板块。这是 Cloudflare 的企业级功能,但 Tunnel 服务是免费的。

  1. 进入 Zero Trust 控制台后,点击 Access -> Tunnels
  2. 点击 Create a tunnel,给你的隧道起个名字,比如 n8n-home
  3. 系统会自动生成一段安装命令,包含了你的隧道 Token。**先别急着运行**,记下来备用。

步骤二:本地安装并运行 Cloudflared

这一步是把你的本地机器和 Cloudflare 服务器连起来。如果你用的是 Docker 部署 n8n,建议单独跑一个 cloudflared 容器。

如果你是直接在 Linux 服务器上运行,执行以下命令(把 <你的TOKEN> 换成刚才拿到的):

cloudflared service install <你的TOKEN>

安装完服务后,启动它:

sudo systemctl start cloudflared

回到 Cloudflare 的网页,如果看到连接状态显示为 Healthy,恭喜你,隧道已经通了!

步骤三:配置 Public Hostname(公网域名)

隧道通了,但 Cloudflare 还不知道你要把流量转到哪里。我们需要在 Tunnel 的配置里加一条映射规则。

  1. 在刚才创建的 Tunnel 页面,点击 Configuration 标签页。
  2. 点击 Add a public hostname
  3. 输入你想要的子域名,比如 n8n.example.com
  4. Service type 选择 HTTP
  5. URL 填写你本地 n8n 的端口。如果你是默认安装,填 localhost:5678。如果你跑在 Docker 里且网络隔离了,填对应的容器名或 IP。

步骤四:最后的握手(DNS 与 SSL)

保存配置后,Cloudflare 会自动帮你生成 CNAME 记录。此时,访问 https://n8n.example.com,你应该能看到 n8n 的登录界面了!

注意: Cloudflare 默认会处理 SSL 证书。但 n8n 内部可能不知道自己跑在 HTTPS 下,导致回调出问题。你需要修改 n8n 的环境变量,告诉它现在是安全模式:

WEBHOOK_TUNNEL_URL=https://n8n.example.com

加上这个变量,Webhook 触发才不会报错。

避坑指南:这几个坑笔者替你踩过了

虽然 Cloudflare Tunnel 很强大,但在 n8n 这种重度 Web 交互的场景下,有几个细节不注意就会抓狂。

坑点一:HTTP vs HTTPS 的内部协议

Cloudflare Edge 到你的本地是通过 HTTP 通信的,但用户访问是 HTTPS。如果你在 n8n 的 N8N_PROTOCOL 环境变量里强制写死了 https,可能会导致无限重定向。

建议: 在 n8n 配置中,保持默认或设置为 http,因为 Cloudflare 会自动处理 SSL 卸载。但务必配置 WEBHOOK_TUNNEL_URL 为完整的 HTTPS 地址。

坑点二:大文件上传超时

如果你经常用 n8n 处理大文件(比如上传 Excel 或图片),Cloudflare 的免费版隧道有 100MB 的上传限制。如果你的工作流卡在 Read Binary FileUpload 节点,大概率是被拦截了。

解决方案: 尽量避免通过 n8n 上传超大文件,或者将文件先传到 S3 再通过 URL 处理。

FAQ 常见问题解答

Q1: 我没有公网 IP,这个方案还能用吗?

A: 完全可以!这正是 Cloudflare Tunnel 的最大优势。它只需要你的机器能访问互联网即可(出站流量),不需要入站端口开放,完美解决运营商屏蔽端口的问题。

Q2: 这个方案安全吗?会不会被人直接攻击我的 n8n?

A: 非常安全。Cloudflare Tunnel 建立的是一条加密通道,你的 n8n 没有直接暴露在公网。建议同时开启 Cloudflare 的 Access 功能,只允许你自己的 IP 或邮箱登录,双重保险。

Q3: 为什么我访问页面显示 502 Bad Gateway?

A: 90% 的原因是本地的 cloudflared 客户端挂了,或者 n8n 服务没启动。去本地检查一下 Docker 容器或服务状态,确保两者都在运行中。

总结与资源

本地部署 n8n 并不意味着要牺牲便利性。通过 Cloudflare Tunnel,我们完美解决了外网访问的痛点,既保留了数据的私有化,又获得了云端的便捷。

如果你在配置过程中遇到网络不通,或者 DNS 解析延迟的问题,不要急,多等几分钟,或者重启一下 cloudflared 服务。自动化之路没有一帆风顺,但搞懂了底层原理,这些都是小菜一碟。

欢迎关注 N8N大学 (n8ndx.com),这里有最硬核的低代码实战经验,带你避坑,带你飞!

相关文章

寻找免费的 Zapier 替代品?深度解析 n8n 社区版为何是最佳选择
不只是 n8n!2025年值得关注的 5 款开源自动化工具推荐与评测
省钱攻略:如何将 Zapier 自动化工作流无缝迁移到 n8n?
防止数据丢失:n8n 工作流与凭证(Credentials)的自动备份方案
Node.js 开发者首选:使用 npm 全局安装 n8n 及 PM2 进程守护教程
Python 党福音:如何在 n8n 中启用 Python 支持并运行 Python 脚本?

发布评论