vernesong / OpenClash

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

[Bug] v0.46.003-beta 版本*在本地 DNS 劫持*禁用时仍然会修改Dnsmasq #3829

Closed crb912 closed 8 months ago

crb912 commented 8 months ago

Verify Steps

OpenClash Version

v0.46.003-beta

Bug on Environment

Immortalwrt

OpenWrt Version

ImmortalWrt 21.02-SNAPSHOT r0-3fa9687 / LuCI openwrt-21.02 branch git-23.098.38725-847bd6b

Bug on Platform

Linux-armv7

Describe the Bug

  1. 我原本的Dnsmasq已经设置好了DNS转发,转发的上游是ADguard以及其他DNS服务,ADG的上游则是Clash。配置如图: Screenshot from 2024-03-28 17-14-39
  2. Clash的设置,我完全禁用了在本地 DNS 劫持选项。
  3. 我修改了NameServer和Fallback的设置,然后重新启用Clash之后,再然后我原本Dnsmasq的转发设置完全被清空了,无法正常上网。并且日志出现: Screenshot from 2024-03-28 17-22-01

我的解决办法

重新补充被清空的Dnsmasq转发设置,手动再改回成图片这样的设置,才能正常上网。

问题与建议

我认为OpenClash不应该修改我的Dnsmasq转发设置,也不应该重启它,而且我已经禁用了在本地 DNS 劫持还要修改。 即便我Clash工作不正常(即便我NameServer和Fallback的设置问题),那重启的过程也不应该乱改我别的设置。

另外,路由表NAT这条也有点奇怪。tcp dpt:53 redir ports 7892, OpenClash Google DNS Hijack。 因为我根本就没有使用7892端口。我不需要OpenClash把53端口重定向到7892,所以程序的逻辑哪里有问题。尤其是Clash重启之后,每次都会对53端口和Dnsmasq的设置做修改。这个不应该发生,尤其用户已经禁用了本地DNS劫持选项的前提下。

image

OpenClash修改设置

To Reproduce

.

OpenClash Log

.

OpenClash Config

No response

Expected Behavior

.

Additional Context

No response

crb912 commented 8 months ago

Dnsmasq配置里面的DNS查询缓存的大小也被清空了,我原先设置的是非空。OpenClash这个选项根本就没打开。 在用户没开启这个选项的前提下,不论如何都不应修改Dnsmasq的设置。 image