# 参考 https://github.com/scomper/Surge/blob/master/surge3.conf.ini # 参考 https://gist.github.com/Blankwonder/dca87b84b1052f4a6a277dce73e9c01a # 官方手册 - https://manual.nssurge.com/ # 理解原理 - https://manual.nssurge.com/book/understanding-surge/cn/ # 帮助中心 - https://nssurge.zendesk.com/ # 技术社区 - https://community.nssurge.com # Surge 使用手册 - https://surge.mitsea.com/ # 以"#" ";" 和 "//" 开头的行为注释行 # 本配置主要参考https://github.com/BlueGrave 以及 https://divineengine.net/more/special/surge/ 特别感谢! # 本配置使用方法:在自动选择将“输入你的机场订阅链接”替换成你的机场提供的订阅网址即可。 [General] # 本配置不适合日常使用 # 通用 # Internet 测试 URL internet-test-url = http://captive.apple.com/generate_204 # 代理测速 URL proxy-test-url = http://cp.cloudflare.com/generate_204 # 测试超时(秒):Surge 将向该 URL 发送一个 HTTP HEAD 请求。测试只关心是否收到了返回数据,并不关心数据内容。仅支持 http:// 协议 test-timeout = 3 # UDP 代理转发测试指定:默认向 8.8.8.8 查询 apple.com,可使用 proxy-test-udp 参数修改,如 proxy-test-udp = google.com@1.1.1.1 # proxy-test-udp = google.com@1.1.1.1 # 增强版 Wi-Fi 助理 # Surge 会在 Wi-Fi 网络不佳时尝试使用数据网络建立连接。该功能将对所有连接生效,请仅当使用不限量的数据流量时开启。 wifi-assist = false # 混合网络:无论 Wi-Fi 信号如何,总是尝试并发使用 Wi-Fi 和数据网络连接。开启后,等同于对所有策略设置 hybrid = true,所有 TCP 连接在建立时均会并发尝试数据网络和 WiFi 连接,也就说如果不想对所有策略启用「混合网络」可以指定目标策略使用,如: # HYBRID = direct, hybrid=true # 但实际上可以不用这么写,因为 Surge 新增了两个内置策略: # HYBRID:等价于 HYBRID = direct, hybrid=true # NO-HYBRID :等价于 NO-HYBRID = direct, hybrid=off # 对于 DIRECT 的「混合网络」应用,可以使用直接使上述两个内置策略。 # 至于其他策略,「混合网络」的参数说明如下: # hybrid=auto:默认,使用全局设置也就是使用 [General] 下的 all-hybrid 设置; # hybrid=on 或 hybrid=true:对该策略启动并发连接; # hybrid=off:即使在 All Hybrid 或 WiFi Assist 开启时,有 WiFi 就不使用数据网络; # 除此之外,所有 DNS 查询操作也都将并发在数据网络和 WiFi 上进行。所以若想体验该功能,请手动配置公网 DNS,暂不支持 DOH。 # 该选项可显著改善在弱 Wi-Fi 和网络切换时的网络体验。该选项对所有 TCP 连接和 DNS 查询生效。请仅当使用不限量的数据流量套餐时开启。 all-hybrid = true # 「Wi-Fi 助理」和「混合网络」的区别: # WiFi Assist:使用 WiFi 尝试建立连接后,如果一秒钟内仍未完成,则再使用数据网络尝试连接。选择最先完成的 TCP 连接; # Hybrid:直接并发建立两个 TCP 连接,选择最先完成的 TCP 连接. # GeoIP 数据库,默认使用surge自带.Surge 默认是使用由 MaxMind 创建的 GeoLite2 数据库,但是它的信息不是那么的准确,从 Surge iOS 4.5.0 开始可以自定义 GeoIP 数据的 URL,需要为 MaxMind 的格式。 # 如果想使用第三方GeoIP,下面两个二选一即可,也可自行更换为其它第三方 # 在配置信息设置好 geoip-maxmind-url 后建议在图形界面打开「自动更新」开关(或者直接在图形界面中设置 URL 及开关) # geoip-maxmind-url = https://cdn.jsdelivr.net/gh/Hackl0us/GeoIP2-CN@release/Country.mmdb # geoip-maxmind-url = https://raw.githubusercontent.com/NobyDa/geoip/release/Private-GeoIP-CN.mmdb # GeoIP 禁用自动更新 disable-geoip-db-auto-update = false # 是否启动完整的 IPv6 支持 (默认值: false)参数:true:开启,false:关闭 ipv6 = false # Surge VIF IPv6 Stack # 允许 IPv6 通过 Surge VIF。当希望 Surge 处理连接到 IPv6 地址的原始 TCP 连接时非常有用。可选项:true,false,auto,always ipv6-vif = auto # ⚠️ 隐藏状态栏上的VPN图标,启动该选项可能导致「Cannot allocate memory」系统错误,请谨慎使用,本配置在开启IP v6选项时失效 # hide-vpn-icon = true # Wi-Fi 访问 # Surge 可以作为 HTTP/SOCKS5 代理服务器向 Wi-Fi 网络下的其他设备提供服务器 allow-wifi-access = false # Surge Mac 供外网访问的服务端口 # HTTP 服务端口 (默认值: 6152) # http-listen = 0.0.0.0:6152 # SOCKS5 服务端口 (默认值: 6153) # socks5-listen = 0.0.0.0:6153 # Surge iOS 供外网访问的服务端口 # HTTP 服务端口 (默认值: 6152) # wifi-access-http-port = 6152 # SOCKS5 服务端口 (默认值: 6153) # wifi-access-socks5-port = 6153 # 远程控制器 # 允许外部控制器访问 Surge,Surge Dashboard 或 Surge CLI 进行管理控制 # 默认仅允许外部控制器通过 USB 进行控制。如果想要允许由 Wi-Fi 控制可以将 127.0.0.1 改为 0.0.0.0 external-controller-access = zeaphyou@127.0.0.1:6170 http-api = zeaphyou@127.0.0.1:6171 # 使用HTTPS替代HTTP协议,需要先配置Mitm的CA证书,同时需要在客户端设备上手动安装并信任CA证书 http-api-tls = false # 页面控制器:通过页面控制Surge, Safari输入127.0.0.1:6171,填入HTTP-API密码即可。 http-api-web-dashboard = true # 允许热点共享 allow-hotspot-access = false # 该选项将使得发往这些域名或者 IP 段的请求由 Surge VIF 进行处理(而不是 Surge Proxy),该选项用于修正和某些应用的兼容性问题。该选项一般只用于处理某些特殊的兼容性问题,并不能使请求绕过 Surge。(对于 Surge Mac,如果未开启「增强模式」,确实可以绕过)。 # 若要指定一个域,请输入域名。如:apple.com; # 若要指定域中的所有网站,请在域名前使用 *,如:*apple.com; # 若要指定域的特定部分,请指定完整部分。如:store.apple.com; # 若要通过 IP 地址指定主机或网络,请输入特定的 IP 地址(如 192.168.2.11)或地址范围(如 192.168.2.* 或 192.168.2.0/24); # 注意:如果你输入一个 IP 地址或地址范围,你只能在使用该地址连接到该主机时绕过代理,而不能在通过解析到该地址的域名连接到主机时绕过代理。 # 已加入对部分检测代理的app的跳过 skip-proxy = 10.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.168.0.0/16, 224.0.0.0/3, ::1/128, fc00::/7, fd00::/8, fe80::/10, ff00::/8, 2001::/32, 2001:db8::/32, 2002::/16, ::ffff:0:0:0:0/1, ::ffff:128:0:0:0/1, localhost, *.local, passenger.t3go.cn, e.crashlytics.com, captive.apple.com, app.yinxiang.com, injections.adguard.org, local.adguard.org, cable.auth.com, www.baidu.com, yunbusiness.ccb.com,*.bankcomm.com,*.ccb.com,*.boc.cn # 代理接管优先 (原来的兼容性已经移除) # 使用 Surge 设置为系统代理的方式接管网络流量,该模式可降低开启 Surge 代理的额外开销,略微提升性能。但是部分 App 会检查系统代理设置,并在存在代理时拒绝工作。 # 开启后会将 compatibility-mode 修改为 1 ## [General] ## compatibility-mode = 1 ## 0: Auto(旧版本 Surge 下等于 1,新版本下等于 3) ## 1: System Proxy + VIF ## 2: System Proxy Only ## 3: VIF Only ## 4: System Proxy (via VIF) + VIF ##不使用 127.0.0.1 的回环地址作为代理,使用 VIF 的虚拟代理地址,将产生额外的性能开销 ## 5: System Proxy + VIF (No Default Route) ## 不声明为默认路由,但声明若干个小路由以覆盖所有地址(与 Surge Mac 增强模式行为相同)。 ## 这种配置下由于 VIF 不是主网络设备无法配置系统代理。部分应用在该模式下会认为 VPN 未开启以解决特殊兼容性问题,如 HomeKit Security Camera # FOR MAC # 当 Wi-Fi 不是首选网络时 SSID 组策略使用默认策略(仅 macOS 版可用) # use-default-policy-if-wifi-not-primary = false # macOS Only # enhanced-mode-by-rule = false # Network Framework # network-framework = false # DNS相关设置 # 传统 DNS 服务器设置 dns-server = 119.29.29.29,223.5.5.5 # 加密 DNS 服务器设置 encrypted-dns-server = https://doh.pub/dns-query # encrypted-dns-server = https://dns.alidns.com/dns-query # encrypted-dns-server = https://dns.google/dns-query # encrypted-dns-server = https://cloudflare-dns.com/dns-query # encrypted-dns-server = https://dns.adguard.com/dns-query # encrypted-dns-server = https://public.dns.iij.jp/dns-query # 实验性 DNS ove QUIC 支持 # encrypted-dns-server = quic://dns.adguard.com # encrypted-dns-server = h3://223.5.5.5/dns-query # 使加密 DNS 请求通过代理策略执行 encrypted-dns-follow-outbound-mode = false # 跳过证书验证 encrypted-dns-skip-cert-verification = false # (macOS 版本中,如果启用了 Set as System Proxy, 这些值会被写入到系统网络代理设置.) # 从 /etc/hosts 中读取 DNS 记录(MAC) # read-etc-hosts = true # 对使用代理的请求强制使用本地 DNS 映射结果 # 默认情况下,当使用代理策略时,DNS 解析永远在代理服务器进行。 # 开启该选项后,对于存在于本地 DNS 映射中的域名,Surge 将使用本地映射结果的 IP 地址进行代理请求,而不再使用原始域名。 # 仅对使用了 IP 地址的本地映射记录生效。 use-local-host-item-for-proxy = true # 本地 DNS 映射 # 该功能和 /etc/hosts 文件基本一致。 # 本地 DNS 映射位于 [Host] 字段下,格式为:域名 = IP 地址 # 除了直接指定主机名所对应的 IP 地址,还支持本地值指定域名、对特定域名自定义特定的 DNS 服务器。 # 以下是示例: # 通配符 # *.example.com = 1.1.1.1 # 通配符支持 * 和 ? # 本地值指定域名 # example.com = www.example.com # 这相当于 CNAME 记录。 # 使用特定的 DNS 服务器 # 如域名 example.com 及其子域名指定使用 DNS 服务器 119.29.29.29 来解析: # example.com = server:119.29.29.29 # *.example.com = server:119.29.29.29 # Surge 还支持配置部分域名回退到系统 DNS 解析: # example.com = server:syslib # 这可用于解决一些兼容性问题,比如一些 VPN 会利用 Split DNS 机制在系统中添加用于处理特定域名的 DNS 服务器,Surge 目前还不能支持这种复杂逻辑,可通过对 VPN 相关域名配置回退解决。 # TCP Force HTTP Hosts # 使 Surge 将 TCP 连接视为 HTTP 请求。Surge HTTP 引擎将处理请求,并且所有高级功能都将可用,如截取、重写和脚本。 # 支持通配符 * 及 ?; # 使用前缀 - 排除主机名; # 默认情况下,只对 80 端口的请求进行处理(使用 example.com:443 指定端口或 example.com:0 表示所有端口); # 表示匹配所有主机名为 IP 地址的连接; # 表示匹配所有主机名为 IPv4 地址的连接; # 表示匹配所有主机名为 IPv6 地址的连接; # 下面是一些示例: # -*.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 处理。 # KOOWO - 119.18.193.135, 122.14.246.33, 123.59.31.1, 175.102.178.52 # TencentVideo/Youku/iQiyi - 116.253.24.*, 124.193.*, 124.14*, 119.79*, 175.6.26.*, 211.162.*, 220.112.* 220.169.153.* force-http-engine-hosts = *.ott.cibntv.net, 119.18.193.135, 122.14.246.33, 123.59.31.1, 175.102.178.52, 116.253.24.*, 124.193.*, 124.14*, 119.79*, 175.6.26.*, 211.162.*, 220.112.* 220.169.153.* # Always Raw TCP Hosts # 用于强行关闭对特定主机名的主动协议探测,与 force-http-engine-hosts 参数的书写方法一致 # always-raw-tcp-hosts = example.com:80, :0 # Always Real IP Hosts # 当 Surge VIF 处理 DNS 问题时,此选项要求 Surge 返回一个真正的 IP 地址,而不是一个 Fake IP。 # DNS 数据包将被转发到上游 DNS 服务器。 # 例如由于游戏主机会使用 STUN 技术进行 NAT 穿透,需要进行一些额外的配置才能正常工作。 always-real-ip = *.lan, cable.auth.com, *.msftconnecttest.com, *.msftncsi.com, network-test.debian.org, detectportal.firefox.com, resolver1.opendns.com, *.srv.nintendo.net, *.stun.playstation.net, xbox.*.microsoft.com, *.xboxlive.com, stun.*, localhost.*.qq.com, *.logon.battlenet.com.cn, *.logon.battle.net, *.blzstatic.cn, music.163.com, *.music.163.com, *.126.net, musicapi.taihe.com, music.taihe.com, songsearch.kugou.com, trackercdn.kugou.com, *.kuwo.cn, api-jooxtt.sanook.com, api.joox.com, joox.com, y.qq.com, *.y.qq.com, streamoc.music.tc.qq.com, mobileoc.music.tc.qq.com, isure.stream.qqmusic.qq.com, dl.stream.qqmusic.qq.com, aqqmusic.tc.qq.com, amobile.music.tc.qq.com, *.xiami.com, *.music.migu.cn, music.migu.cn, proxy.golang.org, *.mcdn.bilivideo.cn, *.cmpassport.com, id6.me, open.e.189.cn, mdn.open.wo.cn, auth.wosms.cn, *.jegotrip.com.cn, *.icitymobile.mobi, *.pingan.com.cn, *.cmbchina.com, pool.ntp.org, *.pool.ntp.org, ntp.*.com, time.*.com, ntp?.*.com, time?.*.com, time.*.gov, time.*.edu.cn, *.ntp.org.cn, PDC._msDCS.*.*, DC._msDCS.*.*, GC._msDCS.*.*, speedtest.cros.wr.pvp.net # 在建立虚拟网卡时,Surge 会根据这两个选项加入额外的路由表,tun-excluded-routes 比较好理解,有些用户可能会问为什么会有 tun-included-routes 选项,不应该默认就包含了所有路由吗? # 这里需要补充一些网络知识,对于主流操作系统,路由表条目的优先级是按照条目的子网覆盖域决定的,覆盖越小的路由表条目优先级越高,而非按照先后或者上下的顺序。 # 所以,即使 Surge 的 VIF 配置了 0.0.0.0/0 的默认路由表条目,物理网卡本身存在当前子网的路由表条目(如 192.168.1.0/24),该条目覆盖域小优先级更高。所以所有发往 192.168.1.x 的网络连接依然不会被 Surge 接管。如果配置了 tun-included-routes = 192.168.1.100/32,那么这条路由表条目覆盖域最小优先级最高,使得发往该 IP 的网络连接也能被 Surge 接管。 # VIF Excluded Routes # Surge VIF 只能处理 TCP 和 UDP 协议。使用此选项可以绕过特定的 IP 范围,允许所有流量通过。 # ⚠️ 注意:此选项仅适用于 Surge VIF。Surge 代理服务器处理的请求不受影响。将「skip-proxy」和「tun-excluded-routes」组合起来,以确保特定的 HTTP 流量绕过 Surge。 # 此选项可能导致系统错误 ENOMEM (无法分配内存)。这看起来像是 iOS 系统中的一个 bug。如果可能,请不要使用此选项。 # tun-excluded-routes = 239.255.255.250/32 # VIF Included Routes # 默认情况下,Surge VIF 接口会声明自己是默认路由。但是,由于 Wi-Fi 接口的路由较小,有些流量可能不会通过 Surge VIF 接口。使用此选项可以添加一条较小的路由。 # tun-included-routes = 192.168.1.12/32 # 路由防火墙 # 包含所有的网络请求 # include-all-networks = false # 包含本地网络请求 # include-local-networks = false # 高级 # 日志等级: warning, notify, info, verbose (默认值: notify) # ⚠️ 不建议在日常使用中启用 verbose,因为这会严重降低性能。 loglevel = notify # 排除简单主机名 exclude-simple-hostnames = true # udp-policy-not-supported-behaviour 参数用于控制当 UDP 流量被匹配到一个不支持 UDP 转发的策略时的行为 # DIRECT:回退到 DIRECT 策略(默认) # REJECT:回退到 REJECT 策略 # 如一些海外游戏和语音使用 UDP 协议,而所使用的服务器不支持 UDP Relay 时,设置为 reject 将无法连接,但如果需要调整该参数的值为 direct,请务必清楚了解同一目标主机名 TCP 请求与 UDP 请求的源地址不同所造成的隐私及安全风险。 # udp-policy-not-supported-behaviour = REJECT # Hijack DNS # 默认情况下,Surge 只对发送到 Surge DNS 地址(198.18.0.2)的 DNS 查询返回 Fack IP 地址。发送到标准 DNS 的查询将被转发。 # 如 Google 系智能硬件产品会无视 DHCP 配置强行使用 8.8.8.8 和 8.8.4.4,需要配置 Surge 强行劫持才可以正常工作。 # 另外还可以使用 hijack-dns = *:53 来劫持所有的 DNS 查询。 hijack-dns = 8.8.8.8:53, 1.1.1.1:53, 8.8.4.4:53 # Show Reject Error Page # 当遇到 REJECT 策略时显示错误页 show-error-page-for-reject = true # 游戏优化模式 # 开启后会提高处理 UDP 流量的优先级,当系统负载高时会有比较明显的作用 (如高性能联机游戏) udp-priority = true # 新增两个参数(需要 iOS 16.4 以上版本) # include-apns :让 Surge 接管 Apple Push Notification service (APNs) 相关请求 # include-cellular-services:让 Surge 接管 VoLTE, Wi-Fi Calling, IMS, MMS, Visual Voicemail 等相关数据网络服务的请求 # 请注意,这两个选项仅应在有特殊需求时开启。正常情况下不应该开启以避免产生问题。 [Replica] # ---(实验性功能)--- # 0 为关闭,1 为开启 # 隐藏所有发往 *.Apple.com 和 *.icloud.com 的请求 # (该选项只是在抓取结果中隐藏了请求) hide-apple-request = 1 # 隐藏 Crashlytics 请求 hide-crash-reporter-request = 1 # 隐藏 UDP 会话 hide-udp = 0 # 关键词过滤器 # none(关闭关键词过滤器) / whitelist(blacklist(仅记录包含关键字的请求)) / blacklist(仅记录不包含关键字的请求) / pattern(匹配通配符的请求) keyword-filter-type = none # 关键词 # keyword-filter = (null) # ------ # 该段定义可用的代理策略 # 针对所有类型代理的选项: # interface: 可选 (默认值: null) # 强制使用特定的出口地址或网络设备 (仅 macOS 版可用) # 例如: ProxyHTTP = http, 1.2.3.4, 443, username, password, interface = en2 # en1 = direct, interface = en1 # 针对启用了 TLS 的代理的选项: # skip-common-name-verify: "true" 或 "false" (默认值: false) # 如果启动该选择, Surge 不会校验证书名是否符合 keyword-filter = * # 子网相关设置其实同时涉及到了规则和策略组所以单独摘出来了。 # 子网设置部分 [SSID Setting] # [SSID Setting] 使用子网表达式来匹配指定的网络并应用特定的设置: # 匹配 Wi-Fi 的 SSID:SSID:value; # 匹配 Wi-Fi 的 BSSID:BSSID:value; # 匹配路由的 IP 地址:ROUTER:value; # 匹配所有 Wi-Fi 网络:TYPE:WIFI; # 匹配所有有线网络:TYPE:WIRED; # 匹配所有蜂窝网络 (仅 iOS):TYPE:CELLULAR; # 匹配指定蜂窝网络 (仅 iOS):MCCMNC:100-200; # 另外,还支持通配符。 # Suspend # 在特定网络下禁用 Surge: # 例如: # [SSID Setting] # SSID:TP-Link suspend=true //示例,请勿启用 # MCCMNC:460-11 suspend=true //示例,请勿启用 # 如上示例在名为 TP-Link 的 Wi-Fi 或 MCC-MNC 代码为 460-11 的蜂窝网络时, Surge 都会临时禁用,它的表达式与子网策略组一样。 # 另外还支持通配符,如想在所有以 ChinaNet- 为开头的 Wi-Fi下临时禁用时,可以写作 SSID:ChinaNet-* suspend=true # Cellular Fallback # ⚠️ 仅 iOS 可用 # 控制特定 Wi-Fi 下的「Wi-Fi 助理」与「混合网络」的行为。 # cellular-fallback=default 使用全局设置中的「Wi-Fi 助理」和「混合网络」的设置; # cellular-fallback=off 关闭该网络的「Wi-Fi 助理」和「混合网络」; # cellular-fallback=hybrid 在该网络使用的「混合网络」设置; # cellular-fallback=wifi-assist 在该网络使用的「Wi-Fi 助理」设置; # TCP Fast Open Behaviour # tfo-behaviour=auto 使用默认的 TFO 行为; # tfo-behaviour=force-disabled 在该网络完全禁用 TFO; # tfo-behaviour=force-enabled 在该网络强制启用 TFO。使用该选项将使 Surge 忽略系统的 TFO 黑洞检测机制; # 中国用户若使用 TFO 建议强制关闭数据网络上的 TFO,避免产生问题,然后在已测试过的网络上强制开启。只有这样配置后方可充分享受 TFO 的优势。 # 强制关闭数据网络 TFO TYPE:CELLULAR tfo-behaviour=force-disabled # DNS # 该设置是对 [General] 段的覆盖,如果 [General] 中配置了 encrypted-dns-server,那么当仅修改 dns-server 时,将只会修改用于解析加密 DNS 服务器地址的传统 DNS 服务器设置,如果需要关闭加密 DNS 服务器,应显示声明 encrypted-dns-server=off。 # 子网策略组:Subnet # 从 Surge iOS 4.12.0 及 Surge Mac 4.0.5 开始,SSID 策略组升级为 Subnet 策略组。 # 可使用 MCCMNC:100-200 匹配特定数据网络 # 可使用 SSID:value 特定匹配 SSID,支持通配符 # 可使用 BSSID:value 特定匹配 BSSID,支持通配符 # 可使用 ROUTER:value 特定匹配路由地址 # 可使用 TYPE:WIFI 匹配所有 WiFi 网络 # 可使用 TYPE:CELLULAR 匹配所有数据网络 # 可使用 TYPE:WIRED 匹配所有有线网络(iOS 上支持 USB 网络适配器) # 如无前缀则按照旧版规则匹配 SSID、BSSID、路由地址 # SSID Setting 段内容从上至下依次匹配,匹配到第一个结果后立刻终止 # 增加了警告信息:由于 iOS 16.4 的新隐私策略,现在第三方应用无法获取数据网络服务商信息,MCC/MNC 的相关规则无法生效 # SSID部分完结 [Proxy] # 写法是 策略名 = 代理类型,代理地址,端口号,用户名,密码 # 不同的类型填写的具体项目会有差异,建议在 UI 界面中填写 # 策略名不可重复,策略名须先定义才能在其它部分引用 # Proxy01 = https,adc-us.com,443,username = 用户名,password = 密码 # Proxy02 = ss, abc-kt.com, 443, encrypt-method = rc4-md5, password = 密码 # Proxy03 = socks5, abc-cn.com, 443, username = 用户名, password = 密码 # 代理链 Proxy chain:可以通过一个代理跳板使用另一个代理,可以无限嵌套使用。 # ProxyB = trojan, example.com, 443, password=password1, skip-cert-verify=true, underlying-proxy=ProxyA/Proxies # 如上示例,在使用 ServerB 时是通过 ServerA 到 ServerB: # Surge <--> ProxyA/Proxies <--> ProxyB <--> Internet # Proxy = select, Auto, Proxy01 , Proxy02, Proxy03 # 内置策略 # DIRECT 表示将该请求直接发往目标服务器 # REJECT 表示拒绝该请求,当连接类型为 HTTP 时,会返回一个错误页面。(该行为可被 show-error-page-for-reject 参数控制) # REJECT-TINYGIF 表示拒绝该请求,当连接类型为 HTTP 时,返回一个 1px 的 GIF 图片响应。若为其他类型连接则直接断开。该策略主要用于 Web 广告屏蔽。 # REJECT-DROP 表示拒绝该请求,与 REJECT 不同的是,该策略将静默抛弃请求。因为部分程序有着十分暴力的重试逻辑,连接失败后会立刻进行重试,导致请求风暴。如果发往某主机名的请求短时间内大量触发 REJECT/REJECT-TINYGIF 策略(当前版本的阈值为 30 秒内 10 次),为了避免产生大量资源浪费,Surge 将自动升级策略为 REJECT-DROP 策略。 # REJECT-NO-DROP 表示不使用默认的自动丢包逻辑,这样 Surge 每次都会返回 ICMP Port Unreachable,应用会立刻回退而不是等超时。 # CELLULAR 表示优先使用数据网络; # CELLULAR-ONLY 表示仅使用数据网络; # HYBRID 表示尝试并发使用 Wi-Fi 和数据网络建立连接,仅当混合网络开关未开启时有意义。 # NO-HYBRID 表示当 Wi-Fi可用时永不尝试数据网络,仅当混合网络或 i-Fi 助力选项开启时有意义。 # - 新增 IPv4 & IPv6 偏好参数,对于所有策略,可附带参数 ip-version=,可选参数有: # * dual:默认行为,在双栈网络上将并发使用 v4 和 v6 地址并选取最快速的结果。 # * prefer-v4:若DNS解析获得了 A 与 AAAA 记录,优先使用 A 记录,否则使用 AAAA 记录。 # * prefer-v6:若DNS解析获得了 A 与 AAAA 记录,优先使用 AAAA 记录,否则使用 A 记录。 # * v4-only:仅使用 A 记录,若未获得A记录则失败。 # * v6-only:仅使用 AAAA 记录,若未获得 AAAA 记录则失败。 # 可配合 direct 类型策略使用,如:IPV6-ONLY = direct, ip-version=v6-only # DIRECT = direct, ip-version=prefer-v4 # HYBRID = direct, hybrid=true, ip-version=dual Warp+GSC = wireguard, section-name=WGgoGetSomeCats, test-url=http://cp.cloudflare.com/generate_204 WARP+GSCats = wireguard, section-name=GetSomeCats, test-url=http://cp.cloudflare.com/generate_204 [Proxy Group] # 策略组新增参数 external-policy-modifier,可用于对外部策略进行调整 # 例如 external-policy-modifier="tfo=true,test-url=http://www.apple.com/" 可开启 TFO 并修改测试 URL。 # 也可用于给外置策略配置 underlying-proxy。 # 服务器地址、用户名密码等基础信息不可被调整,其余参数均可被覆盖。 # 机场信息(encode地址链接: https://www.urlencoder.org) # 该段定义可用的策略组 # Surge 提供多种不同类型的策略组以满足各种场景的不同需求。 # 「代理策略」配置在配置文件的 [Proxy Group] 下面 # 有 5 种策略组类型: "select", "url-test","fallback","ssid" 和 "load-balance" # select: 具体哪个子策略将被使用,由用户界面上进行选择。 # url-test: 通过测试到某一个 URL 的访问确定延迟,并自动选择延迟最低的策略。 # 默认情况下使用 [General] 下的 proxy-test-url 设置的 URL 进行设置,Surge 将向该 URL 发送一个 HTTP HEAD 请求。测试只关心是否收到了返回数据,并不关心数据内容。仅支持 http:// 协议。 # 如想要对指定策略使用指定 URL 可以在该策略使用 test-url 参数设置(如上示例)。 # 参数: # url: 必填 # 测试时用到的目标 URL. # interval: 可选, 秒 (默认值: 600s) # 每次测试的间隔时间。指定在多长时间后,上次的测试结果将被抛弃。 # 所有类 url-test 组的测试时机为: # 首次使用时进行测试; # 后续使用该策略组时,如果上次测试的时间间隔已大于 interval 设置时间,则再次触发测试; # 当目前选中策略产生不可恢复性错误时,直接触发测试。 # 网络切换后,将清理之前的测试结果,当策略组被使用时触发首次测试。 # tolerance: 可选, 毫秒 (默认值: 100ms) # 容忍度(毫秒),仅当新测试的获胜策略超过旧获胜策略加上容忍度后再进行切换。如果某几个策略测试结果相差不大,那么会导致在这几个策略中频繁切换,如果策略的代理服务器的出口 IP 不同,可能会触发目标网站的风险控制。所以加入了容忍度设计,仅当新一次的测试结果中,最佳策略比原选中策略的延迟差大于容忍度时,才会切换至新的策略。 # timeout: 可选, 秒 (默认值: 5s) # 测试的最长等待时间,如果某策略在该时间后依然没有完成,放弃该策略。 # evaluate-before-use: 可选,true or false # 默认情况下,在首次使用策略组时将直接使用子策略中的第一个策略,同时触发延迟测试。如果配置了 evaluate-before-use=true,那么首次使用时将等待测试完毕后选择最佳策略 # URL 可用性自动测试策略组:Fallback # fallback: 具体哪个子策略将被使用,通过测试到具体 URL 的可用性决定 # 与 url-test 组基本一致,区别是只关心子策略是否可用而不关心具体延迟,然后从可用策略中选择靠前的策略。可以通过调小 timeout 参数将缓慢线路也标记为不可用。该类型没有 tolerance 参数。 # ssid: 具体哪个子策略将被使用,根据 Wi-FI 的 SSID 决定 # 参数: # default: 必填 # 默认策略。 # cellular: 可选 # 在数据网络下的策略。 若不填,那么默认策略将被使用。 # load-balance 策略组 # 负载均衡组,随机从子策略中选取一个策略使用。 # 当配置了 url 参数时,会按照 fallback 组的行为进行可用性检查,然后仅从可用的子策略中随机选取。 # 除 url、timeout、interval外,还有一个参数: # • persistent:当 persistent=true 时,对于同一目标主机名,将尽量使用同一个策略。避免因出口 IP 不同而触发目标网站的风险控制。但当可用性改变时可能导致策略变化。 # hidden=1,隐藏策略组 # 禁用组策略变化通知 # 若要禁用组策略变化的通知,可以在该策略组加上 no-alert=true # 外部代理列表 # 使用由代理服务商提供的代理列表,列表文件为一个纯文本,每一行包含一个代理声明。 # 也就是说可以将如下列示例的代理声明存成一个文本文件: # Server1 = socks5, 192.168.1.2, 1080 # Server2 = socks5, 192.168.1.3, 1080 # Server3 = socks5, 192.168.1.4, 1080 # 然后在策略组中使用: # Proxy = select, policy-path=https://www.example.com/Proxy.list # 除了 select 策略组,也可以使用 url-test 等策略组进行自动选择。 # 外部代理列表还有两个选项: # 自动更新间隔 # 可以使用 update-interval 来设置更新间隔,单位是秒,默认是 24 小时。 # Proxy = select, policy-path=https://www.example.com/Proxy.list, update-interval=86400 # 策略正则过滤器 # 可以使用 policy-regex-filter 选项来过滤代理列表,这是一个可选项,使用正则表达式匹配 # Proxy = select, policy-path=https://www.example.com/Proxy.list, update-interval=86400, policy-regex-filter=US # 如上述示例可以只保留「外部代理列表」中代理名称带有「US」的代理服务器。 # 包含本地或其他策略组的策略 # 该功能主要为针对策略组的两个参数:include-all-proxies 及 include-other-group,可与 policy-regex-filter 一起使用。 # 先说 include-all-proxies,它用于是否包含 [Proxy] 中的代理策略: # [Proxy] # Server1 = socks5, 192.168.1.2, 1080 # Server2 = socks5, 192.168.1.3, 1080 # Server3 = socks5, 192.168.1.4, 1080 # [Proxy Group] # PROXY = select, include-all-proxies=true # [Rule] # GEOIP,CN,DIRECT # FINAL,PROXY,dns-failed # 如上示例,当 include-all-proxies 设置为 true 或 1 时,PROXY 策略将包含 [Proxy] 下的三个策略 (等同于 PROXY = select, Server1, Server2, Server3),使用 include-all-proxies 后就可以不用手动一个个添加策略。 # 而 include-other-group 用于设置该策略组是否包含其他策略组的策略,假设有多个订阅服务器列表的策略组: # [Proxy Group] # PROXY = select, A, B # A = select, policy-path=https://www.example-a.com/Proxy.list # B = select, policy-path=https://www.example-b.com/Proxy.list # 按如上传统的做法,在选择代理服务时,先在图形菜单上的 PROXY 策略组下选择 A 列表或 B 列表,再到 A 或 B 列表下选择具体哪一个服务器。 # 那么如果想要在 PROXY 策略组下选择直接选择 A 与 B 列表里的所有服务器,就可以使用 include-other-group 参数: # [Proxy Group] # # 使用 include-other-group 直接使用使用某个策略组内的服务器节点 # PROXY = select, include-other-group="A,B" # # 使用 hidden=true 隐藏掉该策略组 # A = select, policy-path=https://www.example-a.com/Proxy.list, hidden=true # B = select, policy-path=https://www.example-b.com/Proxy.list, hidden=true # 如上就可以在 PROXY 直接选择 A 与 B 里的所有服务器了。 # 以下是subnet的一个示例: # 以代理服务器的选择模式实现广告的通过选择 # AdBlock = select, Ad-GIF,Ad-Block,Ad-Pass # 场景选择模式 # 缺省走 Auto;蜂窝网络走 Proxy01; # 接入 Wi-Fi 时走 Auto(SSIDNAME 改成需要判断的 Wi-Fi 的名称) # Scene = ssid, default = Auto, cellular = Proxy01, "SSIDNAME" = Auto # 自动选择代理 # Auto = fallback, Proxy01, Proxy02, Proxy03, url = http://www.bing.com/ # Video 策略群组的写法,将用于视频服务的代理放在一个群组(Netflix会判断代理的地域) # Video = url-test, policy-path=groupHK.list, url = http://www.bing.com/ # Video 策略组的简单写法,两种写法可选一个 # Video = url-test, Proxy02, Proxy03, url = http://www.bing.com # 节点筛选的正则 # 正则表达式筛选节点(区分大小写) # ❤️ 正则说明 # 如下,匹配以“http”开头的整行字符串 # ^http.*$ # 如下匹配任意含http的整行 # ^.*http.*$ # 以上,^ 符号的意思为从行首第一个字符开始匹配;而 .*$ 符号则表示匹配整行,不含双引号。 # ❤️ 正则例子 # A或者B # ^.*(A|B) # 有A有B # (A.*B|B.*A) # 不含A # ^(?!.*A) # 有A但不含B # ^(?!.*?B).*A # A和B同时有 # (?=.*A)(?=.*B) # 包含A、B、C的同时排除A、B、C和D、E、F各自互相组合的情况 # ^(?=.*A|B|C)(?!.*D|E|F).*$ # ❤️ Netflix 专用地区节点 # Netflix 新加坡节点 # ^(?=.*((?i)Netflix|NF|原生|解锁))(?=.*((?i)🇸🇬|新加坡|狮|(?i)SG|Singapore))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # Netflix 香港坡节点 # ^(?=.*((?i)Netflix|NF|原生|解锁))(?=.*((?i)🇭🇰|港|(?i)HK|Hong))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # Netflix 台湾节点 # ^(?=.*((?i)Netflix|NF|原生|解锁))(?=.*((?i)🇹🇼|台|(?i)TW|Tai))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # Netflix 日本节点 # ^(?=.*((?i)Netflix|NF|原生|解锁))(?=.*((?i)🇯🇵|日|川日|东京|大阪|泉日|埼玉|(?i)JP|Japan))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # Netflix 韩国节点 # ^(?=.*((?i)Netflix|NF|原生|解锁))(?=.*((?i)🇰🇷|韩|韓|首尔|(?i)KR|Korea))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # Netflix 美国节点 # ^(?=.*((?i)Netflix|NF|原生|解锁))(?=.*((?i)🇺🇸美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|US|United States))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # ❤️ 地区节点 # 游戏节点 # ^(?=.*((?i)游戏|GAME))(?!.*((?i)回国|校园|教育|久虚|IPV6)).*$ # 回国节点 # ^(?=.*(回国))(?!.*((?i)校园|教育|久虚|IPV6)).*$ # 香港节点 # ^(?=.*((?i)🇭🇰|港|虚通|HK|Hong))(?!.*((?i)回国|校园|游戏|教育|GAME|IPV6)).*$ # 澳门节点 # ^(?=.*((?i)🇲🇴|澳门|MO|Oman))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 台湾节点 # ^(?=.*((?i)🇹🇼|台|TW|Tai))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 日本节点 # ^(?=.*((?i)🇯🇵|日|川日|东京|大阪|泉日|埼玉|JP|Japan))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 韩国节点 # ^(?=.*((?i)🇰🇷|韩|韓|首尔|KR|Korea))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 新加坡节点 # ^(?=.*((?i)🇸🇬|新加坡|狮|SG|Singapore))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 美国节点 # ^(?=.*((?i)🇺🇸|美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|US|United States))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 加拿大节点 # ^(?=.*((?i)🇨🇦|加拿大|CA|Canada))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 俄罗斯节点 # ^(?=.*((?i)🇷🇺|俄|莫斯科|新西伯利亚|Новосиби́рская|Moscow|RU|Russia))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 英国节点 # ^(?=.*((?i)🇬🇧|英|伦敦|UK|United Kingdom))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 印度节点 # ^(?=.*((?i)🇮🇳|印|班加罗尔|孟买|Mumbai|IN|India))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 阿根廷节点 # ^(?=.*((?i)🇦🇷|阿根廷|AR|Argentinaia))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 土耳其节点 # ^(?=.*((?i)🇹🇷|土耳其|TR|TUR|Turkey))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 德国节点 # ^(?=.*((?i)🇩🇪|德|DE|Germany))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 荷兰节点 # ^(?=.*((?i)🇳🇱|荷|NL|Holland|Netherlands))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 澳大利亚节点 # ^(?=.*((?i)🇦🇺|澳大|AU|Australia))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 南非节点 # ^(?=.*((?i)🇿🇦|南非|ZA|South Africa))(?!.*((?i)回国|校园|游戏|教育|久虚|GAME|IPV6)).*$ # 全球节点(港🇭🇰澳🇲🇴台🇹🇼日🇯🇵韩🇰🇷新🇸🇬美🇺🇸) # ^(?=.*((?i)🇭🇰|🇲🇴|🇹🇼|🇯🇵|🇰🇷|🇸🇬|🇺🇸|虚通|港|台|澳门|新加坡|狮|日|川日|东京|大阪|泉日|埼玉|韩|韓|首尔|美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|接P|HK|Hong|TW|Tai|Oman|SG|Singapore|JP|Japan|KR|Korea|United States|MO|US))(?!.*((?i)回国|校园|游戏|教育|(?i)GAME|IPV6)).*$ # 策略组中还是尽量把各种流媒体的选择给列出来了,便于根据自己需要进行选择和增删 全球加速 = fallback, 香港节点, Warp+GSC, WARP+GSCats, 日本节点, 台湾节点, 狮城节点, 美国节点, 自动选择, no-alert=0, hidden=0, include-all-proxies=0 电报线路 = select, 狮城节点, Warp+GSC, 香港节点, 台湾节点, 日本节点, 美国节点, WARP+GSCats, no-alert=0, hidden=0, include-all-proxies=0 推特线路 = select, 日本节点, 美国节点, 狮城节点, 香港节点, 台湾节点, WARP+GSCats,Warp+GSC, no-alert=0, hidden=0, include-all-proxies=0 港台剧集 = select, DIRECT, 香港节点, 台湾节点, no-alert=0, hidden=0, include-all-proxies=0 油管影音 = select, 香港节点, 台湾节点, 狮城节点, 日本节点, Warp+GSC, 美国节点, 其它区域, WARP+GSCats, no-alert=0, hidden=0, include-all-proxies=0 奈飞剧集 = select, 狮城节点, 香港节点, 台湾节点, 日本节点, 美国节点, Warp+GSC, WARP+GSCats, 其它区域, no-alert=0, hidden=0, include-all-proxies=0 迪斯尼+ = select, 美国节点, 香港节点, 台湾节点, 狮城节点, 日本节点, Warp+GSC, WARP+GSCats, no-alert=0, hidden=0, include-all-proxies=0 PayPal = select, 自动选择, 香港节点, 台湾节点, 狮城节点, 日本节点, 美国节点,Warp+GSC, WARP+GSCats, no-alert=1, hidden=0, include-all-proxies=0 国际影视 = select, 自动选择, 香港节点, 台湾节点, 狮城节点, 日本节点, 美国节点,Warp+GSC, WARP+GSCats, no-alert=1, hidden=0, include-all-proxies=0 漏网之鱼 = select , 全球加速,Warp+GSC, WARP+GSCats, DIRECT, no-alert=1, hidden=0, include-all-proxies=0 狮城节点 = select, policy-regex-filter=坡|SG|🇸🇬|Singapore, no-alert=1, hidden=0, evaluate-before-use=true, include-all-proxies=0, include-other-group="自动选择", persistent=0 香港节点 = select, evaluate-before-use=true, policy-regex-filter=港|HK|Hong|hk|🇭🇰, no-alert=1, hidden=0, include-all-proxies=0, include-other-group="自动选择", persistent=0 台湾节点 = select, evaluate-before-use=true, policy-regex-filter=湾|TW|Taiwan|tw, no-alert=1, hidden=0, include-all-proxies=0, include-other-group="自动选择", persistent=0 日本节点 = select, policy-regex-filter=日|JP|Japan|🇯🇵, no-alert=1, evaluate-before-use=true, hidden=0, include-all-proxies=0, include-other-group="自动选择", persistent=0 美国节点 = select, policy-regex-filter=美|US|🇺🇸, no-alert=1, hidden=0, evaluate-before-use=true, include-all-proxies=0, include-other-group="自动选择", persistent=0 韩国节点 = select, policy-regex-filter=韩, no-alert=0, hidden=0, include-all-proxies=0, include-other-group="自动选择" 其它区域 = select, policy-regex-filter=^(?!.*(港|美|坡|韩|日|台|US|SG|JP|TW|HK)), no-alert=0, hidden=0, include-all-proxies=0, include-other-group="自动选择" 自动选择 = url-test, url=http://cp.cloudflare.com/generate_204, interval=3600, tolerance=50, update-interval=0, no-alert=1, hidden=0, include-all-proxies=0, policy-path=输入你的机场订阅链接 [Rule] # 规则定义部分 # 规则的组成 # 规则由四个部分组成: # <规则类型>,<内容条件>,<策略>,[参数] # Surge 使用规则系统来对选择每个连接的出口策略。规则的匹配方式为自上而下,逐一测试。最末尾规则一定是 FINAL 规则,当所有规则都不匹配时使用该规则。 # 标准规则 # DOMAIN 类型规则 # # 当请求的域名完全匹配时执行: # DOMAIN,www.baidu.com,REJECT // 屏蔽百度首页 # DOMAIN,baike.baidu.com,REJECT // 屏蔽百度百科 # DOMAIN,1.1.1.1,REJECT # # DOMAIN-SUFFIX类型规则 # # 当请求的域名的后缀匹配时执行: # DOMAIN-SUFFIX,doubleclick.net,REJECT // 屏蔽 doubleclick.net 及其子域名 # # DOMAIN-KEYWORD 类型规则 # # 当请求的域名包含关键词时执行: # DOMAIN-KEYWORD,adservice,REJECT # 刚接触 Surge 的朋友可能会有点迷茫于 DOMAIN-SUFFIX 类型规则到底和 DOMAIN 类型规则有什么不同,在如上示例中的 DOMAIN-SUFFIX,doubleclick.net,REJECT 相比使用 hosts 需要一条条的阻止域名,如: # 127.0.0.1 ad.doubleclick.net # 127.0.0.1 adx.g.doubleclick.net # 127.0.0.1 pubads.g.doubleclick.net # Surge 仅使用一条 DOMAIN-SUFFIX 类型规则,就可以对 doubleclick.net 及其子域名都做出了阻止。 # 💡 再看几个关于 DOMAIN-SUFFIX 的例子: # DOMAIN-SUFFIX,googleadsserving.cn 对于 googleadsserving.cn、www.googleadsserving.cn 都会生效,但 google-adsserving.cn 就不会(注意 -); # ads.example.com 本身及其子域名是广告,而 example.com 本身及其他子域名是正常内容就可以使用: DOMAIN-SUFFIX,ads.example.com,REJECT,所以并不是只能将一级域名用于 DOMAIN-SUFFIX; # 可以对域名后缀使用,如想对所有 .cn 后缀的域名都采取直连策略,那么可以使用:DOMAIN-SUFFIX,cn,DIRECT; # 遇到过 3 个类似 Surge 的应用都出现过对 DOMAIN-SUFFIX 设计的理解错误 # 另外,域名其实是主机名的一种形式,Surge 内部对域名和主机名并没有区分,所有文档所提到的域名和主机名所对应的处理逻辑都是一样的。比如,DOMAIN,1.2.3.4 规则其实也可以用于匹配目标主机为 IP 地址 1.2.3.4 的连接。DOMAIN,MacBook.local 也可用于匹配 Bonjour 主机名。 # 可选参数 extended-matching # 开启该参数后,该规则将同时尝试匹配 SNI 和 HTTP Host Header (或 :authority)中的字段。 # DOMAIN-SUFFIX,example.com,DIRECT,extended-matching # 如果想仅对 SNI 生效,可使用逻辑规则 AND 配合 PROTOCOL,HTTPS 规则。 # IP 类型规则 # 当目标主机名是一个域名或主机名时,IP 类型规则会触发本地 DNS 解析。根据解析得到的 IP 地址进行判断。当解析失败时:如果最终的 FINAL 规则带有 dns-failed 标记,那么将直接匹配 FINAL 规则。如果 FINAL 规则不带有 dns-failed 标记,该请求将直接失败。 # IP 类型规则有一个专有的参数 no-resolve,如果一个 IP 规则带有该参数,那么: # 如果目标主机名是一个域名,那么将跳过该规则,不触发 DNS 解析。 # 如果目标主机名是 IP 地址,按规则进行判断。 # 如果目标主机名是一个域名,且先前出现的 IP 规则已经触发了 DNS 解析获得了 IP 地址,那么使用该 IP 地址进行判断。 # 由于 DNS 查询有时间开销,所以在配置规则时,最优的方式是尽量先不触发 DNS 解析,将所有会触发 DNS 解析的规则放在底部。这样应使用代理策略的请求就完全避免了在本地进行 DNS 解析。 # 但是也不用刻意的去完全避免解析,因为一旦决定使用 DIRECT 策略,那么最终还是要进行解析。Surge 有完备的 DNS 缓存系统,不必在意短时间内的重复解析。 # 不过需要注意,如果某目标主机在本地 DNS 不可被解析,那么一定需要加入对应的规则,在触发 DNS 前就决定策略终止匹配。或者对 FINAL 规则加上 dns-failed 标记并使用代理策略。 # 以下部分为示例: # # # IP-CIDR 与 IP-CIDR6 类型规则 # # 当请求的目标 IP 属于指定段时执行: # #IP-CIDR,47.119.139.56/32,REJECT //示例,请勿启用 # #IP-CIDR6,2606:4700:4700::1001/128,CELLULAR //示例,请勿启用 # # GEOIP 类型规则 # # 当 IP 归属地地区符合时执行: # #GEOIP,CN,DIRECT //示例,请勿启用 # # IP-ASN 类型规则 # # 当 IP 属于 ASN 号时执行: # #IP-ASN,13335,CELLULAR //示例,请勿启用 # 如果不清楚 IP-CIDR 的 /32 与 /128,需要自行了解「CIDR」与「子网掩码」,可以搜索「子网掩码计算器」获得帮助; # IP 类型规则需要注意使用参数 no-resolve,在不执行 DNS 解析可以加上,如: # #IP-CIDR,1.2.3.4/32,CELLULAR,no-resolve //示例,请勿启用 # 在有 DOMAIN 类型规则之前使用 IP 类型规则时最好要加上 no-resolve 或将其移动到 DOMAIN 类型之后; # Surge 作者有提到不建议也没有必要使用 IP-ASN 类型规则进行地区分流; # 进程名类型规则 # # PROCESS-NAME 类型规则 # # 当请求的应用进程名符合时匹配,可匹配可执行文件的文件名或绝对路径,支持 * 和 ? 通配符: # PROCESS-NAME,/Applications/QQ.app/Contents/MacOS/QQ,DIRECT # PROCESS-NAME,QQ,DIRECT # 该类型规则仅 macOS 版 Surge 可用,iOS 版 Surge 会忽略。 # HTTP 类型规则 # # # USER-AGENT 类型规则 # # 当请求的 User Agent 符合时执行: # USER-AGENT,TIM*,DIRECT # # URL-REGEX 类型规则 # # 当请求的 URL 匹配正则表达式时执行: # URL-REGEX,^http://example.com/ads,REJECT # 关于 USER-AGENT 类型规则: # User Agent 可在 iOS 版 Surge 的「工具」>「最近请求」内的请求列表中找到想要的并进入某个请求,在「请求」选项卡下的「REQUEST HEADER」中可看到,如腾讯 TIM 的 User Agent 为:User-Agent: TIM/3.3.5.545 CFNetwork/1220.1 Darwin/20.3.0,可以使用通配符省去名字后面的内容,也就是:TIM*; # 在 iOS 15 之前,程序在使用 HTTP 代理时,会在发送 CONNECT 请求时带上自己 User Agent 的明文,而在 iOS 15 系统后,系统出于隐私保护考虑不再于 CONNECT 请求中提供 User-Agent,这意味着对于所有 HTTPS 请求,在未开启 MITM 时,User-Agent 均不可见且规则无法生效; # 逻辑规则 # AND # 与规则。当所有子规则都满足时,则执行该规则: # AND,((#Rule1), (#Rule2), (#Rule3)...),Policy # 例子 # # # 强制回退到 HTTP2/HTTP1.1 # AND,((PROTOCOL,UDP),(DEST-PORT,443)),REJECT-NO-DROP //示例,请勿启用 # # 拦截 Chrome 发出的 UDP 数据包 # AND,((PROCESS-NAME,Google Chrome),(PROTOCOL,UDP)),REJECT //示例,请勿启用 # 这两个例子的作用是针对目前 HTTP3/QUIC 协议开始流行,但国内 ISP 和国际出口的 UDP 优先级都很低,导致上网体验下降,用以强制回退到 HTTP2/HTTP1.1。 # 关于这个问题也可以在浏览器内进行设置,以关闭 QUIC 特性:《浏览器 | 关闭 HTTP/3 (QUIC) 特性》 # OR # 或规则。当任意子规则满足时,则执行该规则: # OR,((#Rule1), (#Rule2), (#Rule3)...),Policy # 例子 # [Rule] # OR,((SRC-IP,192.168.1.110), (SRC-IP,192.168.1.111)),DIRECT # 网关模式下的 192.168.1.110 或 192.168.1.111 设备的请求采取直连策略。 # NOT # 非规则。当任意子规则满足时,则执行该规则: # NOT,((#Rule1)),Policy # 例子 # # AND,((NOT,((SRC-IP,192.168.1.110))),(DOMAIN, example.com)),DIRECT //示例,请勿启用 # 这条规则稍微有点复杂,它将 AND 和 NOT 相结合,它表示网关模式下除了设备 192.168.1.110 以外的其他设备在请求域名 example.com 时做直连处理。 # 规则集 # RULE-SET # RULE-SET 分为内置规则集和外部规则集,内部规则集目前是两种:SYSTEM 及 LAN。 # 内置规则集:SYSTEM # 可匹配来自 macOS 和 iOS 自身的大多数系统请求,App Store 和 iTunes 等其他内容服务的请求不会被匹配。 # 内置规则集:LAN # 可匹配局域网 IP 地址和 .local 后缀,请注意该规则集会触发 DNS 请求。 # 注意这里的「请注意该规则集会触发 DNS 请求」,如果看过之前的文章应该就会明白这是和 no-resolve 选项有关,但有关局域网的部分不单是匹配 IP 本身,一些 IP 为本地网络的域名也应该包含在内,所以不应该使用 no-resolve 选项。 # 故而一般的配置都会将此放置于配置末尾(在 DOMAIN 相关类型规则之后就不会触发)。 # 外部规则集 # 外部规则集就是从另一个文件或者 URL 引用规则集。 # 其实从上述两个内置规则集例子可以看出,所谓的规则集就是将多个子规则放在一个单独的文件中,便于分享和复用。但是规则集中的规则不可以指定策略,而是将整个规则集指向一个同一个策略。 # 可以将制作好的规则集文本文件放置在服务器上进行引用,如: # # RULE-SET,https://www.example.com/direct.list,DIRECT //示例,请勿启用 # 在配置里使用 RULE-SET 类型规则,内容就是规则集地址,然后加上策略即可。 # DOMAIN-SET # DOMAIN-SET 实际属于「标准规则」,但是其功能类似 Ruleset 所以放在一起说了。 # RULE-SET 可包含所有类型的子规则,执行效率和在主配置中的规则没有区别,而 DOMAIN-SET 仅可使用 DOMAIN 和 DOMAIN-SUFFIX 两种形式的内容,使用了特别的逻辑进行优化,在内容非常多时性能有极大的提升。(千条以上,否则两者没有太大的区别) # DOMAIN-SET 文件内容示例如下: # .doubleclick.net # static.googleadsserving.cn # 1.1.1.1 # 文件中每行为一个域名或一个 IP 地址,如果某行以 . 开头则表示匹配所有子域名和该域名本身。 # ⚠️ 注意:IP 仅支持一个 IP 地址,不支持类似 IP-CIDR 类型规则的子网掩码号的写法 # 它的使用方法也类似 Ruleset: # # DOMAIN-SET,https://www.example.com/reject.list,REJECT //示例,请勿启用 # 通知 # 使用 notification-text 参数可以在触发规则时让 Surge 弹出一条通知: # 示例: # DOMAIN-SUFFIX,bilibili.com,DIRECT,notification-text="( ゜- ゜)つロ 乾杯~" //示例,请勿启用 # 如上示例,使用英文双引号把你要通知的文字包起来,在访问哔哩哔哩时就会得到一条通知,通知内容为「( ゜- ゜)つロ 乾杯~」。 # MAC 部分,iOS使用请删除 # # Client # # > Proxy # #PROCESS-NAME,v2ray,DIRECT # #PROCESS-NAME,xray,DIRECT # #PROCESS-NAME,naive,DIRECT # #PROCESS-NAME,Trojan,DIRECT # #PROCESS-NAME,Trojan-go,DIRECT # #PROCESS-NAME,ss-local,DIRECT # #PROCESS-NAME,privoxy,DIRECT # #PROCESS-NAME,leaf,DIRECT # #PROCESS-NAME,UUBooster,DIRECT # # > Download for Surge Mac # #PROCESS-NAME,aria2c,DIRECT # #PROCESS-NAME,fdm,DIRECT # #PROCESS-NAME,Folx,DIRECT # #PROCESS-NAME,NetTransport,DIRECT # #PROCESS-NAME,Thunder,DIRECT # #PROCESS-NAME,Transmission,DIRECT # #PROCESS-NAME,uTorrent,DIRECT # #PROCESS-NAME,WebTorrent,DIRECT # #PROCESS-NAME,WebTorrent Helper,DIRECT # # BT # #DOMAIN-SUFFIX,smtp,DIRECT # #DOMAIN-KEYWORD,aria2,DIRECT # #DOMAIN-KEYWORD,announce,DIRECT # #DOMAIN-KEYWORD,torrent,DIRECT # #DOMAIN-KEYWORD,tracker,DIRECT # #URL-REGEX,(Subject|HELO|SMTP),DIRECT # #URL-REGEX,(api|ps|sv|offnavi|newvector|ulog.imap|newloc)(.map|).(baidu|n.shifen).com,DIRECT # #URL-REGEX,(.+.|^)(360|so|qihoo|360safe|qhimg|360totalsecurity|yunpan).(cn|com),DIRECT # #URL-REGEX,(.+.)?(torrent|announce.php?passkey=|tracker|BitTorrent|bt_key|ed2k|find_node|get_peers|info_hash|magnet:|peer_id=|xunlei)(..+)?,DIRECT # # 迅雷 # #URL-REGEX,(.?)(xunlei|sandai|Thunder|XLLiveUD)(.),DIRECT # #DOMAIN-SUFFIX,xunlei.com,DIRECT # #PROCESS-NAME,DownloadService,DIRECT # # Tencent 微云 # PROCESS-NAME,Weiyun,DIRECT # # BaiduYun 百度网盘 # #PROCESS-NAME,baidunetdisk,DIRECT # #URL-REGEX,(api|ps|sv|offnavi|newvector|ulog\.imap|newloc)(\.map|)\.(baidu|n\.shifen)\.com,DIRECT # > Surge And Github 外部资源更新时发出通知 # AND,((DOMAIN,raw.githubusercontent.com), (USER-AGENT,Surge*)),全球加速,notification-text="♻️外部资源更新",notification-interval=3600 # ADGUAD去广告 # DOMAIN-SET,https://anti-ad.net/surge2.txt,REJECT # 去广告(更换为神机规则 DOMAIN-SET,https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/Guard/AdvertisingPlus.list,REJECT RULE-SET,https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/Guard/Advertising.list,REJECT # 保护隐私 # DOMAIN-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Privacy/Privacy_Domain.list,REJECT # RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Privacy/Privacy.list,REJECT # 反运营商劫持或恶意网站 RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Hijacking/Hijacking.list,REJECT RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Download/Download.list,DIRECT # YouTube RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/YouTubeMusic/YouTubeMusic.list,油管影音 RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/YouTube/YouTube.list,油管影音 # Netflix RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Netflix/Netflix.list,奈飞剧集 # Disney+ RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Disney/Disney.list,迪斯尼+ # 阻止电报频繁请求 AND,((PROCESS-NAME,Telegram), (OR,((IP-CIDR,0.0.0.0/8), (IP-CIDR,224.0.0.0/4)))),REJECT # Telegram # RULE-SET,https://raw.githubusercontent.com/VirgilClyne/GetSomeFries/main/ruleset/ASN.Telegram.list,电报线路 # OR,((IP-ASN,44907,no-resolve), (IP-ASN,59930,no-resolve), (IP-ASN,62014,no-resolve), (IP-ASN,62041,no-resolve), (IP-ASN,211157,no-resolve)),电报线路 RULE-SET,https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/Extra/Telegram/Telegram.list,电报线路 # Twitter RULE-SET,https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/Extra/Twitter.list,推特线路 # Spotify RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Spotify/Spotify.list,台湾节点 # 国内影视海外版 RULE-SET,https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/StreamingSE.list,港台剧集 # GlobalMedia RULE-SET,https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/Streaming.list,国际影视 # PayPal RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/PayPal/PayPal.list,PayPal # OneDrive RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/OneDrive/OneDrive.list,DIRECT # 对于一些对战游戏因为都是基于UDP,开启此选项后可避免一些延迟。默认关闭 # PROTOCOL,UDP,DIRECT # Google Drive # RULE-SET,https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/Extra/Google/GoogleDrive.list,全球加速 # Google Voice # RULE-SET,https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/Extra/Google/GoogleVoice.list,全球加速 # Google RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Google/Google.list,全球加速 # Speedtest RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Speedtest/Speedtest.list,全球加速 # SteamCN RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/SteamCN/SteamCN.list,DIRECT # Steam RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Steam/Steam.list,全球加速 # Epic RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Epic/Epic.list,DIRECT # Apple RULE-SET,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Apple/Apple.list,DIRECT # ChinaMedia RULE-SET,https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/StreamingMedia/StreamingCN.list,DIRECT # 国外网站 RULE-SET,https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/Global.list,全球加速 # Surge 的自动 REJECT 保护丢包,防止应用循环请求 IP-CIDR,0.0.0.0/32,REJECT,no-resolve # Local Area Network 局域网 RULE-SET,LAN,DIRECT # GeoIP CN,基于 GeoIP 数据库判断域名和 IP 的归属地 GEOIP,CN,DIRECT # DNS 查询失败走 Final 规则 FINAL,漏网之鱼,dns-failed [Host] # 该段定义本地 DNS 记录 # 该功能等同于 /etc/hosts,加上了泛解析和别名支持。 # DNS 全部交给系统处理 # * = server:syslib # 本地值 # 特定 DNS 服务器 *.tw = server:1.1.1.1 testflight.apple.com = server:8.8.8.8 router.asus.com = server:syslib *.tmall.com = server:223.5.5.5 *.taobao.com = server:223.5.5.5 *.alicdn.com = server:223.5.5.5 *.aliyun.com = server:223.5.5.5 *.alipay*.com = server:223.5.5.5 *.alibaba*.com = server:223.5.5.5 *.alimama*.com = server:223.5.5.5 *.qq.com = server:119.29.29.29 *.tencent.com = server:119.29.29.29 *.weixin.com = server:119.29.29.29 *.qpic.cn = server:119.29.29.29 *.jd.com = server:119.29.29.29 *.bilibili.com = server:119.29.29.29 hdslb.com = server:119.29.29.29 *.163.com = server:119.29.29.29 *.126.com = server:119.29.29.29 *.126.net = server:119.29.29.29 *.127.net = server:119.29.29.29 *.netease.com = server:119.29.29.29 *.10010.com = server:119.29.29.29 *.unicompayment.com = server:119.29.29.29 *.vercel.app = server:119.29.29.29 *.vercel.com = server:119.29.29.29 *.ximalaya.com = server:119.29.29.29 *.baidu.com = server:119.29.29.29 *.bdstatic.com = server:119.29.29.29 [URL Rewrite] # 该段定义针对 HTTP 请求的 URL 重定向规则 # Surge 提供两种进行 HTTP 重定向的实现方式: # 请求头修改:通过直接修改请求头内容实现,客户端程序对本次重定向无感知。为了保证重定向后的行为正确,URL 被修改后,Surge 会自动使用 URL 的主机名部分覆盖请求头的 Host 字段。脚本进行重定向时不会进行该行为。 # 返回 302、307 响应:直接向 HTTP 连接返回一个状态码为 302 或 307 的完整 HTTP 响应,客户端需要支持 HTTP 重定向。 # Surge 还可以通过 URL 拒绝某些请求。 # 重写规则由3部分组成:正则表达式、替换和类型。 # 有三种重定向方式: "header" 和 "302""307" # Header 模式 # Surge 会修改http header,并在必要时将请求重定向到其他主机。客户端不会注意到这个重写动作。 # 请求头中的「Host」字段将被修改以匹配新的 URL。 # 例如: # [URL Rewrite] # ^http://www\.google\.cn http://www.google.com header # 不能重定向 HTTPS scheme 的 URL。而且也不能重定向 HTTPS 请求。 # 302 模式 # Surge 直接简单的返回一个 302,当 HTTPS 解密对对应的主机并开启时,可以对 HTTPS 请求使用。 # Redirect Google Search Service ^(http|https):\/\/(www.)?(g|google)\.cn https://www.google.com 302 ^https?://(.*?[.])?(?:g|google).cn https://$1google.com 302 # Redirect Google Maps Service ^(http|https):\/\/(ditu|maps).google\.cn https://maps.google.com 302 # Weibo Short URL ^http:\/\/t\.cn http://sinaurl.cn 302 # HTTP 307 模式 # HTTP 307 模式会简单的返回一个 307 响应。当 HTTPS 解密对对应的主机并开启时,可以对 HTTPS 请求使用。 # 307 的 Rewrite 规则写法与 302 类似,将 302 换成 307 即可。 # Reject 模式 # 当 URL 匹配时拒绝请求,当 HTTPS 解密对对应对的主机开启时,可以对 HTTPS 请求使用。 # Header Rewrite # Surge 可以重写客户端发送的请求头,然后再转发给服务器。 # 该功能用于简单的修改请求头的字段,支持 add、del、replace 三种操作。 # 当使用 add 操作时,如果该字段名已经存在,会追加一个同名字段,这种行为是被 HTTP 标准所允许的,服务端应该将多个同名字段拼接后进行理解。但是由于部分 HTTP 服务器未正确遵循该规范,除非有特殊的需求,一般建议使用 del 和 add 组合操作,先删再加。 # 例如: # [Header Rewrite] # ^http://example.com header-add DNT 1 # ^http://example.com header-del Cookie # ^http://example.com header-replace User-Agent Unknown # 重写规则由 4 部分组成:URL 正则表达式、模式、字段和值。 # [Header Rewrite] # ^(http|https)://zhidao\.baidu\.com header-replace User-Agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15" # 例如在移动设备访问百度知道时想显示桌面版的页面,就可以使用桌面端的 User-Agent 替换请求头中的 User-Agent。 # Mock # Mock 是 Surge iOS 4.3.0 引入的一个新特性,可以模拟 API 服务器并返回一个静态响应。这个特性也可以称为 Map Local 或 API Mocking。 [MITM] # Surge 仅会解密 hostname 指定的主机名的请求。 # 可使用通配符 * 和 ?; # 可使用前缀 - 将特定主机名排除; # 默认仅解密发往 443 端口的请求(可使用如 example.com:80 解密特定端口,或使用如 example.com:0 解密所有端口); # 表示匹配所有主机名为 IP 地址的连接; # 表示匹配所有主机名为 IPv4 地址的连接; # 表示匹配所有主机名为 IPv6 地址的连接; # iOS 系统和某些应用有严格的安全策略,仅信任某些特定的证书,对这些域名启动解密可能导致问题,如:*.apple.com、*.icloud.com。 # 例子 # google.com:解密所有发往 google.com 上的 443 端口的请求; # google.com:8443:解密所有发往 google.com 上的 8443 端口的请求; # *.google.com:0:解密所有发往 google.com 及其子域名上所有端口的请求; # -google.com:不解密所有发往 google.com 上的 443 端口的请求; # 跳过服务端证书验证 # skip-server-cert-verify = true # 用于 TCP 连接 # tcp-connection = false # 开启该选项后 Surge 将对 MitM 主机名列表中的 TCP 连接也进行 MitM 解密,如果该连接并非 HTTPS 请求将导致连接失败。 # 用于 HTTP/2 # h2 = true # 若需支持使用 HTTP/2 协议执行 MITM,以提高并发请求的性能,可在配置文件中添加上述示例。 # 仅特定设备启用 MitM # 可以指定一个单一的IP地址或使用 CIDR 设置特定设备启用 MitM,均支持 IPv4 和 IPv6。 # 例如: # client-source-address = 0.0.0.0/0, ::/0 # 如针对某个设备不启用可使用 -:client-source-address = -192.168.1.2, 0.0.0/0 skip-server-cert-verify = true # 跳过服务端证书验证 h2 = true # 用于 TCP 连接 tcp-connection = false # 自带2个warp+节点,你们也可以加入我的team:getsomecats,验证方式为:gmail [WireGuard WGgoGetSomeCats] private-key = oFl4IF42oioy2rU9Dc2af5vi6X6+zbFDnY/CUckU23g= self-ip = 172.16.0.2 self-ip-v6 = 2606:4700:110:8f71:49f:13f4:55d6:a577 prefer-ipv6 = true dns-server = 162.159.36.1, 2606:4700:4700::1111 mtu = 1400 peer = (public-key = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=, allowed-ips = "0.0.0.0/0, ::0/0", endpoint = 162.159.195.8:2408, keepalive = 45) [WireGuard GetSomeCats] private-key = eKycj9KyGKX4Gyj9ntOXIwc3stSSN8LmQ8U7Tvq7sW8= self-ip = 172.16.0.2 self-ip-v6 = 2606:4700:110:81bc:1fc5:5bf3:78d:754f prefer-ipv6 = true dns-server = 162.159.36.1, 2606:4700:4700::1111 mtu = 1400 peer = (public-key = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=, allowed-ips = "0.0.0.0/0, ::0/0", endpoint = 162.159.193.6:2408, keepalive = 45) [Script] # 脚本 # 使用 JavaScript 扩展 Surge 的各项功能 # 以下连个脚本请搭配模块部分的获取cookie使用 # B站签到脚本,使用方法见脚本说明 # https://raw.githubusercontent.com/ClydeTime/Surge/main/Script/Task/BiliBili.js # 喜马拉雅签到脚本 # https://raw.githubusercontent.com/ClydeTime/Quantumult/main/Script/Task/xmlySign.js # 模块 # 模块是对配置文件的补丁,每个模块文件用于对配置文件的各个部分进行微调,可用于覆盖当前配置的部分设定,模块可以: # 灵活的开启与关闭。 # 在同一个文件内对多个段进行调整。 # 可通过 URL 进行安装并保持更新。 # 但是: # 模块不可以调整 [Proxy]、[Proxy Group]、[Rule] 段内容。 # 模块不可以调整 MITM 的 CA 证书。 # 模块的设置覆盖于主配置之上,因此不可以通过 UI 进行调整。 # 模块有非常多的使用场景以实现某个特定的任务: # 调整不可编辑的配置文件中的设置,如托管配置和企业配置; # 快捷的在不同工作环境中切换。例如临时开启对所有域名的 MitM 并调整过滤器; # 使用他人编写的模块以完成某些特定的任务。例如,您的同事可以编写一个模块将应用的 API 请求重定向至测试服务器; # 在多个设备之间共同使用一个配置文件时,可能需要针对不同场景修改某些设置。模块的开启状态是保存于当前设备的,可以用在不同设备间的差异性修改; # 基本概念 # 模块类似于当前配置文件的补丁。模块的设置优先级高于配置文件的设置。 # 有三种类型的模块: # 内部模块:由 Surge 本身提供; # 本地模块:配置文件目录中的 .sgmodule 文件; # 已安装模块:使用 URL 安装的模块,一般是以 .sgmodule 结尾的一个链接 # 编写模块 # 模块的语法与配置文件相同。您可以覆盖以下部分: # General、Replica、MITM # 覆盖原始值:key = value # 追加在原始值的后面:key = %APPEND% value # 插入在原始值的前面:key = %INSERT% value # Rule、Script、URL Rewrite、Header Rewrite、Host # 新行将插入到原始内容的顶部。 # 模块中的规则只能使用内部策略:DIRECT、REJECT 和 REJECT-TINYGIF。 # 您可以在模块文件中添加 Metadata: # #!name=模块名称 # #!desc=模块描述 # 您可以将模块限制为指定的平台:(可选) # #!system=mac # 可选 mac 和 ios,如果你并不想限制在某一个平台可省略该行字段 # 以下是所附上的一些经常能够用到的模块。 # 版权属于模块的作者,我这里仅仅只是收集整理,不对使用方法做任何解答! # 不对使用方法做任何解答!不对使用方法做任何解答! # 远程模块安装方式:打开 Surge -> 模块 -> 安装新模块... -> 复制粘贴上方的安装链接 -> 完成!; # Boxjs模块 # 使用教程:https://github.com/chavyleung/scripts#%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F # https://raw.githubusercontent.com/chavyleung/scripts/master/box/rewrite/boxjs.rewrite.surge.sgmodule # Sub-Store # 高级订阅管理工具 @Peng-YM # 使用教程:https://www.notion.so/Sub-Store-6259586994d34c11a4ced5c406264b46 # https://raw.githubusercontent.com/sub-store-org/Sub-Store/master/config/Surge.sgmodule # 该模块适用于定时签到脚本的Cookie获取. 集成: BiliBili, 喜马拉雅; 您可以在使用后手动将其禁用,以免产生不必要的MITM. # 本模块配合脚本部分的签到脚本使用 # https://raw.githubusercontent.com/ClydeTime/Quantumult/main/Task/GetCookie.sgmodule # bilibili去广告(>=iOS15) # https://raw.githubusercontent.com/app2smile/rules/master/module/bilibili.sgmodule # 部分解锁spotify premium,建议重新登录,音质不能设置为超高 # https://raw.githubusercontent.com/app2smile/rules/master/module/spotify.module # 广告联盟去广告 (快手联盟,优量汇,穿山甲) # https://raw.githubusercontent.com/app2smile/rules/master/module/adsense.sgmodule # 起点App去广告 # https://raw.githubusercontent.com/app2smile/rules/master/module/qidian.sgmodule # 腾讯新闻App去广告 开屏页广告有缓存,需要全新应用 # https://raw.githubusercontent.com/app2smile/rules/master/module/qqnews.sgmodule # 贴吧部分去广告 # 1.开屏页广告 2.帖子看图模式广告去除 3.首页/帖子详情页右下角悬浮广告去除 # https://raw.githubusercontent.com/app2smile/rules/master/module/tieba-mini.sgmodule # 知乎App去广告 # https://raw.githubusercontent.com/app2smile/rules/master/module/zhihu.sgmodule # 屏蔽iOS系统更新 # https://raw.githubusercontent.com/xOS/Config/Her/Module/General/BlockUpdate.sgmodule # 微博官方APP净化 # https://raw.githubusercontent.com/xOS/Config/Her/Module/General/Weibo.sgmodule # 快速检测节点有没有解锁流媒体 # https://raw.githubusercontent.com/Rabbit-Spec/Surge/Master/Module/Panel/Stream-All/Moore/Stream-All.sgmodule # 显示还需要摸鱼多少天就可以解放 # 安装方式 # 打开 Surge -> 模块 -> 新建本地模块 -> 复制粘贴上方的安装链接里的模块内容到本地(不是复制链接!) -> 在Script中必须修改的参数:group:你策略组的名称 -> 完成! # https://raw.githubusercontent.com/Rabbit-Spec/Surge/Master/Module/Panel/Timecard/Moore/Timecard.sgmodule # 机场流量信息 # 查看你机场当前剩余的流量 # 查看你机场购买套餐的流量 # 查看你机场重置流量的日期 # 查看你机场套餐到期的日期 # 安装方式 # 打开 Surge -> 模块 -> 新建本地模块 -> 复制粘贴上方的安装链接里的模块内容到本地(不是复制链接!)-> 先将带有流量信息的节点订阅链接encode,用encode后的链接替换"url="后面的[机场节点链接] -> 完成! # encode链接: https://www.urlencoder.org # https://raw.githubusercontent.com/Rabbit-Spec/Surge/Master/Module/Panel/Sub-info/Moore/Sub-info.sgmodule # Network-Info (网络信息) # https://raw.githubusercontent.com/Rabbit-Spec/Surge/Master/Module/Panel/Network-Info/Moore/Network-Info.sgmodule # 一个可以显示Surge启动时长的面板 # https://raw.githubusercontent.com/Rabbit-Spec/Surge/Master/Module/Panel/Surge-Pro/Moore/SurgePro.sgmodule # 1.1.1.1 by Cloudflare with WARP # 配置教程:https://www.craft.do/s/avqa8GJuLbLsFv # https://raw.githubusercontent.com/I-am-R-E/Functional-Store-Hub/Master/WarpPanel/WarpPanel%2B.sgmodule # 一个可以显示你当前节点信息的面板 # https://raw.githubusercontent.com/Rabbit-Spec/Surge/Master/Module/Panel/IP-Check/Moore/IP-Check.sgmodule # 酷我解锁 # https://raw.githubusercontent.com/I-am-R-E/Functional-Store-Hub/Master/KuWoMusic/KuWoMusic.Surge.sgmodule