OpenClash icon indicating copy to clipboard operation
OpenClash copied to clipboard

升级到v0.46.031-beta的绕过国内IP功能失效了

Open SanLiGu opened this issue 1 year ago • 34 comments

Verify Steps

  • [X] Tracker 我已经在 Issue Tracker 中找过我要提出的问题
  • [X] Branch 我知道 OpenClash 的 Dev 分支切换开关位于插件设置-版本更新中,或者我会手动下载并安装 Dev 分支的 OpenClash
  • [x] Latest 我已经使用最新 Dev 版本测试过,问题依旧存在
  • [x] Relevant 我知道 OpenClash 与 内核(Core)、控制面板(Dashboard)、在线订阅转换(Subconverter)等项目之间无直接关系,仅相互调用
  • [X] Definite 这确实是 OpenClash 出现的问题
  • [X] Contributors 我有能力协助 OpenClash 开发并解决此问题
  • [X] 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则正常 image image image image

To Reproduce

升级到v0.46.031-beta,nslookup 国内网站

OpenClash Log

请见附件。

OpenClash Config

No response

Expected Behavior

v0.46.031-beta的绕过国内IP功能可以正常

Additional Context

log.txt

SanLiGu avatar Sep 20 '24 02:09 SanLiGu

路由本机的测试没有问题啊

vernesong avatar Sep 20 '24 04:09 vernesong

大佬好,电脑端我nslookup了很多次,也清了dns cache和reboot软路由和电脑了,在v0.46.031-beta这个版本确实是将所有国内流量都fake ip了,回退到v0.46.014-beta,则一切正常了。烦请大佬帮忙再看看是啥问题。谢谢!

SanLiGu avatar Sep 20 '24 04:09 SanLiGu

更新你的geosite

vernesong avatar Sep 20 '24 04:09 vernesong

大佬,我已update了geosite,geo数据库订阅的三个和大陆白名单订阅也都update了。也重启软路由和电脑了,结果nslookup国内网站返回的还是fake ip,如下,请帮忙看看。谢谢! log_2.txt

image

SanLiGu avatar Sep 20 '24 04:09 SanLiGu

那就是v6的问题了,你先关了

vernesong avatar Sep 20 '24 08:09 vernesong

更新到031版本,关V6,绕国内ip,正常

usinmine avatar Sep 20 '24 09:09 usinmine

现在很多设备都用ipv6了,不用不现实啊,期待vernesong大佬在下个版本解决。谢谢!

SanLiGu avatar Sep 20 '24 11:09 SanLiGu

插件设置 - DNS 设置 - 本地 DNS 劫持,把「Dnsmasq 转发」改为「使用防火墙转发」试试; 我更新 031 后改了这个设置才能访问境内网站/服务

Angynond avatar Sep 20 '24 12:09 Angynond

把「Dnsmasq 转发」改为「使用防火墙转发」,问题依旧。另外,请教下大佬们,Dnsmasq 转发和使用防火墙转发,两者哪个性能比较好?谢谢! image image

SanLiGu avatar Sep 20 '24 14:09 SanLiGu

更新到031版本,开启V6,绕国内ip,正常

Aethersailor avatar Sep 20 '24 14:09 Aethersailor

我的是meta内核,fake-ip 增强模式,请问你的是什么模式?谢谢

SanLiGu avatar Sep 20 '24 14:09 SanLiGu

Fake-IP-Filter是自带的,我只是勾选了,能否发下你的截图看看,谢谢!同样的配置,我回退到014版本,nslookup 国内ip都是正常的。谢谢!

你好,我的 image

SanLiGu avatar Sep 20 '24 15:09 SanLiGu

正常的呀

sandaisi avatar Sep 20 '24 17:09 sandaisi

流量控制中将 实验性:绕过指定区域 IP选择为绕过中国大陆

akaet avatar Sep 20 '24 18:09 akaet

流量控制中将 实验性:绕过指定区域 IP选择为绕过中国大陆

我和楼主问题差不多,也试过你说的这个设置,对我没作用; 最终只有把本地 DNS 劫持的「Dnsmasq 转发」改为「使用防火墙转发」才能正常访问境内站点

Angynond avatar Sep 20 '24 19:09 Angynond

1.流量控制中将 实验性:绕过指定区域 IP选择为绕过中国大陆 2.实验性:绕过中国大陆 IPv6 3.本地 DNS 劫持的「Dnsmasq 转发」改为「使用防火墙转发」 --以上3点均试了,访问国内网站返回的还是fake-ip。应该是031版本问题,现在回退并使用014版本一切正常。

SanLiGu avatar Sep 21 '24 01:09 SanLiGu

DNSMASQ转发,启动后试试这个

