你可以从该 URL 下载这个配置文件: http://surge.run/config-example/ios.conf

用编辑器编辑后,再通过 iTunes, URL, AirDrop 或者 iCloud Drive 复制回 iOS 设备

一、General

loglevel = notify
#日志等级: warning, notify, info, verbose (默认值: notify)

skip-proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, localhost, *.local
# 跳过某个域名或者 IP 段,这些目标主机将不会由 Surge Proxy 处理。(在 macOS 版本中,如果启用了 Set as System Proxy, 那么这些值会被写入到系统网络代理设置中.)

dns-server = 8.8.8.8, 8.8.4.4
# 强制使用特定的 DNS 服务器

externalControllerAccess = apassword@127.0.0.1:8888
# 允许外部控制器访问 Surge, 如 Surge-CLI。

bypass-system = 1
# 以下参数仅供 iOS 版本使用
# 将系统相关请求交给 Surge TUN 处理,并自动追加规则
# “IP-CIDR,17.0.0.0/8,DIRECT,no-resolve”

bypass-tun = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
# 将特定 IP 段跳过 Surge TUN,详见 Manual

replica = false
# 是否截取并保存 HTTP 流量 (启用后将对性能有较大影响) (默认值: false)

ipv6 = false
# 是否启动完整的 IPv6 支持 (默认值: false)

interface = 0.0.0.0
# 以下参数仅供 macOS 版本使用
# 监听地址 (默认值: 127.0.0.1)

port = 6152
# HTTP 服务端口 (默认值: 6152)

socks = 6153
# SOCKS5 服务端口 (默认值: 6153)

 

二、Proxy

ProxyHTTP = http, 1.2.3.4, 443, username, password, skip-common-name-verify=false
ProxyHTTPS = http, 1.2.3.4, 443, username, password, tls=true (等价于 “https, 1.2.3.4, 443, username, password”)
ProxySOCKS5 = socks5, 1.2.3.4, 443, username, password
ProxySOCKS5TLS = socks5, 1.2.3.4, 443, username, password, tls=true
# 该段定义了可用的代理策略

1.针对所有类型代理的选项:

interface: 可选 (默认值: null)

强制使用特定的出口地址或网络设备 (仅 macOS 版可用)

例如: ProxyHTTP = http, 1.2.3.4, 443, username, password, interface = en2
en1 = direct, interface = en1

2.针对启用了 TLS 的代理的选项:

skip-common-name-verify: “true” 或 “false” (默认值: false)

如果启动该选择, Surge 不会校验证书名是否符合。

 

三、Proxy Group

SelectGroup = select, ProxyHTTP, ProxyHTTPS, DIRECT, REJECT
AutoTestGroup = url-test, ProxySOCKS5, ProxySOCKS5TLS, url = http://www.gstatic.com/generate_204
SSIDGroup = ssid, default = ProxyHTTP, cellular = ProxyHTTP, SSIDName = ProxySOCKS5
# 该段定义了可用的策略组

一个策略组可以包括多个子策略,子策略可以是一个代理策略,或者另一个策略组,或者是一个内置策略 (DIRECT 或 REJECT)。

有 3 种策略组类型:”select”, “url-test” 和 “ssid”

  • select: 具体哪个子策略将被使用,由用户界面上进行选择。
  • url-test: 具体哪个子策略将被使用,通过测试到具体 URL 的访问速度选择
  • ssid: 具体哪个子策略将被使用,根据 Wi-FI 的 SSID 决定

参数1:

  • url: 必填(测试时用到的目标 URL)
  • default: 必填,默认策略

参数2:

  • interval: 可选, 毫秒 (默认值: 600ms),指定在多长时间后,上次的测试结果将被抛弃。
  • tolerance: 可选, 毫秒 (默认值: 100ms),只有当新的优选线路,比原优选线路的响应时间,大于该值的时候,才会触发线路变更。
  • timeout: 可选, 秒 (默认值: 5s),如果某策略在该时间后依然没有完成,放弃该策略。
  • cellular: 可选,在数据网络下的策略。 若不填,那么默认策略将被使用。

 

四、Rule

DOMAIN-SUFFIX,appldnld.apple.com,DIRECT
DOMAIN-SUFFIX,adcdownload.apple.com,DIRECT
DOMAIN-SUFFIX,swcdn.apple.com,DIRECT
DOMAIN-SUFFIX,phobos.apple.com,DIRECT

DOMAIN-KEYWORD,google,ProxyHTTP,force-remote-dns
DOMAIN-KEYWORD,facebook,SelectGroup
DOMAIN-KEYWORD,blogspot,AutoTestGroup
DOMAIN-KEYWORD,youtube,SSIDGroup

DOMAIN-SUFFIX,apple.com,ProxyHTTPS
DOMAIN-SUFFIX,ad.com,REJECT

IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
IP-CIDR,10.0.0.0/8,DIRECT
IP-CIDR,172.16.0.0/12,DIRECT
IP-CIDR,127.0.0.0/8,DIRECT

GEOIP,CN,DIRECT
FINAL,ProxyHTTP
# 该段定义了请求处理规则

一个规则有三个基础部分:

类型 策略
DOMAIN-SUFFIX, apple.com, DIRECT
IP-CIDR, 192.168.0.0/16, ProxyA

 

有 2 种基于 IP 的规则: “IP-CIDR” and “GEOIP”。

如果是一个使用域名进行访问的请求,那么 Surge 将进行 DNS 查询以确认是否应该被该规则匹配. 若 DNS 查询失败,将放弃规则匹配过程并直接给出错误。

参数:

  • force-remote-dns: 可选 (默认值: false),如果某请求被该规则匹配, 且策略不是DIRECT. 那么 DNS 查询将永远在远端代理服务器执行, 即使该请求由 Surge TUN 处理.
  • no-resolve: 可选 (默认值: false),如果是一个使用域名进行访问的请求,跳过该条规则,不触发 DNS 查询。

 

五、Host

abc.com = 1.2.3.4
*.dev = 6.7.8.9
foo.com = bar.com
# 该段定义了本地 DNS 记录

该功能等同于 /etc/hosts,加上了泛解析和别名支持。

 

六、URL Rewrite

^http://www.google.cn http://www.google.com header
^http://yachen.com https://yach.me 302
# 该段定义了针对 HTTP 请求的 URL 重定向规则

有两种重定向方式: “header” 和 “302”

1.Header 模式

Surge 会修改发出的 http header,必要时还会修改 Host 字段。客户端将感知不到这个重定向过程. 不支持重定向到一个 HTTPS 的地址。

2.302 模式

Surge 直接简单的返回一个 302 重定向回应。

 

七、SSID Setting

“SSID Here” suspend=true
# 该段仅在 iOS 版本下生效。你可以为某些特定的“ WiFi 网络设置”设置参数

参数:

suspend: “true” 或 “false”,在该网络下 Surge 将暂停工作。 请注意,如果你在该网络下直接启动 Surge,那么Surge 依然会工作。只有当从其他网络切换到该网络时,Surge 才会暂停。

 

参考:Yachen Liu‘s github