孙亮亮
返回 NAS 系统

NAS 系统

NAS 零信任远程访问实战:用 Cloudflare Tunnel 安全暴露内网服务

2026年11月9日

NAS 用 Cloudflare Tunnel 零信任远程访问,免端口映射更隐蔽安全。

NAS远程访问Cloudflare Tunnel零信任

NAS 零信任远程访问实战:用 Cloudflare Tunnel 安全暴露内网服务

摘要

传统端口映射和 frp 内网穿透要么把 NAS 暴露在公网 IP 下、要么依赖一台有公网 IP 的中转机。本文用 Cloudflare Tunnel 建立从 NAS 到 Cloudflare 边缘节点的加密反向隧道,配合 Zero Trust Access 做身份校验,无需开路由器端口、无需 DDNS,就能安全地从外网访问 Jellyfin、文件服务与管理后台。

一、为什么不再用端口映射和 frp

在家庭宽带没有公网 IPv4 的今天,想从外面访问 NAS 通常只有几条路:路由器做端口转发(暴露公网 IP 与端口,易被扫描)、自建 frp/ngrok 中转(需要一台有公网 IP 的服务器)、或用 Tailscale/WireGuard 组虚拟网(仅限装了客户端的设备)。

Cloudflare Tunnel 走的是另一条路:它在 NAS 上跑一个 cloudflared 守护进程,主动向外连接 Cloudflare 边缘节点并保持长连接。外部请求先到最近的 CF 节点,再由隧道"反向"送回 NAS。整个过程 NAS 不需要任何入站端口,源站 IP 对访问者完全不可见,运营商封锁 80/443 也不影响。

二、原理:cloudflared 反向隧道与 Zero Trust

Tunnel 的本质是"出站连接 + 边缘代理"。你在 Cloudflare 后台创建一个 Tunnel,会生成一对密钥(credentials.json)。cloudflared 用这把密钥和 CF 建立 mTLS 隧道,并上报一份 ingress 路由表:哪个 hostname 对应内网哪个服务。

真正让它比 frp 更省心的是 Zero Trust Access:你可以给某个 hostname 套一层 SSO 登录(支持邮箱 OTP、GitHub、Google、OIDC)。访问者先通过身份校验,才被允许把请求送到 NAS。相当于在隧道出口又加了一道门禁,即使后端服务本身没有鉴权也不会裸奔。

三、准备工作:域名与隧道创建

  1. 一个托管在 Cloudflare 的域名(免费版即可),并把要用的子域(如 nas.example.com)的 DNS 交给 CF 解析。
  2. 登录 Cloudflare Zero Trust 控制台,进入 Networks → Tunnels → Create a tunnel,选择 Cloudflared,按提示在 NAS 上安装并运行连接器。CF 会自动生成密钥并下载 credentials.json。
  3. 命令行方式:cloudflared tunnel login 授权域名,再 cloudflared tunnel create nas-tunnel,生成的 JSON 在 ~/.cloudflared/ 下。

四、在群晖/飞牛上部署 cloudflared 容器

最省事的是用 Docker。群晖 Container Manager、飞牛的容器管理里都可直接拉 cloudflare/cloudflared,用 token 方式运行(token 由 cloudflared tunnel token nas-tunnel 导出,比挂载 credentials.json 更适合容器):

services:
  cloudflared:
    image: cloudflare/cloudflared:latest
    command: tunnel --no-autoupdate run --token <你的TOKEN>
    restart: unless-stopped

也可以写成配置文件 /etc/cloudflared/config.yml 自管路由:

tunnel: nas-tunnel
credentials-file: /etc/cloudflared/<id>.json
ingress:
  - hostname: nas.example.com
    service: https://192.168.1.20:5001
    originRequest:
      noTLSVerify: true
  - hostname: jellyfin.example.com
    service: http://192.168.1.20:8096
  - service: http_status:404

noTLSVerify: true 用于后端是自建证书(如群晖 5001 自签)时跳过校验;纯 http 服务直接写 http:// 即可。

五、用 Zero Trust Access 加一层身份认证

回到 Zero Trust 控制台 Access → Applications → Add an application,选 self-hosted,填 nas.example.com,在 Policy 里加一条:允许邮箱后缀为 @yourdomain.com 的用户,动作选 Allow,认证方式勾选 One-Time Pin(发验证码到邮箱)。保存后,外部访问该域名会先跳到 CF 的登录页,输对验证码才放行。只给家人用的场景,也可基于 Service Auth 或 bypass 规则放行特定 IP。

六、性能、回源与常见坑

  • 带宽:隧道免费额度足够管理后台、文件下载;但 4K 原盘串流走 CF 会绕远路且可能触发缓存/限速,影音大流量仍建议用 Tailscale/WireGuard 直连。
  • 动态内容被缓存:CF 默认对静态资源缓存,管理后台若被缓存会串号。在 Access 或 Cache Rules 里把 nas.example.com/admin/* 设为 Cache Level: Bypass。
  • WebSocket:Jellyfin/Plex 的实时弹幕、HA 的 WebSocket 需要隧道支持 WS,cloudflared 默认已支持,但反向代理层别再套一层会断连的 Nginx。
  • 50 用户上限:免费 Zero Trust 支持 50 人,小微企业够用;超了再评估付费。
  • 更新:cloudflared 偶尔强制升级,加 --no-autoupdate 可锁定版本,但建议定期手动升级以修复漏洞。

小结

Cloudflare Tunnel 用"出站反连"替代"入站暴露",让没有公网 IP 的 NAS 也能安全上线,再叠加 Zero Trust Access 的身份门禁,比裸端口映射和 frp 中转都更克制、更隐蔽。适合发布管理后台、文档、网盘等低频高价值服务;大流量影音则留给虚拟组网方案。

本模块其他文章

NAS 虚拟机实战:用群晖 VMM 与飞牛虚拟机跑软路由、Home Assistant 与隔离测试环境NAS 媒体库自动整理与批量转码实战:用 Tdarr + ffmpeg 规范命名、转 H.265 省 40% 空间NAS 做全家终端备份中枢:macOS 时间机器、Windows 文件历史与手机整机备份实战NAS 存储池与 RAID 选型实战:SHR、RAID 5/6/10 容量算法、掉盘容忍与在线扩容避坑飞牛/群晖 NAS SSD 缓存加速实战:NVMe 读写缓存、命中率观测与掉电保护取舍群晖/飞牛 NAS 快照与误删秒级恢复实战:Btrfs 子卷快照、快照计划与勒索病毒防护NAS 接 UPS 断电自动保护实战:USB 通讯、NUT 网络供电监控与停电安全关机家庭与小企业 NAS 文件共享实战:SMB 多用户挂载、权限隔离与 Windows/Mac 访问指南NAS 容器化应用纳管实战:用 Docker Compose + Watchtower 编排多服务并自动安全更新NAS 硬盘健康监控实战:用 smartmontools + Scrutiny 提前发现坏盘与温度预警NAS 用 Syncthing 搭建多设备实时文件同步:手机电脑 NAS 自动互备实战NAS 数据备份 3-2-1 策略实战:rsync 本地快照 + rclone 加密同步对象存储NAS 搭建 Nginx Proxy Manager 反向代理中枢:统一证书、域名分发与内网服务安全暴露飞牛/群晖 NAS 搭建家庭下载中心:qBittorrent + Aria2 + Transmission 容器化部署实战飞牛/群晖 NAS 自建家庭音乐中心:Navidrome 部署、歌词刮削与多端无损串流NAS 搭建家庭电子书与文档中心:Calibre-Web 部署、Kindle 推送与全文检索飞牛/群晖 NAS 自建 Vaultwarden 密码库:容器部署、HTTPS 反代与加密备份实战飞牛群晖 NAS 搭建家庭监控系统:Frigate 接管 RTSP 摄像头做本地录像与智能回放飞牛/群晖 NAS 部署 Jellyfin 媒体中心:影片刮削、硬件转码与手机远程播放用 NAS 搭建家庭私有云相册:Immich 部署、手机备份与多端同步群晖/飞牛 NAS 远程访问实战:Tailscale 组网与反向代理安全配置NAS 快照实战:用 Btrfs 子卷快照挡住误删和勒索,5 分钟回滚NAS 异地访问怎么选:Tailscale 零配置组网与 WireGuard 自建隧道的实战对比用 Immich 把全家照片搬回 NAS:自建家庭相册的部署、备份与避坑在 NAS 上用 Docker 跑自建服务NAS 阵列与 3-2-1 备份策略
NAS 零信任远程访问实战:用 Cloudflare Tunnel 安全暴露内网服务 · 孙亮亮