利用 VLAN 加固家庭實驗室:完整的家庭安全指南

最後更新: 25月2026
  • 將家庭網路劃分為 VLAN,可以限制橫向移動、隔離物聯網設備和訪客,並按網段應用特定的防火牆策略。
  • 配置良好的防火牆,具備預設拒絕規則、集中式 DNS 和零信任遠端訪問,可以大幅減少家庭實驗室的攻擊面。
  • 在這個安全的網路基礎上整合 Proxmox、容器、k3s 和 Pi-hole 或 Home Assistant 等服務,就能將您的家庭實驗室變成一個真正的專業基礎設施實驗室。

使用 VLAN 實現家庭實驗室安全

如果你的家庭實驗室裡有一些小玩意兒(NAS、迷你電腦、樹莓派、攝影機、智慧家庭設備等等),而且所有設備都連在同一個網路上,那麼從數字角度來說,你的家就成了一個容易遭受橫向移動和各種攻擊的開放區域。你不需要是一家大公司,就有人會掃描你的連接埠、破解你的弱密碼,或是讓你的物聯網設備暴露在安全漏洞之下。

本文旨在引導您逐步建造一個包含 VLAN、防火牆和強大安全防護措施的家庭網路。這將確保您的家庭服務運作順暢,同時顯著提升控制力,減少意外問題,並大幅縮小攻擊面。我們將融合多種方案的優勢:pfSense/OPNsense、UniFi、零信任(Tailscale、Cloudflare Tunnel)、Proxmox、輕量級 Kubernetes、Pi-hole、Home Assistant 等等。

為什麼你的家庭實驗室現在需要分段和加固

在典型的「扁平」網路中,例如所有設備都擠在 192.168.1.0/24 網段內,任何設備都能看到其他所有設備,並且在許多情況下還能與其他設備通訊。如果一個燈泡、電視或「智慧型」插座被攻破,攻擊者就可以嘗試跳到你的NAS、個人電腦、Proxmox 虛擬機器管理程式或儲存備份的伺服器。攻擊並不需要多麼複雜的技術;一個無人修復的韌體漏洞就足以奏效。

此外,將所有裝置混放在同一網路中會導致發現流量(廣播、群播、mDNS 等)失控。這會產生大量噪聲,使故障排除更加複雜,而且還會洩露過多關於您擁有的設備、使用的連接埠以及在區域網路上運行的服務的資訊。 VLAN 分段正是為了解決這個問題:根據功能和信任等級隔離設備。

把你的家庭實驗室想像成一個小型資料中心:它包含關鍵服務(DNS、VPN、儲存)、公共服務(反向代理、透過隧道暴露的應用程式)、不可靠的設備(物聯網設備、訪客設備、兒童遊戲機)以及你的個人設備。每個設備組都應該位於各自的「通道」中,並且只能透過非常具體且合理的防火牆規則與其他設備群組通訊。

家庭實驗室中的 VLAN:你會實際用到的概念

VLAN 並非什麼神奇的東西:它只是二層網路中的一個獨立廣播域。人們常常誤以為一個 VLAN 等同於一個 IP 子網,但實際上它們是不同的概念。 VLAN 定義了乙太網路封包的分離方式;子網路則定義了三層網路的流量路由方式。對您而言,重要的是同一 VLAN 上的裝置不會看到來自其他 VLAN 的廣播,它們只能透過路由器或防火牆進行通訊。

VLAN 隔離是透過交換器插入到封包中的 802.1Q 標籤(VLAN ID,範圍從 1 到 4095)來實現的。連接埠可以以兩種基本方式運作:作為接入端口,流量以未標記的形式進出,並且所有流量都屬於同一個 VLAN;或作為乾線端口,單根網路線同時承載多個已標記的 VLAN 到路由器、其他交換器、接入點或虛擬機器管理程式。

眾所周知的PVID(本機VLAN識別碼)定義了進入連接埠的未標記流量被指派到哪個VLAN。雖然每個廠商在其Web介面中顯示PVID的方式可能有所不同(例如PVID、接入VLAN、本地VLAN等),但其基本原理是相同的:交換器決定未標記幀屬於哪個VLAN,並在通過接入端口發送出去時,通常會移除VLAN標籤,這樣終端設備看到的就是“普通以太網”,而無需了解VLAN的任何信息。

