升级到v0.46.031-beta的绕过国内IP功能失效了
SanLiGu opened this issue · 32 comments
Verify Steps
- Tracker 我已经在 Issue Tracker 中找过我要提出的问题
- Branch 我知道 OpenClash 的 Dev 分支切换开关位于插件设置-版本更新中,或者我会手动下载并安装 Dev 分支的 OpenClash
- Latest 我已经使用最新 Dev 版本测试过,问题依旧存在
- Relevant 我知道 OpenClash 与 内核(Core)、控制面板(Dashboard)、在线订阅转换(Subconverter)等项目之间无直接关系,仅相互调用
- Definite 这确实是 OpenClash 出现的问题
- Contributors 我有能力协助 OpenClash 开发并解决此问题
- Meaningless 我提交的是无意义的催促更新或修复请求
OpenClash Version
v0.46.031-beta
Bug on Environment
Lean
OpenWrt Version
OpenWrt R23.7.7 GDQ V2
Bug on Platform
Linux-amd64(x86-64)
Describe the Bug
升级到v0.46.031-beta的绕过国内IP功能失效了都返回是fake ip,回退到[v0.46.014-beta则正常
To Reproduce
升级到v0.46.031-beta,nslookup 国内网站
OpenClash Log
请见附件。
OpenClash Config
No response
Expected Behavior
v0.46.031-beta的绕过国内IP功能可以正常
Additional Context
路由本机的测试没有问题啊
大佬好,电脑端我nslookup了很多次,也清了dns cache和reboot软路由和电脑了,在v0.46.031-beta这个版本确实是将所有国内流量都fake ip了,回退到v0.46.014-beta,则一切正常了。烦请大佬帮忙再看看是啥问题。谢谢!
更新你的geosite
大佬,我已update了geosite,geo数据库订阅的三个和大陆白名单订阅也都update了。也重启软路由和电脑了,结果nslookup国内网站返回的还是fake ip,如下,请帮忙看看。谢谢!
log_2.txt
那就是v6的问题了,你先关了
更新到031版本,关V6,绕国内ip,正常
现在很多设备都用ipv6了,不用不现实啊,期待vernesong大佬在下个版本解决。谢谢!
插件设置 - DNS 设置 - 本地 DNS 劫持,把「Dnsmasq 转发」改为「使用防火墙转发」试试;
我更新 031 后改了这个设置才能访问境内网站/服务
更新到031版本,开启V6,绕国内ip,正常
我的是meta内核,fake-ip 增强模式,请问你的是什么模式?谢谢
正常的呀
流量控制
中将 实验性:绕过指定区域 IP
选择为绕过**大陆
流量控制
中将实验性:绕过指定区域 IP
选择为绕过**大陆
我和楼主问题差不多,也试过你说的这个设置,对我没作用;
最终只有把本地 DNS 劫持的「Dnsmasq 转发」改为「使用防火墙转发」才能正常访问境内站点
1.流量控制中将 实验性:绕过指定区域 IP选择为绕过**大陆
2.实验性:绕过**大陆 IPv6
3.本地 DNS 劫持的「Dnsmasq 转发」改为「使用防火墙转发」
--以上3点均试了,访问国内网站返回的还是fake-ip。应该是031版本问题,现在回退并使用014版本一切正常。
DNSMASQ转发,启动后试试这个
ip6tables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 7874 -m comment --comment "OpenClash DNS Hijack"
正常的啊,不過需要在Fake-IP-Filter添加
geoip:cn
根 @ LovinYarn 在 ~ [22:52:53]
$ nslookup www.baidu.com 伺服器:127.0.0.1 位址:127.0.0.1:53
www.baidu.com 規範名稱 = www.a.shifen.com 名稱:www.a.shifen.com 位址:240e:e9:6002:15a:0:ff:b05c:1278 名稱:www.a.shifen.com 位址:240e:e9:6002:15c:0:ff:b015:146f
www.baidu.com 規範名稱 = www.a.shifen.com 名稱:www.a.shifen.com 位址:180.101.50.242 名稱:www.a.shifen.com 位址:180.101.50.188
请问现在已经支持这项功能了吗?格式有什么要求吗?
尝试卸载 OpenClash、不还原配置文件,
然后重新安装 v0.46.031-beta,只安装内核、配置一键生成并启动 OpenClash 后,境内网站无法访问,只能访问境外网站;
最后只改插件设置 - DNS 设置 - 本地 DNS 劫持,由「Dnsmasq 转发」改为「使用防火墙转发」后才能正常访问境内网站
试试032呢
试试032呢
请问大佬 在哪download 032?谢谢!
更新选dev分支
尝试卸载 OpenClash、不还原配置文件, 然后重新安装 v0.46.031-beta,只安装内核、配置一键生成并启动 OpenClash 后,境内网站无法访问,只能访问境外网站; 最后只改插件设置 - DNS 设置 - 本地 DNS 劫持,由「Dnsmasq 转发」改为「使用防火墙转发」后才能正常访问境内网站
更新至 v0.46.032-beta,
再把本地 DNS 劫持,由「使用防火墙转发」改回默认的「Dnsmasq 转发」,问题仍旧
尝试卸载 OpenClash、不还原配置文件, 然后重新安装 v0.46.031-beta,只安装内核、配置一键生成并启动 OpenClash 后,境内网站无法访问,只能访问境外网站; 最后只改插件设置 - DNS 设置 - 本地 DNS 劫持,由「Dnsmasq 转发」改为「使用防火墙转发」后才能正常访问境内网站
更新至 v0.46.032-beta, 再把本地 DNS 劫持,由「使用防火墙转发」改回默认的「Dnsmasq 转发」,问题仍旧
你发日志
尝试卸载 OpenClash、不还原配置文件, 然后重新安装 v0.46.031-beta,只安装内核、配置一键生成并启动 OpenClash 后,境内网站无法访问,只能访问境外网站; 最后只改插件设置 - DNS 设置 - 本地 DNS 劫持,由「Dnsmasq 转发」改为「使用防火墙转发」后才能正常访问境内网站
更新至 v0.46.032-beta, 再把本地 DNS 劫持,由「使用防火墙转发」改回默认的「Dnsmasq 转发」,问题仍旧
OpenClash 版本号: v0.46.032-beta
Openwrt 固件版本: OpenWrt For N1 v0622 R24.6.6 / LuCI Master (git-24.172.27007-2c766c3)
问题表现:
无法访问境内网站(如 baidu.com 等),但访问境外网站正常(如 google.com 等)
日志,将「本地 DNS 劫持」设置为「Dnsmasq 转发」后,访问 baidu.com 测试:
插件设置-调试日志:
连接测试(当前浏览器),填写 baidu.com 测试:
找不到任何连接日志!
1. 可能是插件未在运行
2. 可能是缓存导致浏览直接使用 IP 地址进行访问
3. 可能是 DNS 未劫持成功,导致 Clash 无法正确反推出域名连接
4. 可能是所填地址无法进行解析和连接
DNS 测试(Clash 查询结果),填写 baidu.com 测试:
结果获取失败!
生成日志,见 log.tx 文件(其中无关设备、敏感信息已替换文本)
log.txt
内核日志(搜索 baidu.com 摘出 2 行):
2024-09-21 19:57:42 level=warning msg="[TCP] dial Domestic (match RuleSet/Domestic) 192.168.31.215:62091 --> www.baidu.com:443 error: dns resolve failed: all DNS requests failed, first error: requesting https://dns.google:443/dns-query: Get \"https://dns.google:443/dns-query?dns=AAABAAABAAAAAAAAA3d3dwViYWlkdQNjb20AAAEAAQ\": context deadline exceeded"
2024-09-21 19:57:42 level=warning msg="[TCP] dial Domestic (match RuleSet/Domestic) 192.168.31.215:62092 --> www.baidu.com:443 error: dns resolve failed: all DNS requests failed, first error: requesting https://dns.google:443/dns-query: Get \"https://dns.google:443/dns-query?dns=AAABAAABAAAAAAAAA3d3dwViYWlkdQNjb20AAAEAAQ\": context deadline exceeded"
因为0.46.014到031修改了很多东西,如果是014直接升级到031,
/etc/openclash
文件夹和/etc/config/openclash
OpenWrt配置参数里内容不会变更修改后的,依然是以前的参数,如果比较介意的话,还是推荐直接删除/etc/config/openclash
和/etc/openclash
文件内容,并重新安装OpenClash,但是也可以自己去修改添加014到031参数,我提供一下我目前的参数,你们可以自行尝试一下
重新安装 v0.46.031-beta 后覆盖升级至 v0.46.032-beta,然后仅安装内核、配置一键生成,修改过本地 DNS 劫持的情况下:
- 覆写设置 - DNS 设置,勾选「Fake-IP-Filter」、「Nameserver-Policy」(域名/规则均是默认的,没有改动),
- 插件设置 - DNS 设置 - 本地 DNS 劫持由「使用防火墙转发」改回默认的「使用 Dnsmasq 转发」,可正常访问境内外站点了
看看是否后续升级时都建议先卸载openclash,重启软路由后再安装新版本,然后看到openclash配置啥都没有时,按照提示下载内核配置好后再启动openclash,这样可避免从旧版本升级至新版本时存在旧版本参数残留导致出问题。
尝试卸载 OpenClash、不还原配置文件, 然后重新安装 v0.46.031-beta,只安装内核、配置一键生成并启动 OpenClash 后,境内网站无法访问,只能访问境外网站; 最后只改插件设置 - DNS 设置 - 本地 DNS 劫持,由「Dnsmasq 转发」改为「使用防火墙转发」后才能正常访问境内网站
更新至 v0.46.032-beta, 再把本地 DNS 劫持,由「使用防火墙转发」改回默认的「Dnsmasq 转发」,问题仍旧
OpenClash 版本号: v0.46.032-beta Openwrt 固件版本: OpenWrt For N1 v0622 R24.6.6 / LuCI Master (git-24.172.27007-2c766c3)
问题表现: 无法访问境内网站(如 baidu.com 等),但访问境外网站正常(如 google.com 等)
日志,将「本地 DNS 劫持」设置为「Dnsmasq 转发」后,访问 baidu.com 测试:
插件设置-调试日志: 连接测试(当前浏览器),填写 baidu.com 测试:
找不到任何连接日志! 1. 可能是插件未在运行 2. 可能是缓存导致浏览直接使用 IP 地址进行访问 3. 可能是 DNS 未劫持成功,导致 Clash 无法正确反推出域名连接 4. 可能是所填地址无法进行解析和连接
DNS 测试(Clash 查询结果),填写 baidu.com 测试:
结果获取失败!
生成日志,见 log.tx 文件(其中无关设备、敏感信息已替换文本) log.txt内核日志(搜索 baidu.com 摘出 2 行):
2024-09-21 19:57:42 level=warning msg="[TCP] dial Domestic (match RuleSet/Domestic) 192.168.31.215:62091 --> www.baidu.com:443 error: dns resolve failed: all DNS requests failed, first error: requesting https://dns.google:443/dns-query: Get \"https://dns.google:443/dns-query?dns=AAABAAABAAAAAAAAA3d3dwViYWlkdQNjb20AAAEAAQ\": context deadline exceeded" 2024-09-21 19:57:42 level=warning msg="[TCP] dial Domestic (match RuleSet/Domestic) 192.168.31.215:62092 --> www.baidu.com:443 error: dns resolve failed: all DNS requests failed, first error: requesting https://dns.google:443/dns-query: Get \"https://dns.google:443/dns-query?dns=AAABAAABAAAAAAAAA3d3dwViYWlkdQNjb20AAAEAAQ\": context deadline exceeded"
你自定义填两个nameserver