>

适用场景:NAS 在家里,人在外面(公司、咖啡厅、旅行),想安全访问 Jellyfin、Home Assistant、NPM、SSH、文件管理,绝不在公网开端口
> 三大方案对比:按「零配置程度、性能、适用场景」选一个即可,别全上(除非你是网络极客)


方案对比速查表

维度TailscaleWireGuard(自建)Cloudflare Tunnel
零配置⭐⭐⭐⭐⭐(装上登录即用)⭐⭐(需生成密钥、写配置、防火墙)⭐⭐⭐(需域名、CF 账号、cloudflared)
穿透能力NAT/防火墙全自动打洞(DERP 中继兜底)需公网 IP 或端口映射无需公网 IP,CF 边缘节点做入口
性能直连 P2P(本地网速),中继时 50 Mbps线速(内核态,无中继)经 CF 边缘,延迟 +20-50ms,带宽受限于 CF 免费额度
访问方式任意设备装客户端 → 直接访问 http://nas.tailnet.ts.net:端口客户端导入配置 → 访问内网 IP浏览器直达 https://nas.yourdomain.com(无需客户端)
适合人群新手首选、多设备、跨平台、想最省事有公网 IP、想完全自控、追求极致性能已有域名、想给家人/朋友无客户端访问 Web 服务
成本免费版 100 设备、1 用户、无流量限制免费(自建 VPS/云服务器另算)免费(CF 免费额度足够家庭用量)
对非 Web 服务(SSH/SMB/数据库)✅ 原生支持✅ 原生支持❌ 仅 HTTP/HTTPS(需配合 WARP 或 CF Zero Trust)

方案 A:Tailscale(最推荐新手上手)

1. NAS 端安装(一条命令)

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
# 输出的登录链接在浏览器打开,用 GitHub / Google / Microsoft 账号登录
>

完成后 NAS 获得一个 100.x.y.z 尾网 IP,且自动获得 nas-name.tailnet.ts.net MagicDNS 域名。

2. 其它设备装客户端

  • Windows/macOS/Linux:官网下载安装包 → 登录同一账号
  • iOS/Android:App Store / Play Store 搜「Tailscale」
  • 路由器(OpenWrt/梅林/Keenetic):装 tailscale 包 → 登录 → 开启子网路由,全网设备直达 NAS

3. 访问 NAS 服务(零额外配置)

服务访问地址(示例)
Jellyfinhttp://nas.tailnet.ts.net:8096
NPM 管理面板http://nas.tailnet.ts.net:81
qBittorrenthttp://nas.tailnet.ts.net:8080
Alisthttp://nas.tailnet.ts.net:5244
Home Assistanthttp://nas.tailnet.ts.net:8123
SSHssh [email protected]
SMB\\nas.tailnet.ts.net\media(Windows 资源管理器直接输)
>

MagicDNS 自动解析,不用记 IP。想用自定义域名?Tailscale 免费版支持 *.ts.net 子域,Pro 版支持自带域名。

4. 进阶:ACL 访问控制(按需)

登录 https://login.tailscale.com/admin/acls → 编辑 JSON:

{
  "groups": {
    "group:family": ["[email protected]", "[email protected]"],
    "group:admin": ["[email protected]"]
  },
  "acls": [
    {"action": "accept", "src": ["group:family"], "dst": ["nas.tailnet.ts.net:8096","nas.tailnet.ts.net:8123"]},
    {"action": "accept", "src": ["group:admin"], "dst": ["nas.tailnet.ts.net:*"]},
    {"action": "accept", "src": ["*"], "dst": ["nas.tailnet.ts.net:22"]}  // SSH 仅密钥登录
  ]
}
>

家人只能看 Jellyfin/HA,你拥有全权限,SSH 仅密钥。


方案 B:WireGuard(自建、极致性能、完全自控)

>

适合:手里有闲置 VPS(或云服务器)做「中转/出口」,想完全掌握密钥、不依赖第三方。

1. VPS 端(作为「弹出点」/ 入口)

# VPS 安装
apt update && apt install -y wireguard iptables
# 生成密钥对
wg genkey | tee server_private.key | wg pubkey > server_public.key
wg genkey | tee client_private.key | wg pubkey > client_public.key

/etc/wireguard/wg0.conf(VPS):

[Interface]
Address = 10.10.10.1/24
PrivateKey = <server_private.key>
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]  # NAS
PublicKey = <nas_public.key>
AllowedIPs = 10.10.10.2/32

[Peer]  # 你的手机/电脑
PublicKey = <client_public.key>
AllowedIPs = 10.10.10.3/32
systemctl enable --now wg-quick@wg0

2. NAS 端(作为 Peer)

apt install -y wireguard
# 生成 NAS 密钥对
wg genkey | tee nas_private.key | wg pubkey > nas_public.key

/etc/wireguard/wg0.conf(NAS):

[Interface]
Address = 10.10.10.2/24
PrivateKey = <nas_private.key>
# 可选:把 NAS 当网关,让其它设备经 NAS 出去
# PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

[Peer]  # VPS
PublicKey = <server_public.key>
Endpoint = <VPS公网IP>:51820
AllowedIPs = 10.10.10.0/24  # 只走尾网流量
PersistentKeepalive = 25    # 穿 NAT 必加
systemctl enable --now wg-quick@wg0

