我知道 clash 的 fake-ip 模式在设备发起连接时会返回假 ip ,clash 有张表映射假 ip 和请求域名。当设备向这个假 ip 发送请求的时候,clash 查表得到请求域名,然后解析 DNS 得到真实 IP ,再从真实 IP 得到请求内容。
我的 OpenWrt 上安装 OpenClash 透明代理,fake-ip tun 模式,配置规则为:
rules:
- IP-CIDR,192.168.50.0/24,🏠 异地组网,no-resolve
这是我家里的局域网,使用 wireguard 组网,按照这个配置,当我在外地访问 192.168.50.0/24 子网地址,会被 clash 分流到 wireguard 代理,从而连上家里的网络。no-resolve 意味着访问域名不会匹配这条规则。 事实上是组网成功的,例如我访问 192.168.50.50 ,clash 日志中没有域名解析,直接连上家里某台设备服务:
[TCP] accept connection lAddr=192.168.23.280:3192 rAddr=192.168.50.50:4123 inbound=Redir
[TCP] connected lAddr=192.168.23.280:3192 rAddr=192.168.50.50:4123 mode=rule rule=IPCIDR(192.168.50.0/24) proxy=🏠 异地组网[Router1]
但是当我访问 192.168.50.7 (是我 NAS 的地址),则没有匹配上这条规则,clash 中的日志:
[TCP] dial failed error=dial tcp4 192.168.50.7:1280: i/o timeout proxy=DIRECT lAddr=192.168.23.280:7714 rAddr=192-168-50-7.xdvx.direct.quickconnect.cn:1280 rule=RuleSet rulePayload=direct
[TCP] dial failed error=dial tcp4 192.168.50.7:80: i/o timeout proxy=DIRECT lAddr=192.168.1.5:45808 rAddr=192-168-50-7.xdvx.direct.quickconnect.cn:80 rule=RuleSet rulePayload=direct
看日志是反解析 192.168.50.7 成域名,再发起域名请求。192-168-50-7.xdvx.direct.quickconnect.cn
这个域名是群晖的 quickconnect 服务,群晖给我的 nas 分配了这么个域名 dns 中记录的是局域网 IP ,这个 quickconnect 我很久没有使用了。
正常来说 192.168.50.7 是不会反解析的,而是直接对 IP 发起请求,因为不是 clash 分配的 fack-ip ( 198.18.0.0/16 )。 正常来说 192.168.50.7 是反解析不到域名的,这个 dns 反查应该是在路由器本地进行的,可能记录在路由器的某个位置,可我找不到在哪。
1
mohumohu 187 天前
这不叫反解析,你自己 nslookup 192-168-50-7.xdvx.direct.quickconnect.cn
|
2
yyysuo 182 天前
这是 hosts 吧,群晖设置的问题?
|