vernesong / OpenClash

A Clash Client For OpenWrt
MIT License
17.82k stars 3.21k forks source link

[Bug] redir-host DNS机制 #3809

Closed AllForLandlord closed 8 months ago

AllForLandlord commented 8 months ago

Verify Steps

OpenClash Version

v0.46.003-beta

Bug on Environment

Immortalwrt

OpenWrt Version

ImmortalWrt 23.05.1 r27304-31bc47589e

Bug on Platform

Linux-arm64

Describe the Bug

想请教下,redir-host现版本对于DNS的请求的流程。 之前的openclash版本里我记得可以选择是否远程解析DNS服务器,后来某次更新取消了这个选项。

我的疑问是,在Meta内核下:

  1. redir-host下无论是否命中域名规则走了代理,都会进行DNS解析吗?好像fake-ip模式命中代理的域名规则就不会本地进行DNS解析了?
  2. redir-host下DNS解析出IP后如果需要代理,会复用本地DNS解析的结果吗?
  3. redir-host下比如DNS解析出是0.0.0.0,而我没启用fallback服务器,但是该网站能匹配到域名规则走代理,此时会怎么运作?

To Reproduce

OpenClash Log

OpenClash Config

No response

Expected Behavior

麻烦大佬们解惑,非常感谢!

Additional Context

No response

vernesong commented 8 months ago

1、是 2、会 3、污染,可以启用fallback和fallback-filter规避

AllForLandlord commented 8 months ago

1、是 2、会 3、污染,可以启用fallback和fallback-filter规避

谢谢解答疑惑,关于第二个问题,我用腾讯阿里的DNS,解析出的被墙的域名的IP肯定是被污染的,如果复用结果那我应该不能正常代理,然而我还是能正常代理,请问这是为什么?

vernesong commented 8 months ago

meta内核没有完全遵循这个逻辑,考虑到容易污染,后来改成域名匹配到了就走远程解析