内容纲要

🗂 | 本文目录: Surge 指南


接上一篇 Surge | 通用设置

本章节主要讲的是 [General] 区块下的内容,所以示例都以 [General] 开头表明其在 [General] 下,但不是让你每个功能字段前都加上 [General] 字段。

LogLevel

日志等级,默认为 notify

[General]
loglevel = notify

可选项有:

  • verbose
  • info
  • notify
  • warning

不建议在日常使用中启用 verbose,因为这会严重降低性能。

Show Reject Error Page

当遇到 REJECT 策略时显示错误页,这在之前讲「规则系统」的时候有提到。

[General]
show-error-page-for-reject = true

效果图:

Hijack DNS

默认情况下,Surge 只对发送到 Surge DNS 地址(198.18.0.2)的 DNS 查询返回 Fack IP 地址。发送到标准 DNS 的查询将被转发。

如 Google 系智能硬件产品会无视 DHCP 配置强行使用 8.8.8.88.8.4.4,需要配置 Surge 强行劫持才可以正常工作。

[General]
hijack-dns = 8.8.8.8:53

另外还可以使用 hijack-dns = *:53 来劫持所有的 DNS 查询。

Always Real IP

当 Surge VIF 处理 DNS 问题时,此选项要求 Surge 返回一个真正的 IP 地址,而不是一个 Fake IP。
DNS 数据包将被转发到上游 DNS 服务器。

例如由于游戏主机会使用 STUN 技术进行 NAT 穿透,需要进行一些额外的配置才能正常工作。

[General]
always-real-ip = msftconnecttest.com, msftncsi.com, *.msftconnecttest.com, *.msftncsi.com, *.srv.nintendo.net, *.stun.playstation.net, xbox.*.microsoft.com, *.xboxlive.com

TCP Force HTTP Hosts

使 Surge 将 TCP 连接视为 HTTP 请求。Surge HTTP 引擎将处理请求,并且所有高级功能都将可用,如截取、重写和脚本。

  • 支持通配符 *?
  • 使用前缀 - 排除主机名;
  • 默认情况下,只对 80 端口的请求进行处理(使用 example.com:443 指定端口或 example.com:0 表示所有端口);

例子

[General]
force-http-engine-hosts = example.com:80
  • -*.apple.com:排除所有发往 *.apple.com 上的 80 端口的请求;
  • www.google.com:对 www.google.com 上的 80 端口的请求强制使用 HTTP 处理;
  • www.google.com:8080:对 www.google.com 上的 8080 端口的请求强制使用 HTTP 处理;
  • www.google.com:0:对 www.google.com 上的所有端口的请求强制使用 HTTP 处理;
  • *:0:对所有主机名上的所有端口使用强制 HTTP 处理。

VIF Excluded Routes

Surge VIF 只能处理 TCP 和 UDP 协议。使用此选项绕过特定的 IP 范围,以允许所有流量通过。

⚠️ 注意:此选项仅适用于 Surge VIF。Surge 代理服务器处理的请求不受影响。将「skip-proxy」和「tun-excluded-routes」组合起来,以确保特定的 HTTP 流量绕过 Surge。
此选项可能导致系统错误 ENOMEM (无法分配内存)。这看起来像是 iOS 系统中的一个 bug。如果可能,请不要使用此选项。

[General]
tun-excluded-routes = 239.255.255.250/32

VIF Included Routes

默认情况下,Surge VIF 接口将自己声明为默认路由。但是,由于 Wi-Fi 接口的路由较小,一些流量可能无法通过 Surge VIF 接口。使用此选项可以添加较小的路由。

[General]
tun-included-routes = 192.168.1.12/32

参考