
唔開 port 連返屋企 NAS:Tailscale、Cloudflare、NetBird 點揀
XDA 作者用 NetBird 自架 VPS 避開 CGNAT,各方案取捨唔同
XDA 呢個案:零 port 背後其實係入口設計
XDA 作者 Ty Sherback 嘅情境好貼地:出門去外父外母小屋,仍想連返屋企 homelab。佢要用 Proxmox 主機、幾個 LXC、Samba 文件 share 同 Immich 相簿。以前做法通常係 port forwarding、dynamic DNS、反向代理;但 ISP 將佢放咗喺 CGNAT 後,屋企 router 已經冇公開 IPv4 可以畀外面打入。佢最後租一部平 VPS,自架 NetBird mesh VPN,屋企 server 全部主動連出去,router 入站 port 一個都唔開。
講真,呢類 setup 對香港細屋企好有現實味:一部 mini PC 加幾隻 SSD,放相、放文件、跑 Home Assistant、Proxmox dashboard,出街用手機同 notebook 想拎返資料。問題係好多教學一開口就叫你開 80、443、5000、32400,跟住加個反向代理就算。咁做未必即刻出事,但你其實係長期掛住一個入口喺網上,等 bot、弱密碼、舊版 app 同 CVE 一齊試運氣。

圖片:Cloudflare
四類方案,差別喺入口畀邊個守
最私密係 mesh VPN。NetBird 同 Tailscale 呢個方向,係先將你手上裝置拉入一個加密 overlay。手機、notebook、NAS 或 Proxmox host 有自己內網地址,冇加入嘅人掃唔到。Tailscale 有 subnet router;NetBird 有 routing peer / Networks;意思都係一部內網機器代其他唔識裝 client 嘅裝置轉流量,所以 Samba LXC、printer、NAS web UI 可以留喺 LAN。代價係每部外出裝置要裝 client,同帳戶、ACL、裝置鎖屏要管好。
Cloudflare Tunnel 走另一條路。屋企跑 cloudflared,佢主動連去 Cloudflare,再由 Cloudflare 接外面請求;官方文件講明唔使公開 routable IP,亦唔使 router 入站 port。呢招對 web app 好順,例如 Immich、Nextcloud、Vaultwarden 之類,再加 Cloudflare Access 用 email OTP、SSO 或群組政策,屋企人冇 VPN client 都開到。取捨係流量同登入守門交咗畀 Cloudflare 呢層,私人相簿同 admin panel 要諗清楚你信唔信呢個模型。
傳統 WireGuard/OpenVPN 放喺 router 或 NAS,概念最直:你自己開一個 VPN port,連入去就似返到屋企 LAN。好處係控制權高,唔一定要第三方帳戶;壞處係要公開 IP 或可以 port forward,CGNAT、雙 NAT、ISP router 權限一卡住就好煩。反向代理就再窄啲:Caddy、Nginx、Traefik 幫 web app 分 hostname、做 HTTPS、加 auth,但佢本身唔會神奇消失暴露面;冇 VPN 或 Tunnel 包住,80/443 依然係向網上開門。
XDA 作者點解揀 NetBird
最值得留意係 XDA 作者揀咗 NetBird,冇揀 Tailscale。原因同佢要求有關:佢想自架 control plane 喺 VPS,上面放 management、signal、relay/STUN,家中 peer 同外出 peer 都主動出去。NetBird 官方文件亦講到 routing peer 可以代冇裝 client 嘅內網裝置轉流量,Reverse Proxy 又可以公開內部服務,配 TLS、SSO/password/PIN,仲有 NetBird-Only 模式收返到 mesh 入面。呢套玩法適合想掌控多啲、肯維護 VPS 嘅 homelab 人。
Tailscale 仍然係多數家用最易上手嘅答案。裝 app、登入、開 MagicDNS,通常十分鐘內就連到 Proxmox 或 NAS;要連整個 LAN,就用 subnet router。真正要補功課係 ACL:Tailscale 文件講 ACL/grants 係 deny-by-default,但新手好多時沿用 allow-all,變咗每部已登入裝置都太有權。家用都應該拆清楚:手機只入 Immich 同文件 share,notebook 先入 Proxmox dashboard,外借帳戶唔好見到 admin 介面。
安全重點:冇開 port 唔等於冇門
呢度要潑少少冷水:冇開 router port 只係屋企 firewall 少咗一個固定入口,唔代表風險清零。你將入口搬去身份帳戶、client 裝置、VPS、Cloudflare dashboard 或 Tailscale/NetBird control plane。手機唔見咗、Google/Microsoft 帳戶俾人入咗、ACL 寫錯、VPS 冇 update,後果一樣可以好大。最低限度要開 2FA、裝置要有密碼同生物認證、唔用嘅 peer 即刻移除,admin panel 盡量只畀自己常用機入。
另一個常見錯位係將 NAS 管理介面、SMB、資料庫 dashboard 直接放去公開 hostname,以為有 HTTPS 就夠。HTTPS 只保護傳輸,唔幫你判斷邊個應該睇到服務。相簿分享可以考慮 Cloudflare Access 或 NetBird Reverse Proxy 加登入;Samba、Proxmox、router admin 呢啲最好留喺 mesh VPN 入面。想畀家人睇相,可以開 Immich 分享或獨立帳戶,唔好順手畀埋整個 LAN。
家用點揀:先問你要私用定分享
如果只係自己同自己幾部機用,Tailscale 或 NetBird 呢類 mesh VPN 最乾淨。想快、少維護、唔介意用 vendor control plane,Tailscale 好合理;想自架、想研究 routing peer、想 VPS 掌控多啲,NetBird 會好玩,但要接受維護成本。用開 Proxmox、Immich、Samba 嘅人,呢條線最似出街仍喺屋企 LAN,少啲公開 web app 嘅煩惱。
如果要畀屋企人、同事或客戶用瀏覽器打開某個 web app,Cloudflare Tunnel 會方便過叫人人裝 VPN client。佢啱放 Nextcloud、Immich web、內部 dashboard,但要配 Access policy、指定 email/domain/group,唔好開匿名通行。純反向代理只適合放喺內層做路由同 TLS;單獨拎出街,除非你清楚 patch、auth、rate limit、backup 點做,否則好易變成長期公開入口。
我會咁排優先次序:私人服務先行 mesh VPN;要用瀏覽器分享先諗 Tunnel / Access;傳統 router VPN 只留畀有公開 IP、熟 firewall 同願意自己守 port 嘅人。XDA 呢個案好睇,因為佢提醒咗一件家用 NAS 成日忽略嘅事:遠端存取要逐個服務設計,Proxmox、Samba、Immich 唔應該共用同一個公開入口。
參考來源
- XDA Developers — I reach every service on my home server from anywhere without opening a single port — original report
- NetBird Docs: Reverse Proxy — NetBird 官方講 Reverse Proxy 點公開內部服務、TLS、登入同 NetBird-Only。
- NetBird Docs: Networks — NetBird 官方講 routing peer 點幫冇 client 嘅 LAN 裝置轉流量。
- NetBird Docs: Self-Hosting Quickstart Guide — 核對自架 NetBird 會牽涉 management、signal、relay 同 STUN 等組件。
- Tailscale Docs: Subnet routers — Tailscale 官方講 subnet router 點將 tailnet 延伸到冇裝 client 嘅裝置。
- Tailscale Docs: Manage permissions using ACLs — 核對 Tailscale ACL/grants 同 deny-by-default 嘅安全模型。
- Cloudflare One Docs: Cloudflare Tunnel — Cloudflare 官方講 Tunnel 係靠 cloudflared 主動連出去,冇公開 IP 都用到。
- Cloudflare One Docs: Access policies — 核對 Cloudflare Access 點用 policy 決定邊個可以入 app。
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







