
飞牛 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创建隧道
- 登录Cloudflare控制台,进入
Zero Trust → Network → Tunnels
- 点击
Create Tunnel
,选择Cloudflared
类型 - 输入隧道名称(例如
fnos-tunnel
),点击Create Tunnel
- 生成并记录
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. 配置域名绑定服务
- 返回Cloudflare控制台,进入
Zero Trust → Network → Tunnels
- 选择已创建的隧道,点击
Add a public hostname
- 配置如下:
- Hostname:输入子域名(例如
alist.yourdomain.com
) - Protocol:选择
HTTP/HTTPS
(根据实际服务协议选择) - Destination:填写本地服务地址(例如
localhost:5244
对应Alist服务)
- Hostname:输入子域名(例如
- 点击
Save
,等待状态变为Active
四、验证访问
在浏览器中输入配置的子域名(例如 https://alist.yourdomain.com
)。若显示飞牛NAS服务界面,说明配置成功。
五、注意事项
1. 安全与权限
- Token保护:Token是敏感信息,泄露可能导致服务被滥用
- 限制访问:可通过Cloudflare的
Workers
或WAF规则
限制访问IP范围
2. 网络模式要求
必须使用 network_mode: host
:若容器使用默认的桥接模式(bridge
),本地服务的端口可能无法正确映射
3. 域名解析问题
- DNS同步延迟:Cloudflare的DNS通常几分钟内生效,若无法访问,请等待或刷新DNS缓存
- HTTPS证书:Cloudflare会自动为子域名颁发免费SSL证书(需域名通过验证)
4. 多服务穿透
为每个服务配置独立子域名(例如 alist.yourdomain.com
和 xiaoya.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)的局限性。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Vortex·漩点
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果