Surge 使用手册
搜索文档…
模块
💡本页文档来自官方社区,并对照手册对部分内容进行了修正
Module(模块)是一系列设置的集合,可用于覆盖当前配置的部分设定,有非常多的使用场景:
    微调不可编辑的配置的设定,如托管配置和企业配置。
    快捷的在不同工作环境中切换,比如临时开启对所有域名的 MitM 并调整过滤器。
    使用他人编写的模块以完成某些特定任务,比如,你的同事可以编写一个模块将应用的 API 请求重定向至测试服务器。
    如果你在多个设备间使用了同一份配置,有可能需要根据设备的使用场景进行微调。模块的开启状态是保存于当前设备的,可以用于在不同设备间的差异性修改。

基本概念

模块相当于给当前配置打补丁,其优先级要高于配置本身的设置。
有三种模块:
    内置模块:Surge 会预置一些模块,随着 Surge 自身更新。
    本地模块:放置在配置文件目录中的 .sgmodule 文件。
    安装的模块:从某个 URL 安装的模块。
你可以同时开启多个模块,模块的开启状态保存于当前设备,不会进行同步。切换配置也不影响模块的开启状态。

编写模块

模块的内容和标准配置基本一致,目前支持调整以下段:
    General, Replica, MITM
      直接覆盖原始值:key = value
      在原始值的末尾进行追加:key = %APPEND% value
      在原始值的开始进行插入:key = %INSERT% value
    你只能在 MITM 段中操作 hostname 字段。
    Rule, Script, URL Rewrite, Header Rewrite, Host
    新加入的定义将会追加在原始内容的顶部。
    模块中的规则只可以使用 DIRECT、REJECT、REJECT-TINYGIF 三个内置策略。
    元数据
    你可以在模块文件里添加元数据:
    1
    #!name=Name Here
    2
    #!desc=Description Here
    Copied!
    (可选)你还可以限制模块的使用平台(可取值为 ios 和 mac):
    1
    #!system=mac
    Copied!

模块样例:

1
#!name=MitM All Hostnames
2
#!desc=Perform MitM on all hostnames with port 443, except those to Apple and other common sites which can‘t be inspected. You still need to configure a CA certificate and enable the main switch of MitM.
3
4
[MITM]
5
hostname = -*.apple.com, -*.icloud.com, -*.mzstatic.com, -*.crashlytics.com, -*.facebook.com, -*.instagram.com, *
Copied!
1
#!name=Game Console SNAT
2
#!desc=Let Surge handle SNAT conversation properly for PlayStation, Xbox, and Nintendo Switch. Only useful if Surge Mac acts the router for these devices.
3
#!system=mac
4
5
[General]
6
always-real-ip = %APPEND% *.srv.nintendo.net, *.stun.playstation.net, xbox.*.microsoft.com, *.xboxlive.com
Copied!
最近更新 1yr ago