OpenClash icon indicating copy to clipboard operation
OpenClash copied to clipboard

[Bug] 局域网设备走SOCKS5/HTTP(S)代理时部分网站无法访问

Open ASTPoseidon opened this issue 1 year ago • 13 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 出现的问题
  • [ ] Contributors 我有能力协助 OpenClash 开发并解决此问题
  • [ ] Meaningless 我提交的是无意义的催促更新或修复请求

OpenClash Version

v0.45.157-beta

Bug on Environment

Official OpenWrt

OpenWrt Version

OpenWrt R23.11.09 (2023-11-09 13:16:21 by flippy) / LuCI Master (git-23.305.37706-43242b7)

Bug on Platform

Linux-arm64

Describe the Bug

局域网设备走SOCKS5/HTTP(S)代理时部分网站无法访问,比如网站 https://test-ipv6.com/ (还有微软等服务),固件运行在旁路由模式,所有有关ipv6功能均已关闭,防火墙关,ip动态伪装开关均试过。这个问题只在使用SOCKS5/HTTP(S)代理时部分网站无法访问,若走本机流量则可以正常访问(即静态IP填op)。openclash均为默认配置,试过不同模式和meta内核均无果。

To Reproduce

无法打开网站

OpenClash Log

附件

OpenClash Config

No response

Expected Behavior

内网设备走SOCKS5/HTTP(S)代理时所有网站均可以达到走本机流量一样的效果

Additional Context

log.txt

ASTPoseidon avatar Jan 18 '24 18:01 ASTPoseidon

方便请教一下吗 我电脑只能设置HTTP 如何用socks5

网上说填http填ip socks填socks=ip就行 但我尝试失败 就算是7893端口 可以用http 但没法用sock

p.s.我看了您的日志 建议启动OpenClash后走本机流量可以正常访问(即静态IP填op) 再切换到SOCKS5/HTTP(S)代理连接https://test-ipv6.com/ (还有微软等服务)的同时生成日志 未启动状态没有连接信息

ghost avatar Jan 19 '24 02:01 ghost

我只用了系统http代理,使用sock5的话在对应客户端里设置IP和端口号应该也就可以了吧,不清楚你为什么会有问题。

ASTPoseidon avatar Jan 19 '24 02:01 ASTPoseidon

感谢回复 我就是用的系统代理 https://zhuanlan.zhihu.com/p/587396985 不过没事 反正http可以使用 所以一直也没管 正好看见你的帖子就进来问问

ghost avatar Jan 19 '24 03:01 ghost

方便请教一下吗 我电脑只能设置HTTP 如何用socks5

网上说填http填ip socks填socks=ip就行 但我尝试失败 就算是7893端口 可以用http 但没法用sock

p.s.我看了您的日志 建议启动OpenClash后走本机流量可以正常访问(即静态IP填op) 再切换到SOCKS5/HTTP(S)代理连接https://test-ipv6.com/ (还有微软等服务)的同时生成日志 未启动状态没有连接信息

看你电脑什么软件设置,如果是浏览器的话,直接在浏览器把对应的IP+端口号填入即可,并确保calsh的socks5端口号已经开启 其它软件应该也有相应的设置选项或页面,应该不难

yellowsavant avatar Jan 19 '24 05:01 yellowsavant

方便请教一下吗 我电脑只能设置HTTP 如何用socks5 网上说填http填ip socks填socks=ip就行 但我尝试失败 就算是7893端口 可以用http 但没法用sock p.s.我看了您的日志 建议启动OpenClash后走本机流量可以正常访问(即静态IP填op) 再切换到SOCKS5/HTTP(S)代理连接https://test-ipv6.com/ (还有微软等服务)的同时生成日志 未启动状态没有连接信息

看你电脑什么软件设置,如果是浏览器的话,直接在浏览器把对应的IP+端口号填入即可,并确保calsh的socks5端口号已经开启 其它软件应该也有相应的设置选项或页面,应该不难

感谢回复 没有用任何软件 就是Windows系统自带的系统代理 https://zhuanlan.zhihu.com/p/587396985 socks端口和mix端口都试了 mix端口用http是通的 在路由器插件里用socks时填127.0.0.1:socks端口或mix端口也都是通的

网上搜到的 http://socks=ip:port socks=ip:port socks://ip:port 都试过

不过我已经放弃好久了 http能用就行

ghost avatar Jan 19 '24 08:01 ghost

没在用旁路由,只能帮忙分析下

仅有的运行日志部分fallback的dns查询不成功,但是你又说能正常使用,这就有些矛盾了。所以可能是你用http连时节点掉线?再试试没准就好了。别的没看出来。

另如tengaga所说,内核没启动,基本没啥信息,建议按他说的操作一下再发个。我的建议是最好发两个(除非你手速够快),一个静态ip连testipv6正常时的,一个http代理连testipv6异常时的。

ghost avatar Jan 19 '24 16:01 ghost

没在用旁路由,只能帮忙分析下

