Closed zzfnuaa closed 9 years ago
以下内容为 @FelisCatus 在问题解决后追加,总结了问题、原因和解决方案:
长话短说: 使用 Shadowsocks 的用户如果遇到 Chrome + Windows 10 环境下 SOCKS5 不稳定的问题, 请在代理设置中换成 HTTP 代理协议。 原因已经确定,是迅雷组件修改系统连接参数所致,卸载迅雷并重启也能修复。此问题与 SwitchyOmega 无关,其他代理设置软件或者手动设置代理也会导致 Chrome 发生此问题。
或者, 请升级迅雷到版本 7.9.43 以上。 关于该版本迅雷的说明见此,迅雷官方声称修正了此问题。
以下为整个发现问题到讨论到解决的全过程,可供大家参考。接近讨论最下方有一些其他的解决方案(禁用迅雷组件或者修改参数等),也许能帮上您的忙。 如果某种解决方法有用,请点击评论右上角笑脸按钮,然后点个赞 :+1: 来表达感谢。请勿回复“我也是!”或者“+1”等无意义内容,否则参与讨论的所有人都会被邮件轰炸。
请打开地址chrome://net-internals/#proxy
,并将页面上显示的文本粘贴到这里。我看一下是否是代理设置相关的问题。
相关信息,供各位参考:
chrome://net-internals/#proxy
页面上的内容,就知道有何差异。以上这些,希望有用。因为这次我自己没有遇到此问题,也无法复现,且我自己对于网络协议细节了解比较少,所以没办法直接定位或者解决问题。遇到问题的各位可以先说明一下自己的浏览器版本,按照上面的说明,多提供一些信息,看看众人的智慧能否解决。
@FelisCatus Effective proxy settings
PAC script: data:application/x-ns-proxy-autoconfig;base64,LypPbWVnYVByb2ZpbGUqInNzLWF1dG8iKjE0ZjFiYmMzNWI1Ki92YXIgRm 整个太长了,超过规定的字数不让发,因此就复制了开始的这一段。另外,我QQ739073061,方便的话加下我,这样沟通更方便快捷。谢谢你
@FelisCatus 此外,当前系统是win10 X64,chrome是Version 44.0.2403.155 m,附上我ss的部分日志: [2015-08-15 21:07:40] Y站- DO San Francisco2 (104.236._.8:590) timed out [2015-08-15 21:15:08] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:16:07] System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at Shadowsocks.Controller.Handler.PipeRemoteReceiveCallback(IAsyncResult ar) [2015-08-15 21:17:33] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:19:21] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:20:03] System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at Shadowsocks.Controller.Handler.PipeRemoteReceiveCallback(IAsyncResult ar) [2015-08-15 21:29:39] System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at Shadowsocks.Controller.Handler.PipeRemoteReceiveCallback(IAsyncResult ar) [2015-08-15 21:47:46] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:47:49] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:47:49] System.Net.Sockets.SocketException (0x80004005): An invalid argument was supplied at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.InternalBind(EndPoint localEP) at System.Net.Sockets.Socket.BeginConnectEx(EndPoint remoteEP, Boolean flowContext, AsyncCallback callback, Object state) at System.Net.Sockets.Socket.BeginConnect(EndPoint remoteEP, AsyncCallback callback, Object state) at Shadowsocks.Controller.Handler.StartConnect() [2015-08-15 21:47:49] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:47:52] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:47:52] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:47:52] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:51:40] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:51:40] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:52:20] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:52:23] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:52:28] System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at Shadowsocks.Controller.Handler.PipeRemoteReceiveCallback(IAsyncResult ar) [2015-08-15 21:52:30] System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at Shadowsocks.Controller.Handler.PipeRemoteReceiveCallback(IAsyncResult ar) [2015-08-15 21:52:36] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:52:36] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:52:39] Y站- DO San Francisco2 (104.236..8:590) timed out [2015-08-15 21:52:39] Y站- DO San Francisco2 (104.236..8:5_90) timed out [2015-08-15 21:53:36] System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at Shadowsocks.Controller.Handler.PipeRemoteReceiveCallback(IAsyncResult ar) [2015-08-15 21:55:08] System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at Shadowsocks.Controller.Handler.PipeRemoteReceiveCallback(IAsyncResult ar) [2015-08-15 21:55:11] System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at Shadowsocks.Controller.Handler.PipeRemoteReceiveCallback(IAsyncResult ar)
@zzfnuaa 自动切换模式的设置实在是太长了,而且用于测试代理很不方便。建议直接选中 shadowsocks 所用的那个情景模式,这样可以全局应用代理,然后试试看问题是否仍然存在。如果是的话,请再次检查一下chrome://net-internals/#proxy
页面的内容。麻烦您了。
@FelisCatus 您太客气了,你帮我解决问题,是我麻烦你了,谢谢!刚才使用的时候能打开youtube,这几天的使用过程中无法翻墙的情况时不时出现。内容如下: Effective proxy settings
Proxy server for everything else: socks5://127.0.0.1:1080 Bypass list: 127.0.0.1 [::1] localhost
同时间ss的日志如下: [2015-08-16 15:46:23] Shadowsocks started [2015-08-16 15:47:03] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:47:07] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:47:10] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:50:20] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:50:20] System.Net.Sockets.SocketException (0x80004005): An invalid argument was supplied at System.Net.Sockets.Socket.BeginConnectEx(EndPoint remoteEP, Boolean flowContext, AsyncCallback callback, Object state) at System.Net.Sockets.Socket.BeginConnect(EndPoint remoteEP, AsyncCallback callback, Object state) at Shadowsocks.Controller.Handler.StartConnect() [2015-08-16 15:50:23] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:50:23] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:50:25] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:50:39] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:50:39] System.Net.Sockets.SocketException (0x80004005): An invalid argument was supplied at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.InternalBind(EndPoint localEP) at System.Net.Sockets.Socket.BeginConnectEx(EndPoint remoteEP, Boolean flowContext, AsyncCallback callback, Object state) at System.Net.Sockets.Socket.BeginConnect(EndPoint remoteEP, AsyncCallback callback, Object state) at Shadowsocks.Controller.Handler.StartConnect() [2015-08-16 15:50:42] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:50:42] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:51:02] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:51:31] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:51:36] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:51:39] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:51:41] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 15:52:04] System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at Shadowsocks.Controller.Handler.PipeRemoteReceiveCallback(IAsyncResult ar)
@FelisCatus 重启电脑后,又翻不了墙了。内容如下 Effective proxy settings
Proxy server for everything else: socks5://127.0.0.1:1080 Bypass list: 127.0.0.1 [::1] localhost
同时间的ss日志[2015-08-16 16:12:56] failed to recv data in handshakeReceive2Callback [2015-08-16 16:13:10] System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at Shadowsocks.Controller.Handler.PipeRemoteReceiveCallback(IAsyncResult ar) [2015-08-16 16:13:10] System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at Shadowsocks.Controller.Handler.PipeRemoteReceiveCallback(IAsyncResult ar) [2015-08-16 16:13:12] failed to recv data in handshakeReceive2Callback [2015-08-16 16:13:24] failed to recv data in handshakeReceive2Callback [2015-08-16 16:13:24] failed to recv data in handshakeReceive2Callback [2015-08-16 16:13:24] failed to recv data in handshakeReceive2Callback [2015-08-16 16:13:26] failed to recv data in handshakeReceive2Callback [2015-08-16 16:13:29] failed to recv data in handshakeReceive2Callback [2015-08-16 16:13:41] failed to recv data in handshakeReceive2Callback [2015-08-16 16:13:42] failed to recv data in handshakeReceive2Callback [2015-08-16 16:14:06] failed to recv data in handshakeReceive2Callback [2015-08-16 16:14:13] failed to recv data in handshakeReceive2Callback [2015-08-16 16:14:43] failed to recv data in handshakeReceive2Callback [2015-08-16 16:14:44] failed to recv data in handshakeReceive2Callback [2015-08-16 16:15:05] failed to recv data in handshakeReceive2Callback
@FelisCatus 切换到系统代理后,youtube可以打开了,内容如下 Effective proxy settings
PAC script: http://127.0.0.1:1080/pac?t=201508161609214414 Source: SYSTEM Original proxy settings
(1) Auto-detect (2) PAC script: http://127.0.0.1:1080/pac?t=201508161609214414 Source: SYSTEM
同时间ss日志 [2015-08-16 16:16:24] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 16:16:59] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 16:17:02] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 16:17:02] Y站- DO San Francisco2 (104.236..8:51490) timed out [2015-08-16 16:17:05] Y站- DO San Francisco2 (104.236..8:51490) timed out
@zzfnuaa 看看PAC里的内容(shadowsock运行的时候,直接点那个连接打开),使用的代理协议是SOCKS5吗?
此外,还可以试试看创建一个PAC情景模式,URL填写http://127.0.0.1:1080/pac?t=201508161609214414
之类的。这样效果如何?理论上来说,这样就会直接使用shadowsocks提供的PAC文件,和使用系统代理效果应该类似。
@FelisCatus PAC里的内容如下
// Generated by gfwlist2pac in precise mode
// https://github.com/clowwindy/gfwlist2pac
var proxy = "PROXY 127.0.0.1:1080;";
// ...
@FelisCatus 附上我的SwitchyOmega设置
@zzfnuaa 可以看到shadowsocks中生成的是PROXY 127.0.0.1:1080;
,用的是HTTP协议,而非 SOCKS5 协议。
如果使用 SwitchyOmega 的话,可以将设置也改成 HTTP 协议,就应该能正常使用了。
至于为什么SOCKS5不能用嘛……至少SwitchyOmega的嫌疑可以排除了,接下去我觉得就应该怀疑Chrome或者Windows10了。
在shadowsocks client不启用系统代理的情况下,无论使用SwitchyOmega、SwitchySharp、firefox直接设置socks5代理都无法正常使用,谨慎怀疑是win10作大死啦┑( ̄Д  ̄)┍
@langxuan 等等, Firefox 也不行?最好到shadowsocks那边相关的issue说一下这种情况,然后再抓点包什么的,看看是否能有帮助。
@zzfnuaa 建议你看看你已经更新了新的累计补丁没,尽快更新一下试试.我的系统环境和你类似,刚安装的时候的确有这个问题,不过更新之后就没出现了,
@FelisCatus 这个问题应该是shadowsocks新版使用4.0的.Net框架后因为套接字协议本身字长发生变化造成的,不过在win10 64位 第三个集合补丁之后,似乎这个兼容性问题已经解决
@FelisCatus 我使用wireshark v1.12.7抓了些数据,上传到百度云,http://pan.baidu.com/s/1eQpoHUE,http://pan.baidu.com/s/1dDlmU21。系统win10 pro X64 英文版,chrome 44.0.2403.155 m,shadowsocks 2.5.5。
@Tback1 我今天上午安装了最新的KB3081444,但是还是有这问题。。。。
那边 Issue 已经关掉了,具体可以看这里的说明{链接已经失效!}。如果您的情况和之前的结论不相符,建议去那边汇报并提供相关信息。 由于暂时的结论是这并不是一个问题,所以我这边也先关掉好了。关闭Issue不等于关闭评论,只是标记此问题已经解决/不存在而已。如果有任何内容仍然可以继续回复讨论,欢迎继续对协议细节进行探讨。
我本身用的是Shadowsocks-QT5+win10+SwitchyOmega+chome+SOCKS5,能正常使用,但今天用了shadowsocks2.5.6+win10+SwitchyOmega+chome+SOCKS5,就不能正常使用,改用http虽然能用但比较慢,无奈之下再重装一下系统,换回原来的Shadowsocks-QT5+win10+SwitchyOmega+chome+SOCKS5,正常使用中.....
我也是同样情况,升级win10就不好使了
windows10正式版刚发布就使用chrome+switchyomega+shadowsocks的方案,一直正常,今天突然发现自动切换与使用代理的方案不能正常google。因为天天使用google,所以确信昨天还是正常的。仔细看了才发现其他软件都正常,Edge上网dropbox同步都正常,然后试试使用switchyomega的系统代理,确实也是正常,如楼上所说。然后上网搜索才发现这里有人讨论。水平有限只能这样反馈一下了。
我发现好像是升级win10之后是有一些问题的,但是在另一个电脑上是正常的,区别好像是因为另一个电脑重置过。推测是重置过或者全新安装的win10是没问题的
那边的 Issue 不在了,所以我再说一下之前的讨论结果。
长话短说: 使用 Shadowsocks 的用户如果遇到 Chrome + Windows 10 环境下 SOCKS5 不稳定的问题, 请在代理设置中换成 HTTP 代理协议。
有些用户反映SOCKS5不稳定或者没法用,也有用户没有遇到任何问题的。至于是为什么,我也不知道。SS那边之前的讨论结果是错误信息不影响使用,但也许是其他问题呢?总之暂时而言用 HTTP 比较保险。
协议换成http应该能解决问题。在shadowsocks Issue board 关闭之前,clowwindy发现最新版chrome在socks5行为上有变化,导致提前关闭连接。采用http方式后,ss先把http传送到ss_polipo翻译成socks5,然后ss重新把socks5加密收发。
遇到了相同的问题。Chrome版本 43.0.2357.134
禁用switchyomega外的所有插件。 socks5连接不上;http正常;系统代理正常
@FelisCatus 最近发现只要卸载掉迅雷或者安装迅雷的时候不勾选多浏览器支持,sock5下翻墙就正常了。
@FelisCatus 我觉得是chrome的问题,前天我也发现了忽然代理不好用了,然后试了很久,64bit和32bit的chrome上所有的代理软件都有问题,但是在canary上就一切正常,连omega的设置都是自动同步到canary上的,所以目前暂用canary
@zzfnuaa 真的可能是迅雷!我的win10在7月29日发布正式版左右安装至今已1个月,一直正常,现在看你提起迅雷才想起,26日为了下载一个镜像装了迅雷,27日早上开机就发现异常了。
@zzfnuaa @yymyyy 我觉得你们说的可能也有道理……毕竟这种软件很可能会修改系统的连接设置(尤其是TCP相关的)从而达到优化下载速度或者某些其他目的。如果其他人有兴趣的话可以试试看,或者用虚拟机之类的看看是否能重现。
复现了,更新迅雷之后开始出现这样的问题- -
早上更新了迅雷, 代理就不能用了, 刚刚卸载迅雷重启后就正常了...
各位迅雷用户试试看在管理员权限命令行运行netsh winsock reset
,看看是否能修复?如果能的话就不用卸载迅雷了。
请求的内容需要提升
还真是改成http就可以用了自动切换了
真是迅雷的问题,刚才把迅雷卸载了,自动切换就好了sock5也可以了
用HTTP就行= =,表示迅雷好脏,求替代品
似乎和迅雷多浏览器支持功能有关系呢
升级Windows10之后并没有出现问题,没有使用迅雷。可能就是迅雷的问题了。
似乎和其他有关,又时不时出现这问题呢
卸载了迅雷就好了。一直正常,昨天刚安装了迅雷今天就不正常了
我是最近才出现的这种情况, 环境:Win 7 64位,chrome 45+(chrome一直跟进最新版),Shadowsocks,switchyomega,迅雷(迅雷一直都有,以前也没出现过问题) 改成HTTP模式百度和github可以访问twitter和google不能访问,改成socket4/5模式正好相反。好奇怪 然而我把Shadowsocks客户端代理端口哦换了一个(以前是1090现在8888)一切正常了。 以上是我的情况,希望能提供一些信息/。
用了一下午都是好的,突然又不行了,秒改端口,现在可以了。可以说明是chrome45+的问题
浏览器请求0x5 0x1 0x0,代理返回0x5 0x0之后浏览器没有继续请求,最后超时断开
我的环境是chrome 45(stable 64bit) + win 7 专业版(64 bit)+ shadowsocks 2.5.2到2.5.8,Switchy Sharp和Switchy Omega直连和代理均不能使用,唯一的情况是只有ss开了系统代理+omega系统代理才能连接。同时dropbox用socks5代理可以连接,所以ss并没有问题。 chrome的问题是突然出现的,怀疑是在chrome后台升级之后。重装chrome并未解决这个问题,把设置里socks5改成http终于恢复。
可以确认不是ss的问题 dropbox走相同的socks5没问题。 ss日志中没有浏览器访问的记录 是设置的代理失效 还没抓包看到底走哪里去了
win10 可能改了系统端口占用的报错机制,导致楼主没有发现问题所在。 我的win7,一星期前迅雷的后台常驻进程 ThunderPlatform.exe 突然一反常态的占用了本机1080端口,导致ss出错。
解决方法: 先运行ss,或先退出这个迅雷后台进程,抢占端口,再开迅雷就没问题了。或者把你的ss的本机端口号改成其他数字。楼主用系统代理可以访问,不走特殊端口,也能解决,是同一个道理。
至于为什么迅雷突然这么反常。不知原因。 检查这个出错,其实很简单,用这个命令看谁占用了1080口(或你设置的端口号) netstat -b
比如我的结果:
C:\Windows\system32>netstat -b
活动连接
协议 本地地址 外部地址 状态 TCP 127.0.0.1:1080 licensing:14283 ESTABLISHED [Shadowsocks.exe]
See: shadowsocks/shadowsocks-windows#247.
netsh winsock reset使用后重启恢复,再次打开迅雷后会再次失效
@SaenaiYuki 好吧,真遗憾。这样大概就能确认是迅雷改了网络相关设置了,虽然我也不知道具体是什么。
重置winsock 如果系统打开了UAC 迅雷开启一段时间后会要求一个系统权限 此时如果允许 就会被修改 ;不允许 也不会影响下载
最近升级到win10后SwitchyOmega+SS翻墙不稳定了,经常网页打不开。一开始认为是ss的问题,后来在SS论坛看到该帖https://github.com/shadowsocks/shadowsocks-windows/issues/247 (请仔细看下这个帖子)。目前在SwitchyOmega中选择系统代理,配合ss,翻墙正常。是哪出问题了,请指导,谢谢!