-
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
[Feature Request] Tun 模式并启用 auto_redirect 时,希望增加一个选项用于控制 DNS 劫持范围 #3921
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or request
Milestone
Description
在 Tun 模式并开启 auto_redirect 时,sing-box 会自动创建 nftables 规则,对 DNS 流量(TCP/UDP 53 端口)进行劫持。
目前规则会匹配来源 IP 属于以下集合的流量:
- inet4_local_address_set
- inet6_local_address_set
sing-box 自动生成的规则类似:
ip saddr @inet4_local_address_set meta l4proto { tcp, udp } th dport 53 dnat ip to ...
当前行为
inet4_local_address_set 和 inet6_local_address_set 是 sing-box 自动创建并填充的集合,其中不仅包含 loopback 地址,还包含当前机器检测到的局域网网段。
set inet4_local_address_set {
type ipv4_addr
flags interval
elements = {
127.0.0.0/8,
172.19.0.0/30,
192.168.X.0/24
}
}
set inet6_local_address_set {
type ipv6_addr
flags interval
elements = {
::1,
240e:XXXX::/64,
fdfe:dcba:9876::/126
}
}
因此,当该设备作为旁路由使用时,来自局域网的 53 普通流量请求也会被自动劫持。
在某些使用场景中,希望只劫持 本机发出的 DNS 请求,而不希望影响局域网设备转发来的的 53 端口流量。
当前的实现会同时匹配:
- 本机流量
- 局域网流量
这在网关或旁路由场景下可能不是期望行为。
期望功能
希望能够增加一个可选配置,用于控制 DNS 劫持的范围,例如只劫持 本机 DNS 请求。
新增一个类似选项:
auto_redirect_dns_local_only: true
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request