飞牛NAS + Cloudflare 内网穿透配置指南

飞牛NAS + Cloudflare 内网穿透配置指南

一、背景与目标

飞牛NAS(fnOS)作为私有云存储解决方案,通常部署在局域网内。若需通过公网访问NAS服务(如Alist、小雅等),需解决内网穿透问题。Cloudflare Tunnel(原Cloudflare Argo Tunnel)提供了一种无需公网IP的穿透方案,通过Cloudflare的全球边缘节点实现安全的外网访问。

二、准备工作

  • 硬件环境:飞牛NAS设备(已安装fnOS)
  • 软件环境
    • Cloudflare账户(注册地址
    • 域名(可免费或付费获取,推荐使用Cloudflare托管域名)
    • 飞牛NAS已启用Docker功能
  • 网络要求:飞牛NAS需能访问Cloudflare的API(端口443)

三、操作步骤

1. 在Cloudflare创建隧道

  1. 登录Cloudflare控制台,进入 Zero Trust → Network → Tunnels
  2. 点击 Create Tunnel,选择 Cloudflared 类型
  3. 输入隧道名称(例如 fnos-tunnel),点击 Create Tunnel
  4. 生成并记录 Token(用于后续配置)

2. 在飞牛NAS部署Cloudflared

创建以下 docker-compose.yml 文件:

version: '3.8' services: cloudflared: image: cloudflare/cloudflared:latest container_name: cloudflared restart: always network_mode: host command: tunnel --no-autoupdate run --token YOUR_CLOUDFLARE_TOKEN

关键参数说明:

  • network_mode: host:确保容器使用宿主机的网络栈,避免端口冲突
  • YOUR_CLOUDFLARE_TOKEN:替换为上一步生成的Token

3. 启动容器

在终端执行以下命令:

docker-compose up -d

如果提示 docker-compose 未安装,请先通过飞牛NAS的Docker管理界面启用Docker功能

4. 配置域名绑定服务

  1. 返回Cloudflare控制台,进入 Zero Trust → Network → Tunnels
  2. 选择已创建的隧道,点击 Add a public hostname
  3. 配置如下:
    • Hostname:输入子域名(例如 alist.yourdomain.com
    • Protocol:选择 HTTP/HTTPS(根据实际服务协议选择)
    • Destination:填写本地服务地址(例如 localhost:5244 对应Alist服务)
  4. 点击 Save,等待状态变为 Active

四、验证访问

在浏览器中输入配置的子域名(例如 https://alist.yourdomain.com)。若显示飞牛NAS服务界面,说明配置成功。

五、注意事项

1. 安全与权限

  • Token保护:Token是敏感信息,泄露可能导致服务被滥用
  • 限制访问:可通过Cloudflare的 WorkersWAF规则 限制访问IP范围

2. 网络模式要求

必须使用 network_mode: host:若容器使用默认的桥接模式(bridge),本地服务的端口可能无法正确映射

3. 域名解析问题

  • DNS同步延迟:Cloudflare的DNS通常几分钟内生效,若无法访问,请等待或刷新DNS缓存
  • HTTPS证书:Cloudflare会自动为子域名颁发免费SSL证书(需域名通过验证)

4. 多服务穿透

为每个服务配置独立子域名(例如 alist.yourdomain.comxiaoya.yourdomain.com),避免端口冲突

六、常见问题排查

问题现象 解决方案
容器启动失败 检查 network_mode: host 是否配置,Token是否正确
子域名无法解析 确保域名已在Cloudflare中绑定,并等待DNS生效
服务无法访问 检查本地服务是否运行(如Alist服务是否启动)
HTTPS证书未生效 确保子域名通过Cloudflare的CNAME记录解析,并等待证书自动颁发

七、进阶配置建议

  • 自动更新Cloudflared:移除 --no-autoupdate 参数以启用自动版本更新
  • 日志监控:通过以下命令查看容器日志:
    docker logs cloudflared
  • 高可用性:在多台设备部署Cloudflared,通过Cloudflare负载均衡实现故障转移

八、总结

通过Cloudflare Tunnel,飞牛NAS可无需公网IP即可安全地暴露局域网服务到公网。此方案结合了Cloudflare的全球节点与加密传输特性,既保证了访问速度,又避免了传统内网穿透工具(如Ngrok)的局限性。