在典型的家庭實驗室配置中,防火牆/路由器(例如 pfSense、OPNsense、UniFi、OpenWrt 等)和主交換器之間至少會有一條鏈路,然後透過該鏈路連接 PC、電視、遊戲機、攝影機等裝置的存取連接埠。此外,如果您使用 Proxmox 或虛擬化主機,通常會設定一條到虛擬機器管理程式的連結,並讓虛擬機器或容器直接使用類似 vmbr0 的 VLAN 橋接器來標記流量。

適用於現代家庭實驗室的實用 VLAN 設計

在你慌忙打開交換器面板之前,先拿張紙(或用文字編輯器)把你需要的網路及其用途列出來。一個合理的網路拓撲結構圖(涵蓋了許多實際配置)可能如下所示,你可以根據自己的喜好調整 IP 位址範圍和 VLAN 編號:

  • “預設”或家庭網絡這裡存放著家庭成員的個人裝置(手機、筆記型電腦、桌上型電腦)。這是「受信任」的網絡,通常會擁有相對寬鬆的互聯網存取權限。
  • 訪客VLAN專為訪客設計。僅提供網路接入,無法存取其他私人區域,如果接入點允許,用戶端之間將相互隔離。
  • 物聯網 VLAN適用於燈泡、插座、揚聲器、智慧電視、恆溫器、掃地機器人等。進出車輛數量非常有限,出車車輛也受到控制。
  • VLAN 家庭實驗室/服務這裡是您的虛擬機器、容器、NAS、Home Assistant、資料庫、反向代理程式等所在的位置。它通常會與 IoT 和預設系統通信,但通信方式受到嚴格控制。
  • VLAN“安全”或VPN:所有到網際網路的流量都透過永久 VPN 隧道(例如 Proton VPN 或類似程式)傳輸,而無需裝置安裝用戶端。
  • DMZ:對於可能暴露的服務(反向代理、Web 伺服器、VPN 等),建議將其視為「半可信」服務,並且不要與內部網路的其他部分直接連接。

組織私有位址的一種清晰方法是為每個 VLAN 使用類似 10.10.X.0/24 的位址範圍,並維護一個包含位址範圍、名稱和用途的電子表格。例如:10.10.10.0/24 默認,10.10.20.0/24 物聯網,10.10.30.0/24 訪客,10.10.40.0/24 家庭實驗室,10.10.50.0/24 安全。這將使您的防火牆規則和 DHCP 位址保留設定更容易維護。

  行動網路運作原理:蜂窩技術完整指南

如果您使用 UniFi 或類似解決方案,通常會將每個 VLAN 對應到控制器上的一個網絡,並將每個網路連結到特定的 SSID。這樣,當您選擇「家庭」、「物聯網」、「訪客」或「VPN」Wi-Fi 網路時,裝置會自動進入正確的 VLAN,並繼承您為該網段定義的防火牆和存取策略。

選擇用於管理 VLAN 和路由的硬體和軟體

至於交換機,只要它支援 802.1Q 並且允許你設定 VLAN 標記、Trunk 和 PVID,就可以了。最大的差別在於設備是只執行二層交換,還是也能以線速處理三層路由。許多「經濟型」交換器可以高速標記和轉送幀,但當你要求它們在 VLAN 之間路由流量時,它們會將路由任務卸載到 CPU 上,吞吐量就會下降到數百 Mbps。

如果想要簡化配置,家庭實驗室中最常見的做法是將 VLAN 間路由交給主防火牆/路由器(例如 pfSense、OPNsense、UniFi 安全閘道、Dream Machine、運行在效能良好的路由器上的 OpenWrt 等),而僅使用交換器進行二層通訊。如果內部流量非常大(例如儲存陣列之間的資料複製、虛擬化叢集、大型備份),則配備硬體路由卸載功能的三層交換器可能值得考慮,但對於大多數家庭用戶來說,這並非必要。

