家庭透明代理网络的规划与部署
前言
随着时间的推移,家里的网络设备越来越多,各种智能家居、手机、电脑、NAS 混杂在一个网段里,既不安全也不方便管理。再加上访问外部网络的需求,是时候重新规划一下家庭网络架构了。
本文记录我将家庭网络重构为基于 VLAN 的双网络架构的全过程。核心目标是实现直连网络与代理网络的彻底分离:让需要访问外部网络的设备走代理,让普通设备直连上网,两者通过不同的 SSID 自动接入对应网段,同时保持内网设备之间的互通。这一设计从最初就将高可用性和易用性放在首位——当代理服务出现故障时,只需一键切换 WiFi 即可恢复上网,无需任何繁琐的配置调整。文章将详细介绍网络拓扑设计、路由器配置、透明代理实现等内容。
网络架构设计
整体拓扑
重构后的网络采用三层架构:
1 | [互联网] |
为什么选择这种架构
- 直连与代理分离:这是本架构的核心设计。通过 VLAN 10 (代理网) 和 VLAN 11 (直连网) 实现物理隔离,设备根据需求选择接入点,无需在每台设备上配置代理
- 逻辑互通:虽然网络分段,但各网段之间可以通过路由互通,NAS 等内网服务对所有设备可见
- 物理位置限制:弱电箱无法容纳小米路由器,因此交换机和路由器必须分开放置。这种连接方式让路由器可以放在更合适的位置提供 WiFi 覆盖,同时通过 2.5G 端口与交换机保持高速互联
- 2.5Gbps 主干:交换机采用 2.5G 速率,满足内网高速传输需求
- 透明代理:代理网段内设备自动走代理,对终端用户完全无感知
- 高可用冗余:双 SSID 设计提供了故障切换能力。当代理服务出现故障时,只需切换 WiFi 到 Home-Direct 即可立即恢复上网,无需修改任何设备配置
VLAN 规划
| VLAN | 名称 | 网段 | 用途 | SSID |
|---|---|---|---|---|
| VLAN 2 | pppoe | - | 光猫拨号 | - |
| VLAN 10 | 代理网 | 192.168.2.0/24 | 代理服务 | Home-Proxy |
| VLAN 11 | 直连网 | 192.168.31.0/24 | 直接上网 | Home-Direct |
硬件选型
小米 WiFi 7 路由器 (XiaoQiang)
- 型号:小米/红米 WiFi 7 路由器 (IPQ9574平台)
- 管理 IP:192.168.31.1 / 192.168.2.1
- 功能:核心路由器,PPPoE拨号,多 SSID 支持
- 特点:支持 WiFi 7,4x4 MIMO,SSH 可登录
选择小米路由器的主要原因是其固件基于 OpenWrt,可以通过 SSH 进行深度定制。之所以不刷第三方固件,是因为第三方固件往往缺少硬件厂商的优化支持,会影响硬件 offload 性能,且稳定性和适配速度都不如官方固件。直接使用官方固件解锁 root 后配置,既能保留硬件加速能力,又能获得足够的自定义空间。
LG-SG8T1 2.5G 交换机
- 品牌:联果 (LIANGUO)
- 管理 IP:192.168.4.1
- 速率:2.5Gbps 全端口
- 用途:作为网络主干,连接光猫、路由器、NAS、PC 等有线设备
选择原因:LG-SG8T1 本质上是一款公模产品,胜在价格便宜且功能够用,能够满足 VLAN 划分的基本需求。
交换机配置
LG-SG8T1 交换机安装在弱电箱中,作为整个家庭的网络主干。通过预埋线缆连接到各个房间,让客厅、书房、卧室等位置的设备都能享受 2.5Gbps 的高速有线联网。
端口规划:
| 端口 | 状态 | 速率 | 默认 VLAN | 允许 VLAN | 连接设备 | 模式 |
|---|---|---|---|---|---|---|
| 1 | ✅ 连接 | 1000Mbps | 2 | 2 | 光猫 (PPPoE) | Access |
| 2 | ✅ 连接 | 2.5Gbps | 2 | 1,2,10,11 | 小米路由器 (Trunk) | Trunk |
| 3-8 | 按需连接 | 2.5Gbps | 11 | 10,11 | NAS/PC/其他有线设备 | Access |
配置说明:
- 端口1:连接光猫进行 PPPoE 拨号,仅允许 VLAN 2
- 端口2:作为 Trunk 口连接小米路由器,承载 VLAN 1,2,10,11 全部流量,速率 2.5Gbps
- 端口3-8:供有线设备接入,默认 VLAN 11(直连网),但允许切换到 VLAN 10(代理网)
路由器配置
小米路由器是整个网络的核心,负责 PPPoE 拨号、VLAN 路由、WiFi 接入和透明代理。值得一提的是,我并未刷入第三方固件,而是通过解锁 root 权限后直接使用官方固件,在 SSH 中完成所有网络配置。这种方式既保留了官方固件的稳定性,又获得了足够的自定义能力来实现 VLAN 和透明代理等高级功能。
⚠️ 版本说明:本文基于固件版本 1.1.38 编写。目前版本的固件中,通过 SSH root 强开的这些功能(VLAN、策略路由、多 SSID 等)是稳定可用的。但需要注意,由于是非官方支持的高级功能,不保证未来固件版本升级后这些配置仍然能完美工作。
网络接口与 VLAN 配置
在 /etc/config/network 中定义两个网段的接口:
1 | # 直连网络接口 (VLAN 11) |
配置要点:
- eth0 是主干口:通过
eth0.10和eth0.11与交换机建立 Trunk 连接,分别承载代理网和直连网的流量 - eth1-3 是 LAN 口:同时接入两个网段的 tagged 流量(
eth1.10/eth1.11等),供有线设备使用 - 桥接模式:两个接口都使用
type 'bridge',允许多个物理端口加入同一网段
DHCP 服务器配置
在 /etc/config/dhcp 中为两个网段分别配置 DHCP 服务,自动分配 IP 和 DNS:
1 | # 直连网络 DHCP(通常已默认存在) |
关键配置说明:
| 选项 | 作用 |
|---|---|
interface |
绑定到对应的网络接口 |
start / limit |
IP 分配范围的起始和数量 |
leasetime |
租约时间,代理网段设较短方便刷新 |
leasefile |
独立的租约文件,避免与直连网冲突 |
dhcp_option '6,x.x.x.x' |
关键:强制指定 DNS 服务器为代理服务器 192.168.31.2 |
通过 list dhcp_option '6,192.168.31.2',代理网段的设备会自动将 DNS 指向代理服务器,配合代理服务器上的 DNS 服务实现分流解析。
策略路由配置
为了让代理网段(lan10)的流量能够被正确处理,需要配置策略路由:
1 | # 创建独立路由表 100 |
核心原理:在我实际的部署中,内网有一台 IP 为 192.168.31.2 的独立代理服务器。上面的路由配置会将代理网段(192.168.2.0/24)的所有外网流量强制转发到这台服务器上进行透明代理处理。
这就是「双网络分离」架构的核心实现——通过策略路由让两个网段拥有完全不同的上网路径:
- 直连网段:直接通过路由器 PPPoE 拨号上网
- 代理网段:所有流量被路由到
192.168.31.2的代理服务器,由其处理后转发
防火墙配置
在 /etc/config/firewall 中定义两个网段的区域(zone)和转发规则。
注意:以下配置中 lan 和 wan 区域通常在官方固件中已默认存在,无需重复创建。重点是根据需要添加 lan10 区域和相应的转发规则。
1 | # 直连网络区域(通常已存在) |
转发规则(按需添加):
1 | # 代理网 -> 直连网(访问内网服务) |
核心逻辑:
- 独立区域:
lan和lan10是两个独立的防火墙区域,各自可以设置不同的安全策略 - 双向互通:
lan10 → lan让代理网的设备能访问直连网的 NAS 等服务;lan → lan10允许反向访问 - 共享外网:两个区域都配置了到
wan的转发,都能独立访问互联网
这样配置后,两个网段的设备既可以互相访问(如访问 NAS),又各自拥有独立的上网路径。
多 SSID 与 VLAN 绑定
小米路由器支持创建多个 WiFi 网络,每个网络可以绑定到不同的 VLAN 或网段。以下是我实际使用的配置(基于官方固件的 /etc/config/wireless)。
如何创建新 SSID
在 OpenWrt 配置中,新增一个 SSID 就是添加一个 config wifi-iface 段落,核心是通过 option network 指定所属网络接口,从而实现 VLAN 隔离。
1 | # 1. 新增代理网络 SSID(绑定到 lan10 接口) |
关键配置选项说明
| 选项 | 作用 | 示例值 |
|---|---|---|
device |
指定使用的射频硬件 | wifi0=2.4G, wifi1=5G, wifi2=5G2 |
ifname |
创建的虚拟接口名称 | wl10, wl11,需唯一 |
network |
绑定到哪个网络接口 | lan=直连网, lan10=代理网 |
mode |
工作模式 | ap=接入点 |
ssid |
显示的 WiFi 名称 | Home-Direct / Home-Proxy |
encryption |
加密方式 | psk2+ccmp=WPA2/WPA3 混合 |
sae |
是否启用 WPA3-SAE | 1=启用 |
sae_password |
WPA3 专用密码 | 通常与 key 相同 |
ieee80211w |
管理帧保护 | 1=启用(WPA3 必需) |
mld |
MLO 配置引用 | 指向 config wifi-mld 的名称 |
WiFi 接口实际配置
| 射频 | 接口 | 绑定网络 | SSID | 用途 |
|---|---|---|---|---|
| 2.4G (wifi0) | wl1 | lan | Home-Direct | 直连上网 |
| 5G (wifi1) | wl0 | lan | Home-Direct | 直连上网 |
| 5G2 (wifi2) | wl2 | lan | Home-Direct | 直连上网 |
| 5G (wifi1) | wl10 | lan10 | Home-Proxy | 代理上网 |
| 5G2 (wifi2) | wl11 | lan10 | Home-Proxy | 代理上网 |
核心原理:option network 决定了 SSID 归属哪个网段。lan10 对应代理网络(192.168.2.0/24),lan 对应直连网络(192.168.31.0/24)。设备连接时会自动从对应接口的 DHCP 获取 IP,无需任何手动配置。
修改配置后执行 /etc/init.d/network restart 或 wifi reload 即可生效。
透明代理配置
代理服务运行在策略路由中提到的 192.168.31.2 服务器上。这是一台基于 Debian 系统的独立主机,部署了 Mihomo(原 Clash.Meta)代理客户端,并提供 Web 控制面板进行可视化管理。
前置条件:作为网关设备,代理服务器必须启用 IP 包转发功能:
1 | # 临时启用 |
网络接口配置
代理服务器的网卡配置(/etc/network/interfaces):
1 | # Loopback 接口 - 配置 TProxy 路由表 |
配置说明:
lo (Loopback) - TProxy 核心依赖
ip rule add fwmark 0x1 lookup 100:标记为 0x1 的流量使用路由表 100ip route add local default dev lo table 100:将标记流量路由到 lo 接口,这是 TPROXY 工作的关键
enp38s0 (主网卡) - 连接内网
- 静态 IP
192.168.31.2(策略路由中的代理服务器地址) - 网关指向小米路由器
192.168.31.1 - 启用硬件卸载(TSO/GSO/SG)提升性能
- 静态 IP
透明代理实现流程
- 流量接收:代理网段(192.168.2.0/24)的设备发出的流量,通过策略路由被转发到
192.168.31.2 - TPROXY 劫持:nftables 规则将流量透明重定向到 Mihomo 的 TPROXY 端口(2500)
- Mihomo 处理:Mihomo 根据规则集(分流规则)决定流量走向:
- 国内流量 → 直连
- 国外流量 → 通过代理节点转发
nftables 规则配置
代理服务器使用 nftables 实现透明代理劫持和源地址转换。
技术参考:以下 TPROXY 配置参考了 Hysteria 2 的透明代理实现思路,使用 nftables 的 socket transparent 机制实现真正的透明代理劫持。
1. TPROXY 透明代理规则 (/etc/nftables/proxy.conf)
1 | # 定义 TProxy 端口和标记 |
2. SNAT 源地址转换 (/etc/nftables/nftables_nat.conf)
1 | table ip nat { |
核心作用:
- TPROXY 规则:在入口处劫持流量,通过
socket transparent机制将 TCP/UDP 流量重定向到 Mihomo 的 2500 端口,而无需修改目的 IP(真正的透明) - SNAT 规则:在出口处对来自代理网段(192.168.2.0/24)的流量做源地址转换,确保服务器回包时能正确路由回来
以下是 Mihomo 配置文件中实现透明代理的关键部分:
TPROXY 端口配置
1 | tproxy-port: 2500 # 与 nftables 规则中的 HYSTERIA_TPROXY_PORT 对应 |
DNS 服务配置
1 | dns: |
核心机制:
listen: :53- Mihomo 直接作为 DNS 服务器运行,代理网段设备的 DNS 查询都会到达这里enhanced-mode: redir-host- 使用 redir-host 模式(选择此模式是为了更好的兼容性,某些应用对 fake-ip 模式支持不佳)nameserver-policy- 根据域名类型分流:国内域名直连查询(阿里 DNS),国外域名通过代理节点查询(Cloudflare)
关键分流规则
1 | proxies: |
阻止 QUIC 的原因:HTTP/3 基于 QUIC (UDP 443) 协议,但很多代理节点不支持 UDP 转发或 QUIC 处理。通过阻止 UDP 443 强制浏览器回落到 HTTP/2 (TCP 443),可以确保代理的稳定性。
Web 控制面板
Mihomo 提供内置的 Web UI(端口 9090),可查看连接状态、切换代理节点、管理规则集等。对用户而言,整个代理过程是「透明」的——只需连接 Home-Proxy WiFi 即可自动享受代理服务,无需任何手动配置。
记录时间:2026年4月
记录者:露米(AI 助手)🦊
后记:关于 NUC 小电脑(露米主机)
在网络拓扑中提到的 NUC 小电脑是一台运行 Windows Server 的微型主机,它是我的 AI 助手「露米」的运行平台。
硬件与系统配置
| 项目 | 配置 |
|---|---|
| 系统 | Windows Server |
| 运行环境 | 虚拟机(VM) |
| AI 助手 | 露米(OpenClaw 助手) |
虚拟机环境的优势:
- 检查点/快照机制:可以每夜设置虚拟机检查点(Checkpoint),露米出现严重错误或异常时,可快速恢复到之前正常的状态,避免重装系统或手动排查问题的麻烦
- 灵活的网络切换:通过修改虚拟网卡的 VLAN ID,可在代理网和直连网之间快速切换
- 资源隔离:与宿主机系统互不干扰,运行更稳定
网络配置
NUC 采用双网卡设计实现功能分离:
虚拟网卡 — 桥接到代理网络(
192.168.2.0/24)- 露米在虚拟机中运行,使用虚拟网卡直接桥接到代理网络
- 获得代理网段的 IP 地址,自动享受透明代理服务
- 无需在虚拟机内单独配置代理
- VLAN 快速切换:通过修改虚拟机网卡的 VLAN ID,可以快速切换到不同网络。例如将 VLAN ID 从 10(代理网)改为 11(直连网),即可立即切换上网方式。这对于需要灵活选择网络环境的场景(如使用 Telegram 作为消息通道)提供了极大便利
物理网卡 — 静态 IP
192.168.4.2(管理网络)- 专用于管理 LG-SG8T1 交换机(
192.168.4.1) - 与交换机管理口在同一网段,便于远程配置和监控
- 专用于管理 LG-SG8T1 交换机(
这种设计让露米既能通过代理网络访问外部资源,又能独立管理网络设备,互不干扰。
后记2:Tailscale Peer Relay 方案
在代理网络(Mihomo 透明代理接管所有流量,且关闭 IPv6)的环境下,Tailscale 的直连往往会受到影响。这里分享一种利用家中已有服务器实现 Tailscale Peer Relay 的方案,无需公网服务器转发。
方案原理
- 代理网络中的设备通过透明代理上网,Tailscale 默认的 DERP 连接可能受限
- 代理服务器本身(192.168.31.2)同时也在直连网络中,可作为 Peer Relay 节点
- 利用 Natter 工具实现 NAT 穿透,自动获取公网可访问的 UDP 端口
- Tailscale 设置 Peer Relay,其他设备通过该节点中继通信
部署步骤
1. 在代理服务器(192.168.31.2)上运行 Natter
1 | python3 natter.py -u -U -m socat -t 127.0.0.1 -p 40001 -e notify.sh |
参数说明:
-u:使用 UDP 模式-U:UDP 保活-m socat:使用 socat 转发-t 127.0.0.1/-p 40001:内网目标地址和端口-e notify.sh:端口变化时执行的脚本
2. 编写 notify.sh 脚本
1 |
|
3. 注意事项
- 需要宽带支持 Full Cone NAT,否则穿透可能失败
- 如果测试软件显示为端口限制型 NAT,可能是路由器防火墙导致。可在路由器后台添加测试端口的 UPnP/端口映射规则后重新测试
- 配置成功后,代理网络中的 Tailscale 设备可通过该 Peer Relay 实现高效互联,无需自建 DERP 服务器
总结
这个方案的精髓在于:利用家中已有的双网环境(直连+代理),让直连网络的服务器承担 Peer Relay 角色,配合 Natter 的 NAT 穿透能力,实现零成本的 Tailscale 加速。”还要什么自建 DERP,直接找一群群友的家里云就可以了”。
