如何让家里的设备都爽快用上AI
为什么要这么折腾
家里设备越来越多以后,网络问题通常不是“能不能上网”,而是这些小麻烦:
手机,电脑要想都用上好用的AI,都要跑自己的科学上网程序,很麻烦,需要单独设置。
之前家里的主路由是一个J4215,安装了iStore,总感觉差点意思。
偶尔需要从外面远程回家里的 Windows 主机。
最后我选择的思路很简单:
主路由只做它擅长的基础网络,小主机做“聪明”的部分。
最终选择了购入一个中兴星云Max有线路由,5口全是2.5G,为后续升级留下了一点空间。
最终分工
局域网使用 192.168.50.0/24:
光猫:桥接,放弱电箱
中兴主路由(192.168.50.1):拨号,DHCP,管理AP,端口转发,放弱电箱
NAS(192.168.50.20):连接主路由器,放弱电箱
J4215小主机(192.168.50.10):做默认网关,Docker,Mihomo,自身网关设置为192.168.50.1
2个中兴AX3000路由器(192.168.50.50,192.168.50.51):设置桥接AP模式,连接到主路由
其他物联网设备,固定IP地址,网关设置为192.168.50.1
主力PC,Mac,手机,Pad,电视:DHCP分配,网关/DNS设置为:192.168.50.10
主路由怎么设
中兴主路由继续做主路由,不改成桥接,也不把所有能力塞到小主机里。
这套网络里的“2.5G 交换网络”不是额外买一台交换机,而是由中兴主路由自身的多个 2.5G LAN 口承担。NAS、J4215 小主机、AP 或主力 PC 能直接接到这些 LAN 口上,实际效果就是一条家用 2.5G 有线骨干。
DHCP 这里最关键:
项目 配置 DHCP 开启 默认网关 192.168.50.10 DNS1 223.5.5.5 DNS2 119.29.29.29
这样新设备一连上家里的 Wi-Fi,就会自动把 J4215 当网关,不需要在手机、电脑、电视上逐个设置代理。
如果家里还有其他路由器当 AP,用 AP 模式即可,并关闭 DHCP、NAT、UPnP,避免双 NAT。
另外,针对不需要走代理的物联网设备,都固定绑定Mac地址分配固定IP和网关192.168.50.1
J4215 Debian 负责“聪明”的部分
系统用 Debian 13 XFCE。它足够稳定,Docker 生态成熟,也适合兼顾 HTPC。
Debian 上必须打开 IPv4 转发:
net.ipv4.ip_forward=1
我的做法是关闭 IPv6,减少 TUN、Fake-IP 和多路由混在一起时的排障变量:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
这里有一个容易踩的坑:Debian 宿主机自己的 DNS 不要指向 Mihomo 的 Fake-IP DNS。宿主机建议使用主路由:
nameserver 192.168.50.1
原因是 Fake-IP 适合给客户端和代理链路使用,不适合污染宿主机自己的解析环境。
Mihomo:负责透明代理
Mihomo 使用 Docker host 网络,开启 TUN:
tun: enable: true stack: system auto-route: true auto-detect-interface: true
常用端口:
服务 端口 代理 mixed-port 7890 Mihomo DNS 7874 控制 API 9090
规则上,国内流量直连,其余走代理组即可,具体可以自己查
验证方式:
dig @127.0.0.1 -p 7874 google.com curl -x http://127.0.0.1:7890 https://ip.sb
最终的拓扑如下:


公网 RDP:真正的坑在策略路由
我还需要从外面远程连接家里的 Windows 主机。链路是这样:
路由器端口转发:
公网 IP:3389 -> 192.168.50.10:3389
Debian 再把 RDP 转给 Windows:
sudo iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 192.168.50.21:3389 sudo iptables -A FORWARD -p tcp -d 192.168.50.21 --dport 3389 -j ACCEPT sudo iptables -A FORWARD -p tcp -s 192.168.50.21 --sport 3389 -j ACCEPT sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.50.21 --dport 3389 -j MASQUERADE
一开始看起来 DNAT、FORWARD、Windows RDP 都正常,但外网就是连不上。抓包能看到 Meta In、Meta Out、RST,根因是 Mihomo TUN 和 policy routing 接管了 3389 流量。
很多人第一反应会写:
- DST-PORT,3389,DIRECT
但这不够。DIRECT 只是代理策略,不等于绕过 Linux policy routing。
最终有效的是给 3389 加更高优先级的主路由表规则:
sudo ip rule add ipproto tcp sport 3389 lookup main priority 100 sudo ip rule add ipproto tcp dport 3389 lookup main priority 101
持久化可以做成 systemd oneshot 服务:
[Unit] Description=RDP bypass Mihomo policy routing After=network-online.target Wants=network-online.target [Service] Type=oneshot ExecStartPre=-/usr/sbin/ip rule del ipproto tcp sport 3389 lookup main priority 100 ExecStartPre=-/usr/sbin/ip rule del ipproto tcp dport 3389 lookup main priority 101 ExecStart=/usr/sbin/ip rule add ipproto tcp sport 3389 lookup main priority 100 ExecStart=/usr/sbin/ip rule add ipproto tcp dport 3389 lookup main priority 101 RemainAfterExit=yes [Install] WantedBy=multi-user.target
再执行:
sudo systemctl daemon-reload sudo systemctl enable --now rdp-bypass

安全提醒:公网开放 RDP 风险很高,更推荐先走 VPN 或限制来源 IP。确实要开放时,至少开启强密码、NLA、防火墙限制和失败登录保护。
日常验证清单
检查项 怎么看 代理出口 curl ip.sb,应看到代理出口 IP RDP DNAT sudo iptables -t nat -L PREROUTING -n -v 看 3389 计数增长 策略路由 ip rule 里应有 priority 100/101 的 main 规则
我认为最值得保留的原则
这套方案不是把所有东西都塞进一个 All-In-One OpenWrt,而是把职责拆清楚:
主路由稳定优先,只管基础网络。
Debian 小主机做网关、代理和服务承载。
AP 只做 AP,避免双 NAT。
RDP 这种入站流量不要指望 DIRECT,要从 Linux 路由规则层面处理。
最终体验是:家里设备正常连 Wi-Fi 就能自动使用透明代理;NAS、PC、电视走主路由内置 2.5G LAN 口形成的有线骨干;需要远程回家时,也不会被 Mihomo TUN 的策略路由误伤。对普通家庭来说,这比“每台设备单独折腾”舒服很多。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

亚蕾克斯
校验提示文案
沧海又一笑
校验提示文案
PlutoQTN
校验提示文案
PlutoQTN
校验提示文案
沧海又一笑
校验提示文案
亚蕾克斯
校验提示文案