就軟體而言,主要有三種發展路徑:

  • 打開Wrt en 普通路由器 首先,它能夠標記連接埠、建立多個網路並應用基本的防火牆規則。
  • pfSense 或 OPNSense 在 x86 機器(裸機或虛擬機器)上,如果您需要進階規則、GeoIP、IPS/IDS、強大的 VPN、使用 CARP 實現高可用性等功能。
  • UNIFI (Dream Machine、Dream Router 等)如果您喜歡由同一控制器管理 AP 和交換器的整合環境,並且學習曲線相對平緩,則可以考慮這些產品。

對於虛擬機器管理程式而言,Proxmox 在複雜網路中表現出色:只需建立與實體網卡關聯的網橋(例如,vmbr0 連接到 enp1s0),將該交換器連接埠指定為乾線端口,然後讓每個虛擬機器或容器使用所需的 VLAN ID 標記該連接埠即可。這樣,單一伺服器就可以同時屬於多個 VLAN,例如,它可以作為家庭實驗室服務的主機,這些服務可以從預設 VLAN 和 IoT VLAN 訪問,而無需在交換器上進行任何複雜的設定。

從理論到實務:創建和測試VLAN

設計方案確定後,您需要在交換器上為每個 VLAN 定義一個虛擬 ID (VID) 和一個描述性名稱。然後,將連接路由器/防火牆、其他交換器和 Proxmox 的連接埠指定為乾線端口,允許所需的 VLAN 通過。在這些連接埠上,最好避免兩端使用不同的本機 VLAN,以防止未標記流量洩漏或出現異常行為。

連接「啞」裝置(例如電視、遊戲機、不支援 VLAN 的 PC、攝影機)的連接埠應指定為存取埠:使用一個單獨的、未標記的 VLAN,並指派對應的 PVID。這樣,該裝置將始終連接到您選擇的網絡,防止因配置錯誤而意外連接到其他網路。

在防火牆/路由器上,您需要為透過連接到交換器的網路卡的每個標籤建立一個邏輯介面。例如,pfSense 和 OPNsense 允許您在實體網卡上建立 VLAN 接口,並為每個介面分配 IP 位址、DHCP 位址範圍、DNS 伺服器、描述,以及最重要的——各自獨立的防火牆規則。這些基於介面的規則是實現隔離的關鍵。

配置完成後,就可以進行測試了:將筆記型電腦連接到 IoT 接入端口,查看其獲取的 IP 位址,檢查其訪問的網關和 DNS 伺服器,並驗證其是否無法 ping 通預設子網或家庭實驗室子網,但能夠解析公共域名並訪問互聯網(如果需要)。對訪客網路、家庭實驗室網路和安全網路重複類似的測試,直到確認每個網路都運作正常。

防火牆和阻止橫向移動的規則

最有效的基本方法是預設拒絕所有流量,只允許必要的流量。也就是說,在每個 VLAN 中,建立一個初始規則,允許「已建立/相關」流量(允許回應從內部發起的連線),然後拒絕其他私有網路(RFC1918 類型)的流量,除非有正當理由。

一種方便的方法是建立一個包含所有私人位址區塊的 IP 位址群組(例如,192.168.0.0/16、10.0.0.0/8、172.16.0.0/12),並在規則中引用它。這樣,一條阻止「IoT → 私人網路」的規則就能立即阻止燈泡和其他設備與你的 NAS 或筆記型電腦通信,只允許它們訪問互聯網,並在需要時訪問特定的家庭實驗室服務。

在預設網路中,您可以允許「區域網路到任何位置」(網際網路 + 其他 VLAN),但最好繼續限制對 DMZ 或某些敏感伺服器的存取。而在訪客網路中,通常的做法是阻止所有對私人位址範圍的訪問,僅允許訪問互聯網。如果接入點支援用戶端隔離,請啟用此功能,以確保訪客的行動裝置之間互不可見。

對於家庭實驗室和物聯網之間的關係,典型的模式是允許單一主機(例如,Home Assistant 容器或虛擬機)透過特定連接埠(API 連接埠、控制連接埠)存取某些物聯網設備,但反之則不行。這可以透過一條允許規則來實現,例如“HomelabHost → IP_IoT:連接埠”,之後再對家庭實驗室和預設設備進行通用的物聯網流量屏蔽,但已建立的流量除外。