3. 客户端(手机/电脑)

导入配置(含 PrivateKey、Address=10.10.10.3/24、Peer=VPS公钥+Endpoint、AllowedIPs=10.10.10.0/24)。

4. 访问 NAS 服务

服务访问地址
Jellyfinhttp://10.10.10.2:8096
SSHssh [email protected]
SMB\\10.10.10.2\media
>

优点:全内核态、线速、无中间商。缺点:需公网 IP VPS、手动管理密钥、跨平台客户端配置稍繁。


方案 C:Cloudflare Tunnel(零端口、给非技术家人用 Web 服务)

>

适合:已有域名、想让家人不用装任何客户端直接在浏览器打开 https://jellyfin.yourdomain.com、https://ha.yourdomain.com。

1. 前置条件

  • 域名托管在 Cloudflare(NS 指向 CF)
  • Cloudflare 账号(免费即可)

2. NAS 端安装 cloudflared

# Debian/Ubuntu
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cf.deb
sudo dpkg -i cf.deb
# 登录授权
cloudflared tunnel login
# 选择域名所在账号,授权完成会生成 cert.pem

3. 创建隧道 & 配置入口

# 创建隧道(名字随意)
cloudflared tunnel create nas-home
# 输出:Tunnel ID: xxxx-yyyy-zzzz  + 生成 credentials 文件

# 写配置文件 /etc/cloudflared/config.yml
tunnel: xxxx-yyyy-zzzz
credentials-file: /root/.cloudflared/xxxx-yyyy-zzzz.json

ingress:
  - hostname: jellyfin.yourdomain.com
    service: http://localhost:8096
  - hostname: ha.yourdomain.com
    service: http://localhost:8123
  - hostname: npm.yourdomain.com
    service: http://localhost:81
  - hostname: alist.yourdomain.com
    service: http://localhost:5244
  - service: http_status:404  # 兜底

4. 跑通 & 做系统服务

# 测试
cloudflared tunnel run nas-home
# 浏览器访问 jellyfin.yourdomain.com → 应自动签发 Let's Encrypt 证书(CF 托管 DNS 时)

# 安装为服务
sudo cloudflared service install
sudo systemctl enable --now cloudflared

4. 访问控制(CF Zero Trust,免费 50 座位)

登录 https://one.dash.cloudflare.com → Access → Applications → Add an application → Self-hosted:

  • Application Domain: jellyfin.yourdomain.com
  • Policy: Emails ending in @yourdomain.com / Specific emails: [email protected], [email protected] / MFA: TOTP / WebAuthn
  • 保存 → 家人打开链接先登录/验证,再进 Jellyfin,零客户端、零端口暴露。

选哪个?(决策树)

你有域名吗?
├─ 是 → 想让家人「浏览器直达」不用装客户端?
│       ├─ 是 → **Cloudflare Tunnel**(Web 服务) + **Tailscale**(SSH/SMB/管理)
│       └─ 否 → **Tailscale** 全搞定
└─ 否 → 有公网 IP VPS / 云服务器?
        ├─ 是 → 想完全自控、极致性能?→ **WireGuard**
        └─ 否 → **Tailscale**(免费、免公网 IP、免域名、全平台)

组合推荐(生产环境最稳)

服务类型推荐入口备选
Web 面板(Jellyfin/NPM/Alist/HA)Cloudflare Tunnel + Access(家人零门槛)Tailscale MagicDNS(自己用)
SSH / SMB / 数据库 / 非 HTTPTailscale(加密、认证、审计全有)WireGuard(若已有 VPS)
管理员应急Tailscale(手机装客户端随时进)SSH over Tailscale

一句话落地:

  • NAS 装 Tailscale → 解决 SSH、SMB、管理、个人访问
  • 有域名 → 再装 Cloudflared → 给家人分发 https://jellyfin.yourdomain.com 等链接
  • 追求极致/已有 VPS → 再加 WireGuard 作为备用/高性能通道

常见坑 & 一句话解决

现象原因修正
Tailscale 连不上、显示 relay双方 NAT 类型对不上、DERP 延迟高确保 NAS 有 IPv6 或 UPnP;路由器开启 Tailscale 子网路由
CF Tunnel 证书报错DNS 没托管在 CF / 域名锁定域名 NS 必须指向 CF;cloudflared tunnel login 重新授权
WireGuard 握手成功但 Ping 不通AllowedIPs 写错 / 防火墙拦截双端 AllowedIPs 必须包含对端 Tunnel IP;iptables -A FORWARD -i wg0 -j ACCEPT
家人打开 CF 域名进不去Access 策略没匹配上检查邮箱大小写、策略顺序、浏览器隐私模式清 Cookie 重试

一键部署清单(按需复制)

# ===== Tailscale(必装)=====
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

# ===== Cloudflare Tunnel(有域名才装)=====
# 1. cloudflared login
# 2. cloudflared tunnel create nas-home
# 3. 写 /etc/cloudflared/config.yml(见上文)
# 4. sudo cloudflared service install && sudo systemctl enable --now cloudflared

# ===== WireGuard(有 VPS 才装)=====
# VPS 端、NAS 端、客户端三份配置对应好密钥、端口、AllowedIPs
# systemctl enable --now wg-quick@wg0
— 感谢阅读 —

一起交流

分享你的思考,让讨论更进一步。