-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSurgePro.conf
1191 lines (979 loc) · 67.2 KB
/
SurgePro.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# 参考 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 = [email protected]
# proxy-test-udp = [email protected]
# 增强版 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」系统错误,请谨慎使用
# 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 = [email protected]:6170
http-api = [email protected]: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
# 兼容性(仅 iOS 版可用)
# 0:禁用
# 1:Proxy with Loopback Address
# 2:Proxy Only
# 3:TUN Only
# 4:VIF Proxy:不使用 127.0.0.1 的回环地址作为代理,使用 VIF 的虚拟代理地址,将产生额外的性能开销
# 5:No Default Route:不声明为默认路由,但声明若干个小路由以覆盖所有地址(与 Surge Mac 增强模式行为相同)。
# 这种配置下由于 VIF 不是主网络设备无法配置系统代理。部分应用在该模式下会认为 VPN 未开启以解决特殊兼容性问题,如 HomeKit Security Camera
# 所有兼容模式均不推荐长期开启,仅应用作特定问题的临时解决使用。
#####警告#######
# ⚠️ 请仅在指引下使用,开启后部分功能可能无法使用。
compatibility-mode = 0
# 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-address> 表示匹配所有主机名为 IP 地址的连接;
# <ipv4-address> 表示匹配所有主机名为 IPv4 地址的连接;
# <ipv6-address> 表示匹配所有主机名为 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 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
# 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-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
# 实验性
# 开启后 Surge 在切换网络后不再重新进行 VPN 配置。
# 先前版本测试中使用该逻辑后部分用户会遇到问题,如产生循环请求。请自行测试是否应开启该功能
# fast-switch = true
# 开启后会提高处理 UDP 流量的优先级,当系统负载高时会有比较明显的作用 (如高性能联机游戏)
udp-priority = true
[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 段内容从上至下依次匹配,匹配到第一个结果后立刻终止
# 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]
# 机场信息(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 主机名。
# 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 部分
# # 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-address> 表示匹配所有主机名为 IP 地址的连接;
# <ipv4-address> 表示匹配所有主机名为 IPv4 地址的连接;
# <ipv6-address> 表示匹配所有主机名为 IPv6 地址的连接;
# iOS 系统和某些应用有严格的安全策略,仅信任某些特定的证书,对这些域名启动解密可能导致问题,如:*.apple.com、*.icloud.com。
# 例子
# google.com:解密所有发往 google.com 上的 443 端口的请求;
# google.com:8443:解密所有发往 google.com 上的 8443 端口的请求;