讓多播、mDNS 等技術不再是惡夢

一旦開始隔離網絡,您就會發現像 AirPlay、Chromecast 或某些印表機之類的設備「消失」了。這不是 bug:許多設備發現機制使用廣播或組播,根據設計,它們不會在不同 VLAN 之間跳躍。為了保持這些設備正常運作,您需要選擇性地允許哪些發現流量通過。

  電信中的業者是什麼?

通常的做法是在交換器上啟用 IGMP Snooping,將群播限制在只有相關客戶端才有流量的連接埠上。然後,在路由器/控制器上,啟用mDNS/Bonjour 中繼或等效服務,並明確指定要在哪些 VLAN 之間轉送通告(例如,在 Default 和 IoT 之間,或在 Default 和 Homelab 之間)。

在 UniFi 中,您可能還需要建立 LAN-IN 規則,允許 mDNS 使用指定的連接埠和流量類型,或調整每個 SSID 的多重播送設定檔。最好謹慎操作:僅在實際需要連接的網段之間啟用中繼,並驗證是否存在不必要的資訊在您想要隔離的網路之間洩漏。

有些設備,例如 Sonos,對 VLAN 的支援並不理想,即使正確配置了中繼,也可能出現許多問題。許多用戶最終選擇將它們留在預設網路(或專用多媒體 VLAN)上,接受這部分網路無法像配置好的 VLAN 那樣進行嚴格隔離,但這樣一來,所有設備都能正常工作,而無需費力地修改廠商的韌體。

安全管理:多因素身份驗證 (MFA)、使用金鑰的 SSH 和零信任。

您的防火牆、Proxmox 主機、NAS 設備和管理服務是通往成功的關鍵。將 root 使用者權限設定為可以從任何地方存取的簡單密碼是不可接受的。明智的做法是為防火牆的 Web 管理面板建立一個專用的管理員帳戶,停用 root 使用者的直接訪問,並始終啟用雙重認證(例如,OPNsense 中的 TOTP)。

此外,最好將這些管理控制台的存取權限限制在受信任裝置 VLAN 內的特定 IP 位址或子網路(例如,您的主桌上型電腦或筆記型電腦)。這樣,即使有人設法入侵其他網路或攻破了物聯網設備,他們也無法輕易存取防火牆面板或虛擬機器管理程式的管理介面。

對於透過 SSH 存取伺服器和虛擬機,最好完全停用密碼驗證,僅使用公鑰。您還可以更進一步,使用 Duo 等解決方案實施雙重認證:即使有人竊取了您的私鑰,登入嘗試也會在您的行動裝置上產生授權請求,如果您不授權,連線將被拒絕。

對於遠端訪問,訊息很明確:停止在路由器上直接開放連接埠(80、443、22 等)。相反,請使用零信任解決方案,例如 Tailscale(基於 WireGuard 的網狀 VPN)、Cloudflare Tunnel 或 Twingate。這些工具可讓您以經過驗證和加密的方式公開內部服務,而無需在網際網路上發佈您的 IP 位址或連接埠。您的 Web 應用程式、儀表板和 SSH 連線只有在經過驗證並採用嚴格的存取策略後才能存取。

加固容器、系統和服務

容器會給人一種虛假的安全感:它們的確是隔離的,但如果你以特權模式運行所有程序,到處共享寫入卷,並且使用不再維護的鏡像,最終你會發現自己和直接在主機上安裝服務一樣容易受到攻擊。關鍵在於使用官方或信譽良好的鏡像,定期更新,除非在非常特殊的情況下,否則避免使用 `privileged` 標誌。

盡可能為靜態資料掛載只讀卷,分離資料配置,並將容器功能限制在最低限度。檢查 Docker 套接字權限,不要將 Portainer 等敏感面板直接暴露在互聯網上;將它們置於具有額外身份驗證的安全反向代理之後,或使用 Tailscale/Cloudflare Tunnel 進行保護。