ip6tables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 7874 -m comment --comment "OpenClash DNS Hijack"

vernesong avatar Sep 21 '24 02:09 vernesong

DNSMASQ转发,启动后试试这个

ip6tables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 7874 -m comment --comment "OpenClash DNS Hijack"

大佬好,按照您说的试了,问题依旧,如下: image image image

SanLiGu avatar Sep 21 '24 02:09 SanLiGu

DNSMASQ转发,启动后试试这个

ip6tables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 7874 -m comment --comment "OpenClash DNS Hijack"

大佬好,按照您说的试了,问题依旧,如下: image image image

还发现031版本nslook出来的name自动加了.lan,014版本则没有,如下: 031版本: image

014版本: image

SanLiGu avatar Sep 21 '24 03:09 SanLiGu

正常的啊,不過需要在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

请问现在已经支持这项功能了吗?格式有什么要求吗?

sun1a2b3c avatar Sep 21 '24 03:09 sun1a2b3c

https://support.azure.cn/docs/azure-operations-guide/virtual-network/aog-virtual-network-qa-nslookup-parse-dns-abnormal.html

vernesong avatar Sep 21 '24 04:09 vernesong

尝试卸载 OpenClash、不还原配置文件, 然后重新安装 v0.46.031-beta,只安装内核、配置一键生成并启动 OpenClash 后,境内网站无法访问,只能访问境外网站; 最后只改插件设置 - DNS 设置 - 本地 DNS 劫持,由「Dnsmasq 转发」改为「使用防火墙转发」后才能正常访问境内网站

Angynond avatar Sep 21 '24 06:09 Angynond

试试032呢

vernesong avatar Sep 21 '24 09:09 vernesong

试试032呢

请问大佬 在哪download 032?谢谢!

SanLiGu avatar Sep 21 '24 09:09 SanLiGu

更新选dev分支

vernesong avatar Sep 21 '24 10:09 vernesong

尝试卸载 OpenClash、不还原配置文件, 然后重新安装 v0.46.031-beta,只安装内核、配置一键生成并启动 OpenClash 后,境内网站无法访问,只能访问境外网站; 最后只改插件设置 - DNS 设置 - 本地 DNS 劫持,由「Dnsmasq 转发」改为「使用防火墙转发」后才能正常访问境内网站

更新至 v0.46.032-beta, 再把本地 DNS 劫持,由「使用防火墙转发」改回默认的「Dnsmasq 转发」,问题仍旧

Angynond avatar Sep 21 '24 10:09 Angynond

尝试卸载 OpenClash、不还原配置文件, 然后重新安装 v0.46.031-beta,只安装内核、配置一键生成并启动 OpenClash 后,境内网站无法访问,只能访问境外网站; 最后只改插件设置 - DNS 设置 - 本地 DNS 劫持,由「Dnsmasq 转发」改为「使用防火墙转发」后才能正常访问境内网站

更新至 v0.46.032-beta, 再把本地 DNS 劫持,由「使用防火墙转发」改回默认的「Dnsmasq 转发」,问题仍旧

你发日志

vernesong avatar Sep 21 '24 11:09 vernesong

尝试卸载 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"

Angynond avatar Sep 21 '24 12:09 Angynond

因为0.46.014到031修改了很多东西,如果是014直接升级到031,/etc/openclash文件夹和/etc/config/openclashOpenWrt配置参数里内容不会变更修改后的,依然是以前的参数,如果比较介意的话,还是推荐直接删除/etc/config/openclash/etc/openclash文件内容,并重新安装OpenClash,但是也可以自己去修改添加014到031参数,我提供一下我目前的参数,你们可以自行尝试一下 Fake-IP-Filter Nameserver-Policy

重新安装 v0.46.031-beta 后覆盖升级至 v0.46.032-beta,然后仅安装内核、配置一键生成,修改过本地 DNS 劫持的情况下:

  1. 覆写设置 - DNS 设置,勾选「Fake-IP-Filter」、「Nameserver-Policy」(域名/规则均是默认的,没有改动),
  2. 插件设置 - DNS 设置 - 本地 DNS 劫持由「使用防火墙转发」改回默认的「使用 Dnsmasq 转发」,可正常访问境内外站点了

Angynond avatar Sep 21 '24 13:09 Angynond

更新选dev分支

大佬好,我按照上面哥们说的将014卸载,然后重启软路由,再安装031版本,显示031版本里面什么配置都没有,连内核都要下载。下载好内核配置好后,依然选择绕过国内ip。现在问题已解决。我怀疑之前出的问题都是014的参数还残留,因为之前我都是从014直接升级到031,参数还保留者。所以导致这个问题。谢谢大家!如下: image image

SanLiGu avatar Sep 21 '24 13:09 SanLiGu