将NAS服务安全地暴露到公网,是每个NAS用户都会思考的问题。直接开放端口容易被扫描探测,搭建VPN又需要额外的学习和配置成本。Cloudflare Tunnel和Tailscale的出现彻底改变了NAS远程访问的困境——前者通过Cloudflare全球网络隧道实现无需开放端口的公网访问,后者基于WireGuard协议搭建零信任企业级虚拟内网。本文将详细介绍这两种方案的实际部署方法,让您安全高效地远程访问NAS上的所有服务。

一、Cloudflare Tunnel部署指南:无需开放端口的安全公网访问
Cloudflare Tunnel(原名Argo Tunnel)的工作原理是创建一个从NAS到Cloudflare边缘网络的安全加密隧道。公网用户通过Cloudflare的全球网络访问NAS上的服务,所有流量在Cloudflare边缘节点与NAS之间通过Tunnel加密传输。由于Tunnel是出站连接(从NAS发起连接到Cloudflare),用户的NAS不需要在路由器上开放任何入站端口,从根本上杜绝了端口扫描和DDoS攻击的风险。
在群晖DSM上部署Cloudflare Tunnel可以通过Docker容器轻松完成。首先在Cloudflare Zero Trust控制面板中创建一个Tunnel,获得一个Tunnel Token(令牌)。然后拉取cloudflare/cloudflared镜像,创建容器时将Tunnel Token配置为环境变量TUNNEL_TOKEN。在"高级设置"中配置容器的重启策略为"始终",确保即使NAS重启后Tunnel也会自动恢复连接。创建完成后回到Cloudflare控制面板,在Public Hostname(公共主机名)选项卡中可以添加需要暴露的服务——比如将nas.yoozai.com指向NAS的本地IP和端口8096(Jellyfin),将files.yoozai.com指向本地IP和端口5001(DSM管理界面)。
在安全和性能之间取得平衡是配置的关键。Cloudflare Tunnel支持细粒度的访问控制策略——在Cloudflare Zero Trust控制面板中为每个应用设置规则,仅允许来自特定国家或特定IP段的访问请求。需要为家庭照片管理页面配置邮件验证码和一次性密码的双因素认证,防止未经授权的访问者仅仅通过知道URL就能访问。Cloudflare Tunnel还提供了流量缓存加速功能,对于静态资源(如Jellyfin的海报图片)可以启用Cloudflare的缓存策略降低NAS的带宽负载。带宽方面Cloudflare Tunnel免费版每月提供1GB的Tunnel流量配额,对于日常远程浏览照片和管理文件的场景完全够用;如果有大量视频串流需求,建议升级到付费版本。
二、Tailscale零信任网络搭建:基于WireGuard的端到端加密内网
Tailscale是一个基于WireGuard协议的零信任VPN平台,它将所有接入同一网络的设备(节点)组成一个安全的虚拟内网。与Cloudflare Tunnel不同,Tailscale更侧重于"网络"层面——所有接入Tailscale网络的设备都获得一个虚拟IP地址,可以像在同一个物理局域网中一样互相访问。这意味着您可以直接通过Tailscale虚拟IP访问NAS上的所有端口和服务,不需要为每个服务单独配置域名和端口转发。
在群晖DSM上安装Tailscale非常简单。打开套件中心搜索"Tailscale"即可找到官方套件,一键安装后启动套件并进行身份认证。使用Tailscale账号(可以用Google或GitHub账户登录)后NAS自动加入用户的Tailscale网络。在手机和电脑上也安装Tailscale客户端并登录同一账号,所有设备之间就建立起了基于WireGuard协议的安全加密连接。此时在手机上打开浏览器输入NAS的Tailscale虚拟IP地址(如100.x.x.x:5001),即可如同在局域网中一样访问DSM管理界面。所有流量端到端加密,中间经过的互联网节点无法窥探传输内容。
Tailscale最强大的特性之一是"子网路由"(Subnet Routing)功能。启用后Tailscale节点(NAS)会将自己所在的局域网IP段(如192.168.1.0/24)通告给Tailscale网络,其他Tailscale客户端可以直接通过局域网IP地址(而非Tailscale虚拟IP)访问NAS的同一局域网内的其他设备——比如路由器管理界面、支持网络唤醒的台式机、甚至打印机的Web管理界面。在Tailscale Web管理控制台的Admin Console中启用"Subnet Routing"并勾选"允许远程访问本地网络"即可。Tailscale的免费版支持最多3个用户和100台设备,对于家庭和小型办公环境完全够用。
三、混合方案实战:Cloudflare Tunnel + Tailscale的双保险远程访问架构
将Cloudflare Tunnel和Tailscale组合使用,可以发挥各自的长处构建更完善的安全访问架构。基本原则是:对外的Web服务(如Jellyfin媒体服务器、Nextcloud云盘)通过Cloudflare Tunnel暴露给公网访问,并由Cloudflare的WAF(Web应用防火墙)提供安全防护;对内管理类服务(如SSH终端、DSM管理界面、Docker管理面板)则通过Tailscale虚拟内网访问,不对外暴露任何管理端口。
实际部署时在群晖NAS的Docker中同时运行Cloudflare Tunnel和Tailscale。Cloudflare Tunnel负责代理Jellyfin(端口8096)和Nextcloud(端口8080),并配置Cloudflare的Access策略——对Nextcloud页面要求邮箱OTP验证,对Jellyfin页面要求微软或Google账号登录验证。Tailscale则保持后台运行,通过子网路由功能让所有家庭成员可以像在本地一样访问NAS文件。手机上安装Tailscale后通过文件管理器的SMB协议直接访问NAS共享文件夹,速度比通过Cloudflare Tunnel中转快得多。
这种混合架构的主要优势在于纵深防御。即使Cloudflare Tunnel端的某个服务被攻破,攻击者也仅限于访问该容器的服务空间,无法触及DSM管理界面、SSH端口和其他Docker容器。而且通过组策略为不同身份分配不同的访问权限——家庭成员通过Tailscale直接访问媒体文件,同事或朋友通过Cloudflare Tunnel访问特定的共享目录并配置访问密码。在安全性、便利性和灵活性三个维度上,Cloudflare Tunnel加Tailscale的混合方案是目前NAS远程访问的最佳实践。通过这一方案,您的NAS无论放置在何处,都能既安全又高效地为团队提供数据服务。


评论(0)