Skip to content

Ring 配置参考 ​

Ring 配置文件基于 INI 格式,通过不同章节定义全局设置、出站节点、策略组、分流规则和 HTTP 处理。各章节的字段、取值、默认值与约束见对应文档。

章节 ​

章节内容
General日志、DNS、TUN 和全局选项
Proxy出站协议、连接和传输选项
Proxy Group策略组与成员选择
Proxy Resource外部节点资源;节名也接受 Resource
PluginProfile 叠加、启用条件与优先级
Rule匹配条件、目标与外部规则资源
Host静态地址、域名别名和 DNS 上游
DNS独立 DNS 上游列表
MITMHTTPS 解密范围与 CA
Response固定文本响应
URL RewriteURL 改写、重定向与拒绝
Header Rewrite请求头修改
ScriptHTTP、定时与网络事件脚本

配置格式 ​

章节与配置行 ​

章节使用 [章节名] 声明,名称按上表大小写书写。无章节名的键值行按 [General] 解析,未知章节被忽略。

键值配置使用 键 = 值,键和值两端的空白会被去除。代理、策略组、插件和资源使用 名称 = 参数列表。分流规则使用逗号分隔的规则行,重写规则使用空白分隔的规则行,具体语法见对应章节。

配置按行解析,一条配置写在一行。空行可用于分隔内容,不支持将一个值换行续写。

值类型 ​

INI 中的值以文本书写,由字段决定其类型和允许的取值。

类型写法示例说明
字符串interface = en0、log-level = info名称、路径、文本及固定取值等;是否允许空字符串由字段决定
布尔值ipv6 = true、ipv6 = yes、ipv6 = 1真值为 true、yes、1,假值为 false、no、0;所有布尔字段均支持,字母不区分大小写
整数test-timeout = 5使用十进制整数;正负范围和单位由字段决定,时间值不附加 s 等单位后缀
地址与网段hijack-dns = 192.0.2.53:53、tun-included-routes = 192.0.2.0/24按字段要求书写 IP、主机:端口或 CIDR;IPv6 带端口使用 [IPv6]:端口
URL 与路径proxy-test-url = https://example.com/check、Extension = ./plugins/extension.conf支持的协议和相对路径基准由字段决定
列表dns-server = 192.0.2.1, 192.0.2.2元素以英文逗号分隔,元素类型由字段决定
映射与复合值headers=X-Example:1、peers=[{字段=值,...}]仅用于支持该格式的字段,语法见对应章节

参数列表与引号 ​

参数列表以英文逗号分隔,位置参数位于 选项=值 之前。包含逗号或 = 的位置参数使用双引号包裹;参数列表中,包含逗号的选项值也需整体引用。

ini
[Plugin]
Extension = "https://example.com/plugin.conf?version=1"

[Proxy Group]
Group = select, includes="ResourceA,ResourceB"

双引号用于参数或列表的分隔处理;其中 \" 表示双引号字符。INI 层不统一去除所有字段值的引号,也不统一展开 \n 等转义序列。正则表达式、路径及复合值按对应字段的语法书写。

注释 ​

以 # 或 ; 开头的行是注释。值中首次出现的 # 或 ; 位于值开头或前面有空白时,其后的内容作为行尾注释;紧接值的符号保留为值的一部分。行尾注释识别不区分引号内部与外部。

ini
# 整行注释
[General]
log-level = info # 行尾注释

[Host]
example.com = server:https://dns.example.com/dns-query#route

示例 ​

ini
[General]
log-level = info
dns-server = system

[Proxy]
Node = socks, proxy.example.com, 1080

[Proxy Group]
Group = select, Node, DIRECT, includes=RemoteNodes

[Proxy Resource]
RemoteNodes = https://example.com/nodes.conf, update-interval=86400

[Plugin]
Extension = ./plugins/extension.conf

[Rule]
DOMAIN,example.com,DIRECT
FINAL,Group

[Host]
static.example.com = 192.0.2.1

[DNS]
System = system

[MITM]
hostname = *.example.com
ca-p12 = <SECRET>
ca-passphrase = <SECRET>

[Response]
^http://example\.com/status$ = ready

[URL Rewrite]
^http://example\.com/old$ http://example.com/new 302

[Header Rewrite]
http-request ^http://example\.com/ header-add X-Example 1

[Script]
Request = type=http-request, pattern=^http://example\.com/, script-path=./scripts/request.js