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.1
或 0.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 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 后再执行上述命令。
参考