你家的网络大概率是一张扁平网。一个 Wi-Fi 密码,一个子网,所有东西都在上面——笔记本、手机、 恒温器、扫地机器人、一台便宜的 IP 摄像头、三块树莓派,还有存着你所有照片的 NAS。平时它 跑得挺好,直到某台设备被攻陷,然后就不行了。这篇文章讲的是 home network segmentation(家庭网络 分段):它到底带来什么、从免费到认真的一系列方案怎么排序,以及大多数文章都会跳过的那部分 ——该在哪里停下来。我的观点是:一个**访客网络(guest network)**加一个 lab 网段,就能 拿到 80% 的价值,剩下的往往是过度设计。
真正要紧的威胁与麻烦
往外打电话回家的 IoT 设备
一个智能插座不需要连上你的笔记本。它需要的是电,和一个云端点,而且通常走的是明文、无认证 的 HTTP。但在扁平网里,它能扫描每一台主机、捅你 NAS 的 445 端口、探测你路由器的管理页面。 解法不是”相信厂商”,而是把这类设备放进一张网络里:它们能到的只有公网和同类设备。
一台被攻陷的摄像头
最便宜的摄像头在这方面臭名昭著。默认口令、2019 年的固件早被忘掉、一个你从没要过的云端 AI 功能。当其中一台被拿下,重点不是它挂了——它们迟早都会挂——而是它接下来能碰到什么。在 扁平网里:一切。在分段后的网络里:一张小小的 IoT VLAN,它能做的最坏的事也就是加入一个 僵尸网络然后自己重启。
横向移动(lateral movement)
这才是分段的真正理由。攻击者很少一跳就得手。他们落在那台最弱的设备上,然后横着走:从摄像头 到 NAS,从 NAS 到你没锁屏的笔记本,从笔记本到你的密码管理器。每一跳,都需要他们看得见、够得着 下一台主机。分段把这些路径拿掉了,因为一条写着”IoT 不能主动发起连接 Trusted”的防火墙规则, 就是横向移动翻不过去的一堵墙。
访客接入
客人想连 Wi-Fi。你不希望他们的手机——不管补丁打没打全,跑着上周刚装的某个东西——在你家 局域网里乱逛。访客网络是成本最低的分段,单为这一点就值得做。
让 lab 远离家人的设备
另一个更安静的威胁:你自己。一台 lab 机器跑着你故意搞坏的有漏洞服务,一台你半夜十一点在 刷固件的路由器,一台配错导致广播风暴的虚拟机。家人的设备不该成为你爱好的附带损伤。分段既是 关于爆炸半径,也是关于攻击者。
各种方案,从最便宜到最认真
方案 1——在现有路由器上开访客 SSID(免费,十分钟)
多数消费级路由器本来就有访客网络的开关。打开它。默认情况下,它会把访客和主网、以及访客 彼此之间隔开,这正好是你想要的。如果路由器还允许你把访客指向另一个子网,那就更好了。这是 全文性价比最高的一步,你今天就该做。
它给不了你的是:控制权。通常没有规则编辑器——访客要么被隔离,要么没有。而且它对你的 IoT 设备毫无帮助,那些东西正和你的笔记本一起待在主网上。
方案 2——第二台路由器(便宜,真隔离)
把第二台路由器(任何能刷 OpenWrt 的机器、一台旧备用机、一台迷你主机)放在主路由后面,把 lab 或 IoT 设备挂在它下面。这样你就有了两个可路由的子网,中间是一台真正的防火墙,带着 你真正能控制的防火墙规则。这是穷人的分段:没有 VLAN,没有网管交换机,但它能用。
代价是 NAT:内层路由器把所有东西都藏在它后面,所以从笔记本访问一个 lab 服务需要端口转发 或者一条路由。这有点烦,但能忍;如果你只需要 lab 往外出,那就完美了。
方案 3——带网管交换机 + AP 的 VLAN home network
这是”正规”答案,需要三件事同时凑齐:
- 一台支持 VLAN 接口的路由/防火墙(OpenWrt、OPNsense、pfSense、UniFi 网关)。
- 一台会说 802.1Q 的网管交换机(managed switch),这样一个物理端口能作为 trunk 承载多个 VLAN。
- 一个能把多个 SSID 映射到多个 VLAN 的接入点(AP)——这是大家最容易忘的一环。便宜的 AP 会很乐意同时广播 “MyNet” 和 “MyNet-Guest”,然后把两者都塞进同一个 untagged 的 LAN。如果 AP 无法给每个 SSID 打上 VLAN 标签,那么无论你的交换机多好,Wi-Fi 分段都不会发生。
三样凑齐,你就有了真正的 VLAN home network 隔离:不同子网上的设备,共用交换机和网线,靠 802.1Q 标签和防火墙策略隔开。大多数 homelab 玩家最终都停在这一步,而对多数人来说,这也是 合适的天花板。
方案 4——基于 overlay 的隔离
与其切割物理局域网,不如在上面建一张虚拟的。overlay VPN——EasyTier、Tailscale、WireGuard 隧道——把机器放进自己的私有地址空间,配自己的访问规则,和物理网络长什么样无关。我一直在用 这个,模式见用 EasyTier 搭建私有 mesh VPN。 overlay 很适合用来够到 lab 机器,而且和逐节点策略配合得很好。
两个提醒。第一,overlay 是叠在上面的一层——如果一台 IoT 设备已经在你的扁平网里,把你的 笔记本放进 mesh 并不能阻止摄像头扫描 NAS。你是加了一条路径,而不是去掉一条。第二,overlay 本身也要穿透 NAT;万一它失败了,原理都在《NAT 穿透到底是怎么工作的》里。 用 overlay 连接你信任的机器,用 VLAN 把不信任的机器隔开。
一份具体的拓扑
四个网段:Trusted、IoT、Lab、Guest。从防火墙下来一根 trunk 接网管交换机和 AP。
公网 / Internet
│
┌─────┴─────┐
│ 光猫 / │
│ ONT │
└─────┬─────┘
│ WAN
┌──────┴────────┐
│ 边界防火墙 │ (OPNsense / OpenWrt)
│ 802.1Q trunk │
└──┬────────┬───┘
trunk│ │trunk
┌─────────┴──┐ ┌──┴─────────┐
│ 网管交换机 │ │ Wi-Fi AP │
│ │ │ SSID→VLAN │
└─┬───┬───┬──┘ └──┬─────┬───┘
│ │ │ │ │
VLAN10│ │ │ │ │
(有线) │ │ │ │ │
│ │ │ │ │
┌──┴┐ ┌┴──┐ ┌┴──┐ │ │
│NAS│ │Pi │ │PC │ │ │
└───┘ └───┘ └───┘ │ │
│ │
VLAN10 │ │ VLAN20
(Trusted)│ │ (IoT)
│ │
┌────┴┐ ┌──┴───────┐
│手机 │ │摄像头、 │
│笔记本│ │插座、电视│
└─────┘ └──────────┘
VLAN 10 Trusted — 笔记本、手机、NAS (全公网,跨网段受限)
VLAN 20 IoT — 摄像头、插座、电视 (仅公网,不可访问 LAN)
VLAN 30 Lab — 服务器、开发机 (公网,且能从 Trusted 访问)
VLAN 40 Guest — 访客设备 (仅公网,完全隔离)
AP 广播四个 SSID,各自打上对应 VLAN 的标签。有线的 lab 机器接在 tagged 端口上;NAS 待在 Trusted,这样它始终可达。
防火墙规则示例
模型是转发链上的默认拒绝,外加两条策略:IoT 能到公网但永远到不了 LAN;Trusted 可以主动 发起访问 Lab,反过来不行。下面是一份 nftables 草稿:
table inet filter {
chain forward {
type filter hook forward priority 0; policy drop;
# 放行回包以及已建立/相关的连接
ct state established,related accept
# Trusted:完整公网访问
iifname "vlan10" oifname "wan0" accept
# Trusted -> Lab:我能访问自己的服务器
iifname "vlan10" oifname "vlan30" accept
# Lab -> Trusted:只能作为回包(见上面的 established,related)
# Lab:公网
iifname "vlan30" oifname "wan0" accept
# IoT:只准公网,别的不行
iifname "vlan20" oifname "wan0" accept
# Guest:只有公网,完全隔离
iifname "vlan40" oifname "wan0" accept
# 其余一切(IoT->LAN、Guest->LAN、Lab->Trusted 的新建连接)都被丢弃
}
}
从上往下读,分段的全部意义一目了然:IoT 和 Guest 的规则只指向 wan0,别无他处。一台被拿下的
摄像头只有一个出口——公网——以及通往你 NAS 的零条路径。这就是用四行代码挡下的横向移动。
这里最经典的坑是设备发现:Chromecast、AirPlay 和 mDNS/SSDP 广播不会跨越 VLAN 边界。从手机 (Trusted)投屏到电视(IoT)会直接失败。解法是一个 mDNS 转发器或者 IGMP proxy,或者——更 务实的做法——把电视放在 Trusted,只把真正不信任的设备放进 IoT。
成本,实话实说
- 网管设备。 一台网管 8 口交换机加一个支持 VLAN 的 AP 是真金白银——买靠谱的 UniFi/Omada/Aruba Instant On 大概要 100–300 美元。你现有的运营商光猫路由器几乎肯定做不到。
- 能给 SSID 打标签的 AP。 买前务必确认。“多个 SSID”和”多个 SSID 映射到不同 VLAN”不是 一回事,而规格表不会写清楚。
- 维护负担。 每一台新设备都是一个决定:放哪个 VLAN?追一次断掉的投屏,你就会明白为什么 扁平网在大多数家庭里活了下来。再加上逐 VLAN 的 DHCP、DNS 和 IPv6 路由器通告,这就是一个 小项目,而不是一个下午的活。
- 排查。 当某个东西连不上另一个东西时,你现在要查交换机配置、trunk 标签、防火墙、还有 主机。这是四个地方,而不是一个。
我真正推荐的
从小处开始,痛就停手。
- 今天: 打开访客网络。免费、立刻见效、隔离访客。
- 这个周末: 把你的 lab(或者你那堆 IoT 杂物)放到第二台路由器或它自己的子网后面。两个 网段,一套防火墙规则。这就覆盖了真正会发生的威胁。
- 只有当你有这个兴致,或者设备数量确实值得时: 才上 VLAN、网管交换机和能打标签的 AP。 为了学习去做,或者因为你确实有二十台 IoT 设备——而不是因为一篇博客叫你这么做。
多数家庭网络需要的是两三个网段,不是五个。把摄像头扔进一张隔离 VLAN、再开一个访客 SSID, 就能消除现实中的攻击;第十个 VLAN 并不能。挑那个足以移除你真正在意路径的最小分段,然后把 省下来的周末拿去干点别的。
一段话总结
家庭网络分段关乎的是爆炸半径,而非完美。现实中那些具体的威胁——IoT 设备往外打电话、 一台被拿下的摄像头、横向移动、访客设备、你自己的 lab——都能靠一个访客网络加一张隔离的 IoT VLAN,再加上默认拒绝的防火墙规则姿态来解决。先开访客 SSID,再上第二台路由器, 只有当你有设备、有能打标签 SSID 的 AP、也有维护的耐心时,才去搞网管交换机上的完整 VLAN。 分段到现实攻击会失败的那一步,然后停下。