利用 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 等),而仅使用交换机进行二层通信。如果内部流量非常大(例如存储阵列之间的数据复制、虚拟化集群、大型备份),则配备硬件路由卸载功能的三层交换机可能值得考虑,但对于大多数家庭用户来说,这并非必需。

就软件而言,主要有三种发展路径:

  • OpenWrt的 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 之间跳转。为了保持这些设备正常工作,您需要选择性地允许哪些发现流量通过。

  在 Windows 11 中通过蓝牙共享文件:完整指南

通常的做法是在交换机上启用 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 地址。这样,即使某个节点发生故障,您也不会失去网络连接,服务也能在您调查问题期间继续运行。

  Twofish:有关这种强大的加密算法的全部信息

零信任和远程访问,借助 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 中;Plex 或类似软件用于多媒体;所有这些都依赖于您的 VLAN 和您安全可靠的零信任隧道。

通过结合网络分段、严格的防火墙、受控的 DNS、安全的远程访问、监控和备份,可以打造出一个与现代企业基础设施非常相似的家庭环境,但规模更小:噪音更少,可视性更高,出现故障时意外更少,最重要的是,即使廉价的 WiFi 设备出现故障,也不会造成重大损失,让人安心。

Homelab 开源安全
相关文章:
使用开源工具保障家庭实验室安全