rnetx / sing-box

https://sing-box.sagernet.org
Other
71 stars 8 forks source link

关于 Rule Provider 的一些建议 #28

Closed reF1nd closed 11 months ago

reF1nd commented 11 months ago

sing-box 和 Clash 的 domain-suffix 行为不同。

qq.com 为例:Clash 的 DOMAIN-SUFFIX,qq.com 会同时匹配 *.qq.comqq.com 。 但是 sing-box 的 "domain_suffix": "qq.com" 其实匹配的是 *qq.com 。 也就是说 ,假如此时存在一个域名为 fuckqq.com ,会命中 sing-box 的 "domain_suffix": "qq.com" ,而不会命中 clash 的 DOMAIN-SUFFIX,qq.com 。但是 sing-box 如果这么写:"domain_suffix": ".qq.com" ,那么又匹配不到 qq.com 了。

既然 Rule Provider 用的是 Clash 的规则,那么我认为应该转写 domain-suffix 规则以和 Clash 行为保持一致。 同样以 qq.com 为例,应将 DOMAIN-SUFFIX,qq.com 转换为

{
    "domain": "qq.com",
    "domain_suffix": ".qq.com"
}

两条规则,或者直接转换为

{
    "domain_regex": "^(.+\\.)?qq\\.com$"
}

一条规则。 若是 DOMAIN-SUFFIX,.qq.com ,则不额外进行转写。

0xffffharry commented 11 months ago

已修复 https://github.com/yaotthaha/sing-box-pub/commit/bc1839bb1b6bdd70dd3583227f2524aaaa6bafde