對於基礎系統(樹莓派、迷你電腦、Linux 虛擬機器),基本的安全防護措施至關重要:更改預設密碼、啟用定期更新、停用不常用的服務、設定 UFW 或同等防火牆並啟用預設拒絕策略,僅在必要時才允許存取。對於 SSH 等經常遭受攻擊的服務,可以使用 Fail2Ban 或 CrowdSec 等現代工具來阻止暴力破解嘗試。

對於加密通訊而言,即使在區域網路內,以純 HTTP 協定提供任何服務也已不再可行。 Caddy、Nginx Proxy Manager 或 Traefik 等反向代理工具能夠簡化 TLS 憑證(例如 Let's Encrypt)的使用,並允許為內部流量和透過零信任隧道傳輸的流量添加額外的驗證層、速率限制、安全標頭等功能。

DNS、Pi-hole 和 DoH「黑名單」屏蔽

隱私和網路控制的關鍵在於管理您自己的 DNS。冗餘部署的 Pi-hole(或 AdGuard Home)可讓您在網路層級封鎖廣告、遙測資料和可疑域名,而無需在每台裝置上配置瀏覽器擴充功能。但是,您需要建立一個難以停用和繞過的強大基礎設施。

關於 DNS 加固,其理念是所有裝置都只能查詢您的 Pi-hole 伺服器,而無法自由存取 1.1.1.1、8.8.8.8 或公用 DNS-over-HTTPS 位址。如果您堅持忽略 DHCP DNS,可以建立包含主要公共 DNS 和 DoH 提供者(例如 Cloudflare、Google、Quad9 等)位址的 IP 位址池,並編寫防火牆規則,僅允許來自您的 Pi-hole 伺服器的 DNS 請求,並封鎖所有其他來源的請求。

實際上,通常會定義諸如“Pi-hole 伺服器”之類的群組配置文件,以及“DNS”和“TLS-DoH”連接埠。然後,新增出站規則,允許 Pi-hole 透過這些連接埠與互聯網通信,並在這些規則下方立即阻止區域網路內其他 IP 位址嘗試使用這些相同的連接埠。這樣,任何試圖使用其自身 DNS 伺服器的使用者都將失去解析能力,並「學會」遵守您的配置。

為了增強 Pi-hole 的彈性,最好將執行個體部署在不同的裝置上(例如,一個容器運行在 NAS 上,另一個運行在 Proxmox 上,還有一個運行在配備 SSD 的 Raspberry Pi 上),並配置 DHCP 為客戶端分配多個 DNS IP 位址。這樣,即使某個節點發生故障,您也不會失去網路連接,服務也能在您調查問題期間繼續運作。

  即時通訊應用的弱點:真實存在的風險及應對方法

零信任和遠端訪問,借助 Cloudflare Tunnel 和 Tailscale 實現

與其直接打開通往您家的橋接網絡,不如嘗試使用非常強大的組合:Cloudflare Zero Trust 來公開選定的 Web 服務(包含身份、策略和審計),以及 Tailscale 來透過網狀 VPN 訪問內部資源,就像您在區域網路中一樣,但無需觸及路由器的 NAT。

Cloudflare Tunnel(Cloudflare 用戶端以容器或服務形式運作)會在您的網路和 Cloudflare 基礎架構之間建立出站隧道。之後,您可以將子網域與該隧道關聯,並將 HTTPS 流量路由到您家庭實驗室中的一個或多個服務。任何人都看不到您的家庭 IP 位址或連接埠;他們只能看到受 Cloudflare 多層保護的域名,您可以在其中強制執行登入、雙重認證、地理位置過濾和其他功能。

對於需要存取整個網路或特定網段的傳統 VPN 服務而言,Tailscale 非常出色。它只需一個簡單的腳本即可完成安裝,將每個裝置註冊到您的「尾網」中,並建立​​一個基於 WireGuard 的私人網絡,透過 ACL 來控制哪些使用者可以存取哪些 IP 位址和連接埠。這樣,您可以限制存取權限,例如,僅允許您的個人帳戶存取 192.168.1.10:22(虛擬機器管理程式)或 10.10.40.100:3000(您的 CI 工具)。

如果您想更進一步,可以使用 Cloudflare 在 Terraform 中描述您的整個零信任配置。這樣,您的策略就以程式碼的形式存在,允許您進行可複現的更改,並像其他任何基礎設施項目一樣在 Git 中啟用版本控制。即使您的家庭實驗室只是放在走廊的壁櫥裡,這也是一種非常專業的管理方式。

佈線、延遲和典型效能問題

如果你的實體網路本身就存在缺陷,那麼邏輯加固也無濟於事。重複使用舊的RJ11介面和舊網路線或許能暫時解決問題,但在高負載下,網路協商過程中出現斷線、CRC錯誤或速度下降等問題時,情況十分常見。因此,只要有機會(例如施工、翻新或搬家),就應該考慮鋪設高品質的CAT6或CAT7網路線,並使用配備優質模組化插座的配線架。

當使用多個交換器互連房間或機櫃時,主幹連結通常會成為瓶頸。如果您發現區域間的流量達到飽和,請考慮將多個實體連結聚合為連結聚合組 (LAG),前提是交換器支援此功能。這可以提高可用頻寬,並增強對線纜故障的容錯能力。

將每個連接埠的連線位置、每個網段使用的 VLAN ID 以及原生 VLAN 的設定方式進行詳細記錄,可以為您節省大量時間。給線纜貼上標籤,標註端口,並使其與您的邏輯 VLAN 圖保持同步。許多網路「謎團」最終都源自於連接埠標籤錯誤或 VLAN ID 錯誤。

當出現問題(例如延遲過高、TTL 過期、路由重複)時,請使用以下基本工具:從不同點(客戶端、路由器、調製解調器)進行路由跟踪,查看接口上的錯誤計數器,在防火牆上捕獲數據包,如果您的端口機允許,還可以使用端口鏡像來查看哪些標籤和 MAC 地址在實際循環連接地址的實際循環。

家庭實驗室:Proxmox、輕量級 Kubernetes 和關鍵服務

一旦網路和安全基礎架構建立起來,家庭實驗室就變成了一個殘酷的試驗場,可以練習非常接近生產環境的各種操作:使用 Proxmox 的叢集、像 k3s 這樣的輕量級 Kubernetes、來自 NAS 的 NFS 作為共享儲存、備份、高可用性等等。

Proxmox 提供簡潔的 Web 介面、原生叢集、快照和內建備份功能,讓您輕鬆管理虛擬機器和容器。您可以掛載 NAS 上的 NFS 檔案系統,並將其用作虛擬磁碟、備份或 ISO 映像的共用儲存。雖然延遲不如本地 SSD 快,但您可以獲得 NAS 的可靠性,以及輕鬆管理備份、遷移和快速恢復的便利性。

在 Proxmox 上,許多用戶會建立一個小型 Kubernetes 集群,其中包含三個 Ubuntu LTS 虛擬機作為控制平面,並添加諸如 kube-vip(高可用虛擬 IP)、Longhorn(分佈式存儲和自動卷備份)、Traefik 或 Nginx 等入口控制器以及 Prometheus、Grafana、Loki 等可觀測工具。這樣,使用者就可以使用 Helm 或清單文件,並透過 Git 進行版本控制,在 Kubernetes 上部署家庭實驗室服務。

在此基礎上,讓家庭實驗室真正「酷炫」的各個組件就派上用場了:Pi-hole 用於 DNS 和廣告攔截;Home Assistant 用於集成家庭自動化、攝像頭和能源;Homebridge 和 Scrypted 用於將不支持的設備和攝像頭集成到 HomeKit VLAN 和您的安全隧道安全隧道;所有這些都依賴於您的零信任隧道

透過結合網路分段、嚴格的防火牆、受控的 DNS、安全的遠端存取、監控和備份,可以打造出一個與現代企業基礎設施非常相似的家庭環境,但規模更小:噪音更少,可視性更高,出現故障時意外更少,最重要的是,即使廉價的 WiFi 設備出現故障,也不會造成重大損失,讓人安心。

Homelab 開源安全
相關文章:
使用開源工具保障家庭實驗室安全