仅有的运行日志部分fallback的dns查询不成功,但是你又说能正常使用,这就有些矛盾了。所以可能是你用http连时节点掉线?再试试没准就好了。别的没看出来。

另如tengaga所说,内核没启动,基本没啥信息,建议按他说的操作一下再发个。我的建议是最好发两个(除非你手速够快),一个静态ip连testipv6正常时的,一个http代理连testipv6异常时的。

感谢您的回复,我也很好奇此问题是由何造成的。 下面是日志文件,当服务启动后我便随即使用微软edge浏览器不断打开 https://test-ipv6.com/ 网站,结果正如我所说的那样一开始是相同的。 为了进一步验证问题,我试了试安装浏览器插件去使用浏览器插件代理而不是windows系统代理,当插件首先走http代理时和走windows代理结果相同,都是不通。之后我又用浏览器插件跑sock5代理,奇怪的是可以正常访问了。我随后又试了浏览器插件http代理也正常了,关闭浏览器代理仅走windows代理同样恢复正常。我还特意使用不同终端走系统代理(安卓14使用系统WLAN代理)来排除终端环境原因,发现其它终端也正常了,总之就是很玄学,感觉连接sock5代理像是打通任督二脉一样hh。 操作一共分为三个阶段,分别对应三个日志文件,我不确定它是否会在一段时间后再次异常。 http代理(异常).txt 本机流量(正常).txt http代理(正常).txt

ASTPoseidon avatar Jan 19 '24 17:01 ASTPoseidon

没在用旁路由,只能帮忙分析下

仅有的运行日志部分fallback的dns查询不成功,但是你又说能正常使用,这就有些矛盾了。所以可能是你用http连时节点掉线?再试试没准就好了。别的没看出来。

另如tengaga所说,内核没启动,基本没啥信息,建议按他说的操作一下再发个。我的建议是最好发两个(除非你手速够快),一个静态ip连testipv6正常时的,一个http代理连testipv6异常时的。

感谢您的回复,我也很好奇此问题是由何造成的。 下面是日志文件,当服务启动后我便随即使用微软edge浏览器不断打开 https://test-ipv6.com/ 网站,结果正如我所说的那样一开始是相同的。 为了进一步验证问题,我试了试安装浏览器插件去使用浏览器插件代理而不是windows系统代理,当插件首先走http代理时和走windows代理结果相同,都是不通。之后我又用浏览器插件跑sock5代理,奇怪的是可以正常访问了。我随后又试了浏览器插件http代理也正常了,关闭浏览器代理仅走windows代理同样恢复正常。我还特意使用不同终端走系统代理(安卓14使用系统WLAN代理)来排除终端环境原因,发现其它终端也正常了,总之就是很玄学,感觉连接sock5代理像是打通任督二脉一样hh。 操作一共分为三个阶段,分别对应三个日志文件,我不确定它是否会在一段时间后再次异常。 http代理(异常).txt 本机流量(正常).txt http代理(正常).txt

我看日志发现貌似异常时的流量就没经过内核代理? 当时访问Google正常,访问testipv6的确长时间无响应。

ASTPoseidon avatar Jan 19 '24 18:01 ASTPoseidon

就是dns没代理上,不知道ip肯定没流量了,正常一次等于是强制要求走代理查,知道地址了,你也允许dnsmasq缓存了,所以再切回去就能能连了。你找个国内的ipv6网址就是正常的,没那么玄乎。

解决的话,改配置文件最彻底,用fakeip应该也行

ghost avatar Jan 20 '24 03:01 ghost

就是dns没代理上,不知道ip肯定没流量了,正常一次等于是强制要求走代理查,知道地址了,你也允许dnsmasq缓存了,所以再切回去就能能连了。你找个国内的ipv6网址就是正常的,没那么玄乎。

解决的话,改配置文件最彻底,用fakeip应该也行

明白了,感谢耐心解答。

ASTPoseidon avatar Jan 20 '24 03:01 ASTPoseidon

没事,我在已经猜测是代理问题的情况下,还让你搞了一大堆调试日志,实际看最终成果,只要内核的debug日志就行了XD

ghost avatar Jan 20 '24 04:01 ghost

今天更新了订阅配置,又开始了😭,fakeip也无效,换节点也无效。

ASTPoseidon avatar Jan 22 '24 13:01 ASTPoseidon

那就改配置文件呗,你不是自己用订阅转换手搓的吧?那就oc覆写开自定义dns(可以把你原本的dns添加进去,然后编辑里让dns走代理。 https://github.com/vernesong/OpenClash/issues/3721#issuecomment-1890277393

另,为啥非要拘泥于testipv6?这玩意不就是查个v6有没有通吗?反正在直连规则里,为啥不直接找个国内网站,就算不放心国内的个人镜像,用几个大学的测速网站间接验证也还是没问题的吧?

ghost avatar Jan 22 '24 20:01 ghost

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days

github-actions[bot] avatar Mar 23 '24 08:03 github-actions[bot]