关于 sing-box 的规则问题咨询下大家, dns 和 route 规则为什么不同步?

102 天前
 shangnengfanfo

国内小众站都走代理了,看日志 dns 模块是触发 geoip-cn 这条规则了,但是 route 模块直接走 final ,好奇为什么不会经过 route 内的 geoip-cn 规则走直连呢?

  头部省略。。。
 "dns": {
    "servers": [
      {"tag": "dns_local", "address": "223.5.5.5", "detour": "direct", "strategy": "ipv4_only"},
      {"tag": "dns_proxy", "address": "https://8.8.8.8/dns-query", "address_resolver": "dns_local", "detour": "proxy", "strategy": "ipv4_only"},
      {"tag": "dns_fakeip", "address": "fakeip"}
    ],
    "rules": [
      {"outbound": "any", "server": "dns_local"},
      {"rule_set": "geosite-geolocation-!cn", "server": "dns_fakeip"},
      {"rule_set": ["geosite-geolocation-cn", "geoip-cn"], "server": "dns_local"}
    ],
    "disable_cache": true,
    "fakeip": {
      "enabled": true,
      "inet4_range": "172.7.0.0/15",
      "inet6_range": "fc00:172:7::/126"
    }
  },
  "route": {
    "rules": [
      {"inbound": "dns-in", "outbound": "dns-out"},
      {"protocol": "dns", "outbound": "dns-out"},
      {"ip_is_private": true, "outbound": "direct"},
      {"rule_set": "geosite-geolocation-!cn", "outbound": "proxy"},
      {"rule_set": ["geosite-geolocation-cn", "geoip-cn"], "outbound": "direct"},
      {"inbound": "mixed-in", "outbound": "proxy"}
    ],
    "rule_set": [
    此处省略。。。
    ],
    "final": "proxy",
    "auto_detect_interface": true
  },
  "inbounds": [
    {
      "type": "tun",
      "tag": "tun-in",
      "inet4_address": "172.7.0.1/30",
      "inet6_address": "fd00:172:7::1/126",
      "mtu": 1400,
      "auto_route": true,
      "strict_route": true,
      "stack": "system",
      "sniff": true,
      "sniff_override_destination": true,
      "gso": false
    },
    {
      "type": "mixed",
      "tag": "mixed-in",
      "listen": "0.0.0.0",
      "listen_port": 7890
    }
  ],
  尾部省略。。。
1828 次点击
所在节点    宽带症候群
8 条回复
yellowvii
101 天前
域名请求不会进行 IP 匹配
yellowvii
101 天前
@yellowvii #1

这个行为可以通过配置改变

延伸阅读: https://sing-box.sagernet.org/configuration/shared/listen/#domain_strategy

domain_strategy

One of prefer_ipv4 prefer_ipv6 ipv4_only ipv6_only.

If set, the requested domain name will be resolved to IP before routing.

If sniff_override_destination is in effect, its value will be taken as a fallback.
shangnengfanfo
101 天前
@yellowvii 前一句很好理解,后面这句没怎么懂——如果 sniff_override_destination 生效,它的值将作为后备。
yellowvii
101 天前
@shangnengfanfo #3 我理解同时配置两者,sniff_override_destination 的优先级高
shangnengfanfo
101 天前
@yellowvii 已经用上了,目前运行良好,非常感谢!!!
singbox 是好东西,就是它的文档一言难尽
belldasd
98 天前
@shangnengfanfo 请问具体怎么修改配置?
shangnengfanfo
98 天前
@belldasd "domain_strategy": "prefer_ipv4", 把这个加进去就可以了
belldasd
98 天前
@shangnengfanfo 谢谢!我去试试看。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1071945

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX