跳转至

Router

路由接受来自服务的连接,将其与规则匹配,然后将其发送到出站。

Router Object

{
    "Rules": [],
    "DefaultOutbound": ""
}

字段

Rules

Rules 是 Rule 对象的列表。

当新连接传递到路由时,会逐一检查它们是否符合规则,直到它们与带有出站字段的规则匹配,然后传递到出站。

Rule 对象解释见下。

DefaultOutbound

默认出站的名称。

如果在检查所有规则后没有匹配的规则,则连接将传递到默认出站。

如果为空,则默认出站是系统出站。这是为了与旧版本兼容。

有一些预设的出站:

  • REJECT: 直接关闭连接。
  • RESET: 使用 TCP 重置关闭连接。

Rule Object

{
    "Type": "RuleType",
    "Parameter": /* 规则类型特定字段 */,
    "Rewrite": {
        "TargetAddress": "",
        "TargetPort": 0,
        "Minecraft": {
            "Hostname": "",
            "Port": 0
        }
    },
    "Sniff": [], //(1)!
    "Outbound": "",
    "Invert": false
}
  1. 这是一个 Listable 字段,如果只有一个元素,则可以是单个值。有关更多信息,请参阅命名定义。

Type

必需

规则的类型名称。转到左侧的规则分类查看规则类型的文档。

Parameter

规则的参数。

此字段在不同的规则类型之间是可变的。

有关更多信息,请转到特定规则类型的文档。

Rewrite

重写包含许多要重写的字段。

如果规则匹配,它将重写连接的元数据。 因此您可以实现一些功能,例如通过规则更改目标服务器。

Note

协议相关的元数据(如 Minecraft)需要在重写之前进行嗅探。 否则,它不起作用。

Sniff

要嗅探的协议名称列表(或单个)。

如果规则匹配,这将嗅探协议。

可用选项为:

  • all(包括以下所有协议)
  • minecraft
  • tls

已经嗅探过的协议将被跳过,不会再次嗅探。

嗅探具有优先级,它将在重写之前完成。

Outbound

出站的名称。

如果规则匹配并且出站字段不为空, 则连接将跳出匹配进程并传递到出站。

如果为空,它将简单地返回匹配进程并匹配下一个规则。

出站字段优先级最低,将在嗅探和重写后完成。

有一些预设的出站:

  • REJECT: 直接关闭连接。
  • RESET: 使用 TCP 重置关闭连接。

Invert

反转匹配结果。优先级最高,将在匹配后立即完成。