Surge Mac as Gateway
TL;DR
升级到 2.6.0 Beta 版本开启 Enhanced Mode,子网内其他设备网关设置为 Mac 的 IP,DNS 设置为 198.18.0.2。
以下是完整说明。
— — — — — — — — — —
先前版本中 Surge Mac 只支持以 HTTP/SOCKS5 代理方式向 LAN 内其他设备提供服务,但是代理方式有一些明显弊端,如:
- 代理协议本身不支持 UDP;
- 很多设备不支持配置代理;
- 部分支持配置代理的设备,也有很多流量不走代理;
- 部分设备走代理会出现连接异常断开的问题(如 Apple TV 和 PS4);
对于这些设备,最好还是以配置网关的形式去接管流量,但是大部分软件实现上都是 IP 层单纯转发+NAT,一没有考虑 DNS 处理,二不支持复杂规则。实际用起来有会遇到很多问题。
macOS 10.13 后完善了 Kernel 的转发机制,使得 Surge Mac 也可以用来当做网关了。详细操作方式如下:
- 升级到 2.6.0 Beta 版本,该版本 Helper 已升级,会提示重新安装;
- 使用静态 IP 或者 DHCP 固定住 Mac 的 IP 地址;推荐在内网内单独用一个设备当做网关以避免干扰;
- 开启 Enhanced Mode;
- 修改需要接管流量的设备的网络设置,将网关地址设置为 Surge Mac 设备的地址,DNS 地址修改为 198.18.0.2;
- 观察 Surge Dashboard 里是否可以看到对应流量。
测试系统版本为 macOS 10.13.4,请反馈其他系统的测试情况。
另外还可以配置独立的 SSID + VLAN + DHCP,实现自动化配置。
— — — — — — — — — —
另外有一些注意事项:
- Surge 会对所有 DNS 请求返回 198.18.X.X 的 IP,部分比较呆的设备在切换网络会不会去清空 DNS 缓存,如果设备换到另一个网络后不正常,请重启设备。
- 暂时还不支持 ICMP(ping)转发。