家庭网络部署心得

# 前言

近段时间都在家里办公,于是对家里的网络进行了几轮折腾,目前得到了一个比较满意的方案。

我的需求:

  • Mac 和 iPhone 需要无障碍上网,访问公司内网
  • Nvidia Shield TV(Android TV)需要无障碍上网,Netflix 流媒体畅通
  • NAS 需要无障碍上网
  • Switch 需要游戏高速下载,NAT 达到 A 联网游戏顺畅无比

为此,我经历了几个迭代的过程:

  • 第一阶段,几年前,我在华硕路由器上直接部署 ss,满足无障碍上网。由于没有灵活的规则,性能也不高,被我放弃了。
  • 第二阶段,了解到了软路由,使用 x86 设备解决 ARM 硬路由性能不佳问题。同时最近还出了个 Clash,类似 Surge 的跨平台网络工具。稳定性还差些,不能和 Surge 使用一样的配置,放弃。
  • 第三阶段,使用 Surge 的网关模式解决我的所有需求。

目前对第三阶段的方案很满意,底部的参考文章已经有比较详细的介绍了。 这里介绍的是我的具体方案。

我们需要准备以下内容:

  • 一台带 Wi-Fi 的路由器,我选择了华硕 AX88U
  • 一台可以 24h 运行 macOS 的主机,我选择了 Mac mini 2012
  • Surge Mac 版授权
  • 良好的服务商

# 开启 Surge 的网关模式

假定 Surge 的服务器和规则已经配置好,我们需要开启增强模式(Enhanced Mode)。 系统代理无需开启。

当前我的路由器 IP 地址为 192.168.50.1,Mac 的 IP 地址为 192.168.50.2

记得锁定 Mac 的 IP,可以在路由器上指定,也可以直接在 Mac 上设置。

将需要通过 Surge 走流量的设备更新网关和 DNS:

  • 网关 IP 从 192.168.50.1 改为 192.168.50.2(iOS 上对应选项为路由器)
  • DNS 设置为 198.18.0.2(这是 Surge 创建的 DNS 服务器地址)

Android TV 和 Switch 都可以在设备上直接设置使用,本文基本结束。

# 通过 DHCP 指定网关和 DNS

通过配置每个设备不太方便,同时也有一些设备不能设置网关。 我们通过 DHCP 服务为每个设备指定网关和 DNS。 DHCP 是个很重要的服务,所以这部分我交给路由器配置。 将华硕路由器固件改为梅林固件(我不确定官方固件是否可以使用 dnsmasq)。 dnsmasq 使用见底部参考文章。 如下配置即可为我的 Android TV 指定网关和 DNS:

dhcp-host={Android TV 的 mac 地址},set:shieldtv,192.168.50.22
dhcp-option=tag:shieldtv,option:router,{Mac 的 IP}
dhcp-option=tag:shieldtv,option:dns-server,198.18.0.2

示例:

dhcp-host=00:00:00:00:00,set:shieldtv,192.168.50.22
dhcp-option=tag:shieldtv,option:router,192.168.50.2
dhcp-option=tag:shieldtv,option:dns-server,198.18.0.2

这样一来就完成了设备无障碍上网的需求。 所有设备都通过 Surge 转发没有问题,但建议仅给需要的设备添加

目前我只给 NAS、Android TV、Android 手机、Switch 设置了 Surge 网关,而我的 iPhone、iPad、Mac 单独使用 Surge,避免网关挂了对我的 iPhone 产生影响,同时也为了能更改单一设备策略不会影响所有设备。

来个图片展示我的目前配置情况:

# 游戏加速

Switch 使用了 UDP,需要增加额外的配置。首先,代理节点要支持 UDP 转发。

增加配置:

[General]
always-real-ip = *.srv.nintendo.net

代理服务器配置增加 udp-relay=true

Gamer = ss, 1.1.1.1, 1, encrypt-method=rc4-md5, password=123, udp-relay=true

为单独设备(Switch)增加转发规则:

SRC-IP,192.168.50.159,Switch游戏

# 公司内网

VPN 和 Surge 共存配置比较复杂,所以我通过 Docker 做了一层“协议转换”,

参见:dianqk/openconnect-snell (opens new window),你也可以根据具体的内网协议编写自己的“协议转换”。

在 Mac 上部署好,添加配置和内网域名规则即可。

建议根据 Wi-Fi 自动切换匹配服务器:

[Proxy]
公司内网 = snell, 192.168.50.2, 123, psk=123, version=2, tfo=true

[Proxy Group]
🏗︎连接公司 = ssid, default = DIRECT, "AX88U" = 公司内网, "公司WIFI" = DIRECT

# 关于设备选择

路由器可以不换,随便用个都行,路由器没有完整的 DHCP 功能,可以在 Mac 上配置 DHCP 服务。 但好的路由器能带来不一样的体验,我推荐 AC86U、TUF AX3000、AX88U。 Mac 设备需要 24H 运行,建议选择稳定的 Mac mini,目前 2012 款可以正常安装 Catalina,价格也最便宜。我在闲鱼 1300 收了一个,更换了一个不用的 SSD,性能完全够用。 或者可以考虑上车 2009 款,闲鱼 200 拿下,体积小,能不能稳定使用就不清楚了。 也可以看看黑苹果,稳定性可能差一些,优势可以设置通电自启动。推荐 NUC8 i3、Deskmini,专业的垃圾佬肯定有更合适的选择。(或者可以看看 LattePanda Alpha,和 iPhone 大小一样的黑苹果)

参考文章: