模块
💡本页文档来自官方社区,并对照手册对部分内容进行了修正
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 三个内置策略。
元数据
你可以在模块文件里添加元数据:
(可选)你还可以限制模块的使用平台(可取值为 ios 和 mac):
模块样例:
最后更新于