林荫
林荫
发布于 2026-05-14 / 8 阅读
0
0

家庭组网最佳实践之网络配置

💬 前言

笔者前段时间研究和重构了一波家里的网络拓扑,暂时算是得到了一个还算满意的答案,这期就给大家分享一下目前我家的组网方案。

事先声明,本方案并非万能方案,不能保证一定能适配所有情况。

文章内推荐产品并不一定是该职能下的最优选择,也并非软广,所以也不会贴链接,读者可以自行寻找相同职能的设备。

本篇主要是讲各个关键逻辑节点的配置,物理拓扑以及接线请参考我的上篇文章


⚙️ 配置

🧱 光猫

开桥接,其它什么都不用动。

🚪 主路由

  • PPPoE拨号:略。
  • DHCP预设IP范围:比如我主网段用的是 10.0.0.0/24,网关地址 10.0.0.1,DHCP范围是 10.0.0.11-10.0.0.254,预留了 10.0.0.2-10.0.0.10 作为主网关的静态服务地址。 image.png
  • 静态路由:将内网网段的相关协议都路由到子网关IP。 image.png
  • 端口转发:提前准备好公网访问内网服务的对外端口,主要是为了绕过运营商对 80 和 443 端口的封锁。 image.png

🛡️ DMZ反代+DDNS

  • DDNS:要动态解析你的公网 IP 到域名解析服务商。
  • 反代:主要是为了引导域名访问到 DMZ 或内网服务。反代地址直接填 IP+端口即可,DMZ 区的服务可以直接寻址,内网服务会通过刚才主路由的静态路由配置,转发到子路由,然后通过子路由的防火墙放行,转发到内网服务器端口。

具体可以参考我之前写的文章

💻 子路由PVE

推荐把内网DNS服务器和软路由都装在这里,否则如果 DNS 服务器装在内网服务器的话,内网服务器关机可能会导致断网或网络不稳定。

image.png

笔者这里是还装了一个 Tailscale 载体,用来做虚拟组网协议转发,实现内网服务器可以使用虚拟网卡与远端 VPS 通过隧道交互,这样就可以把远端 VPS 的防火墙都关的差不多,提升远端 VPS 安全性。

网络设备稍微复杂一点,需要三个虚拟网桥:

  • vmbr0:从属子路由的物理 WAN 口,作为 WAN 口数据隧道。
  • vmbr1:纯虚拟网桥,作为子路由 PVE 内部的 LAN 口主网桥,同时用于作为正常情况下的 PVE 管理口。这样 PVE 管理入口就放在了 LAN 侧,即使 DMZ 区被攻破,入侵者也无法从 DMZ 区嗅探到 PVE 的管理口。
  • vmbr2:从属子路由的任意一个备用物理网口。主要是因为 vmbr1 的连通性依赖软路由虚拟机的健康,如果软路由虚拟机挂了,会因为无法进行消息转发而无法进入 PVE 管理后台,所以此处还要备用一个应急物理 PVE 后台入口,用来应对这种情况。

image.png

📡 DNS服务器

笔者这里使用的是 AdGuard Home,读者可以选择其它的 DNS 服务,逻辑类似。 这个负载不大,搞个 1核 512M内存 8G甚至 4G硬盘的 LXC 容器就非常够了。网络接到 vmbr1 即可。

上游服务器

配置国内常用公共 DNS 服务:

223.5.5.5
119.29.29.29
https://dns.alidns.com/dns-query

并勾选并行请求,提升 DNS 解析速度。

DNS过滤器

  • 黑名单加入自己喜欢的库,但注意不要选太多,否则会加重 DNS 解析压力。笔者这里选择了 AdGuard DNS filter(必选),OISD Blocklist Big(据说还不错的一个超大名单),Peter Lowe's Blocklist(这个据说也还行),两个 CHN 开头的名单(中国特殊优化了属于是)。
  • DNS重写增加自己要使用的局域网服务的域名。内网的指向内网反代 IP,DMZ 的直接指到该服务 IP 即可。可以直接写二级域名,比如 *.cylnb.com 就可以代指所有此二级域名下的所有三级域名。

🔀 软路由

