clash-premium 或 clash.meta 作为局域网单臂路由时,域名规则是不是全失效了?

280 天前
 shuiguomayi

我的理解是,clash-premium 或 clash.meta 在作为单臂路由时,处理的都是 IP 包,所以配置文件里的域名规则都失效,只能依靠 GEOIP 库判断所请求的 IP 是哪里再选择分流,请指教。

927 次点击
所在节点    问与答
4 条回复
defaw
280 天前
不是,clash 保存了你局域网里所有它能拦截到的明文 dns 查询的结果,它会对比 ip 去反查出域名,当然如果一个 ip 对应了多个域名(比如不同的域名用了同一家 cdn),那就只能退化到 geoip 去判断了。你只要把需要代理的设备的 dns 设置成 clash 的 ip ,clash 在大部分情况下就能通过域名分流。
shuiguomayi
280 天前
@defaw 之前没在文档里找到这个知识点。朋友是看代码的? 多谢
dbak
279 天前
要开启 tun 和 clash 的 dns 功能并且劫持 53 端口的请求,否则他无法获得 dns 和 ip 的对应关系,就只能按照 ip 做分流了,也可以把 clash 的 dns 作为系统的默认 dns 。
linux 为宿主机的相关配置如下:
tun:
enable: true
stack: system
dns-hijack:
- "any:53"
auto-route: true
auto-detect-interface: true

dns:
enable: true
listen: :1053
ipv6: true
enhanced-mode: fake-ip
shuiguomayi
279 天前
@dbak ,多谢。另外,我解决了另外一个坑,就是 OS 必须要新一点,我在 debian 9 上踩了坑,因为不支持 nftables ,换到 debian 12 就好了,我用的 mihomo ,配置跟上面的一样。 感谢。

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

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

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

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

© 2021 V2EX