Surge 远程代理访问与网关模式

内容纲要

查看【Surge】专题可浏览更多内容

远程代理访问 / Wi-Fi 访问

Surge 可以作为一个标准的 HTTP/SOCKS5 代理服务器向 Wi-Fi 网络下的其他设备提供服务器。

iOS 版 Surge 的 Wi-Fi 访问

在 iOS 版 Surge 中,「允许 Wi-Fi 访问」默认关闭,可以将其改为 true 或在图形界面(「首页」底部的「更多设置 >」)中开启,在图形界面中还可以很方便的看到当前 Wi-Fi IP 地址。

  • 默认 HTTP 代理端口:6152
  • 默认 SOCKS5 代理端口:6153
[General]
allow-wifi-access = false
wifi-access-http-port = 6152
wifi-access-socks5-port = 6153

macOS 版 Surge 的远程代理访问

在 macOS 版 Surge 中是否「允许远程访问」由监听地址所决定:

  • 127.0.0.1:不允许远程访问
  • 0.0.0.0:允许远程访问。
[General]
http-listen = 127.0.0.1:6152
socks5-listen = 127.0.0.1:6153

因默认端口就是 6152 和 6153,所以如果没有更改默认端口,配置会简写成 127.0.0.10.0.0.0,如果需要自定义其他端口可如上示例(或在图形界面中添加)。

该功能还可配合 IN-PORT 类型规则使用。

网关(路由)模式

可以使用搭载 macOS 版 Surge 的 Mac 当作网关接管其他设备的所有网络请求。

使用「网关模式」需启动「增强模式」,然后修改其他设备上的网络设置:

  • IP 地址及子网掩码不变;
  • 网关设置成 Surge Mac 所在机器的 IP地址(如果使用 Wi-Fi 可按下 option ⌥ 时点击顶部 Wi-Fi 图标快速查看 IP 地址);
  • DNS 设置成 192.0.2.2(或 198.18.0.2);

在 Surge Mac 4 中,你可以关掉路由器的 DHCP 功能然后开启 Surge 的 DHCP 功能就可以不用手动操作以上步骤(该功能在「设备」选项的底部)。

Surge 远程代理访问与网关模式

同理而言(如果你仍在使用旧版本的 Surge Mac),可以在路由器的 DHCP 功能设置网关为你的 Mac 的 IP 地址以及 DNS 设置为 192.0.2.2(或 198.18.0.2),如此亦可以做到不用手动修改局域网内其他设备的网络设置。

解决「由于网络负载严重过高,系统网络缓冲区已满...」的问题

在使用 Surge 的增强模式或网关模式时,如果有客户端使用 P2P 技术巨量的建立连接(如 BT 下载),可能导致 Surge 出现异常。表现为 Surge 无响应、整个系统无网络、Dashboard 无法连接等等,而且该问题可能只能靠手动重启 Surge 恢复。

引发该问题的原因是 macOS 有固定尺寸的网络栈内存缓冲区(约 256MB),一旦网络栈内存耗尽,为保证系统不崩溃,便会关闭目前网络栈使用量最高的程序的所有 socket,导致 Surge 无法继续工作且无法恢复。

在 Surge 里你会看到这样的 WARN:「由于网络负载严重过高,系统网络缓冲区已满,Surge 已被系统强行停止,Surge 已自带重新启动并启动安全模式。」

可以使用以下命令提高系统的网络栈内存缓冲区至 512MB,并开启服务器性能模式,当使用 Surge 作为网关时推荐开启:

sudo nvram boot-args="serverperfmode=1 ncl=262144"

注:对于 M1/M2 设备,需要进入恢复模式将安全级别调至中等,并关闭 SIP(csrutil disable),重启进入 macOS 后再执行上述命令。


参考