笔者这里是 OpenWrt,读者也可以选择其他的软路由系统,逻辑都是类似的。

这个是子路由的主要职能,所以可以多分点硬件。笔者这里是给了 4核 2G内存 64G硬盘,网桥接了 vmbr0vmbr1 + 直通万兆口。

DHCP设置

  1. 进入 网络 -> 接口,首先分离出子网段,设置 LAN 口 IPv4 地址为子网段网关地址,比如笔者这里的子网段使用的是 10.1.1.0/24,网关地址我就设置成 10.1.1.1,子网掩码设置为 255.255.255.0 即可。
  2. 另外 DHCP选项 需要新加一项 6,你的内网DNS服务器IP,这样 DHCP 就会把你的内网 DNS 服务器 IP 作为 DNS 服务解析 IP 发放给子网段内的设备了。
  3. 需要的话也可以在 DHCP服务器 -> IPv6设置 中的“通告 IPv4/6 DNS服务器”一项也加入你内网 DNS 服务器的 IPv6 地址,这样 IPv6 的 DNS 解析地址也可以下发了。

⚠️ 注意:如果你装了例如 PassWall 这种代理插件,可能会劫持你的 DNS 协议(即 53 端口的协议),可能会导致下发的 DNS 失效。此时需要改插件内的劫持 DNS 相关逻辑,此处不展开细说,简单来说就是劫持 DNS 时也劫持到内网 DNS 服务器即可。

设备

网络 -> 接口 -> 设备,打开 br-lan(也就是 LAN 口的虚拟网口),常规设备选项中,把 vmbr1 和直通的万兆口都加入网桥端口中,即把它们都划归到 LAN 方向。

DNS

  1. 网络 -> DNS -> 转发,把内网 DNS 服务器 IP 加入 DNS 转发一栏。这里似乎是 OpenWrt 自带的 DNS 劫持,笔者也不确定,总之写上不会错。
  2. 最后进入 Resolv 和 Hosts 文件页签,勾选 忽略解析文件。这里是为了忽略上游(比如主网关)下发的 DNS 服务器列表,从而能够彻底劫持 DNS 解析。

防火墙

常规设置跟我这个设置一样就可以,没记错的话默认应该就是这样的。 image.png

接下来要增加几个通信规则,自带的不用管,我们直接新增,主要是 Allow 开 DMZ 反代到内网服务的规则:

  • 源区域:WAN
  • 源地址:DMZ反代IP
  • 目标区域:LAN
  • 目标地址:内网服务IP
  • 目标端口:内网服务端口

⚠️ 如果没有公网使用域名访问内网服务的需求,不推荐配置通信规则,会增加危险性。

📋 总结

至此子路由的关键设置就算设置完了,功能也都打通了。

其它一些细节设置,以及一些自身需求的自定义设置,比如像笔者这里的虚拟组网、代理插件,此处就不展开说了,有需求的读者自行探索即可。

⚠️ 注意:网络配置大多都有生效延迟,如果配置、保存并应用后没有生效,推荐重启路由器或终端设备再试,或者自行查询您设备的相关服务,用命令行重启相关服务更快捷。

🖥️ 内网服务PVE

这个主要参考我之前的 PVE 教程文章即可,主要是记得部署一个内网反代,用于在内网中使用域名访问内网服务。 懒得弄的话内网直接用 IP 访问也不是不行哈哈哈。

⚠️ 另外需要注意的是,不要把通网相关的服务部署在此 PVE 以内,否则这个 PVE 重启会导致全家断网,这就是不合理依赖了。


✍️ 结语

经过了接近 20 天的打磨和优化,还经历了诸如硬盘报废这种事情之后,这一波网络重构总算完成了。目前测试在局域网内使用 FnOS 上传下载可以轻松跑满 100MB/s,使用公网也可以轻松跑满千兆~

附加功能比如广告过滤、代理插件的使用也都还算比较满意。

甚至还可以通过插件来实现家庭网络中某应用的流量限制,比如每天晚上 8 点就把你家孩子抖音和王者的流量降到 10KB/s,她也不知道怎么回事儿~

瞎捣鼓真好玩啊,感谢老婆和家里人让我能完全躺平做自己想做的事儿~ image.png


评论