Shadowsocks-windows: failed to recv data in handshakeReceive2Callback

Created on 30 Jul 2015  ·  71Comments  ·  Source: shadowsocks/shadowsocks-windows

昨天还正常使用呢,今天打开就发现报错了,错误信息:
failed to recv data in handshakeReceive2Callback
请问这个是什么问题导致的?

Most helpful comment

确认是迅雷的问题。

以下是方案:

首先,进入系统管理,禁用相关服务。以 Windows 7 为例:
开始菜单 -> 计算机 -> 右键 -> 服务和应用程序 -> 服务 -> XLServicePlatform
将启动类型改为「禁用」,并停止当前正在运行的服务。

接下来,找到该服务的相关文件。以 Windows 7 32-bit 为例:
C:\Program Files\Common Files\Thunder Network\ServicePlatform
将上述目录改名为 ServicePlatform_bak,在同目录下(Thunder Network)新建 ServicePlatform 目录。右键该新目录,在安全选项卡中将目录的读写权限设置为「拒绝」。

解决问题。

All 71 comments

版本:
2.5.1
os:win7 x64
配置文件:
{
"configs" : [
{
"server" : "_._._._",
"server_port" : *_,
"password" : "
_*
",
"method" : "aes-256-cfb",
"remarks" : "usa"}

],
"strategy" : null,
"index" : 0,
"global" : false,
"enabled" : true,
"shareOverLan" : false,
"isDefault" : false,
"localPort" : 20800,
"pacUrl" : null,
"useOnlinePac" : false}

已经在win7的防火墙中添加允许此进程的通信了。

chrome已经重装,switchy也重装过了,退回到2.4依然无解。

日志:
[2015-07-30 15:18:15] Shadowsocks started
[2015-07-30 15:19:17] failed to recv data in handshakeReceive2Callback
[2015-07-30 15:19:17] failed to recv data in handshakeReceive2Callback
[2015-07-30 15:19:47] failed to recv data in handshakeReceive2Callback
[2015-07-30 15:19:52] failed to recv data in handshakeReceive2Callback

回到2.3.1竟然也有这个问题?看样子就不是软件的问题了。。。。?奇哉怪哉

应该是浏览器代理设置问题,卸载所有的代理插件,或者设置使用系统代理。

重装后就只安装了switchysharp这一个插件,仍然有此问题,现在使用系统代理,已经可以翻墙了。多谢老大。

可能是因为你未将浏览器的代理配置为SOCKS5,而选择了默认的HTTP。

HTTP 也是支持的,有可能是设成了 SOCKS4,或者其它我们暂时想不出还能怎么设的设置。

有点奇怪的是默认使用http的话可以正常使用,sock5就不行

https://groups.google.com/forum/#!topic/shadowsocks/uoFIW_FO_Ts 这边也有人反馈这样子的情况,这是为什么?是大范围还是小范围干扰呢?露珠后来如何解决这个问题的呢?谢谢啦~

我想说,我把浏览器里的插件关掉了,直接用系统代理然后就成功了,但是我在想,特殊需要添加的网站是不是就在pac里添加哇?越来越高级了~

一模一样的问题,有人知道是为什么吗?我是WIN10的操作系统。

看起来这个问题最近集中出现,而且都是和 SwitchyOmega 有关,不使用 SwitchyOmega 直接用 Shadowsocks 管理规则就是好的。要么是 SwitchyOmega 升级了什么,要么是 Chrome 升级了什么。

测试环境:

虚拟机host: ubuntu 14.04
虚拟机client: win10
虚拟机: Vmware for Linux 11
虚拟机防火墙已经全部关闭

以上环境会出现无法连接的问题, log同其他用户, 测试过用Firefox直接设置Socks5没问题, Chrome里用SwitchyOmega会有问题, 但是SwitchyOmega 用http方式正常.


虚拟机host: ubuntu 14.04
虚拟机client: win10/win7
虚拟机: VirtualBox 5.0

以上环境可以正常使用


虚拟机host: ubuntu 14.04
虚拟机client: win7
虚拟机: Vmware for Linux 11

这种情况也可以用


看起来是SwitchyOmega的问题……

看上去是 Chrome 或者 SwitchyOmega 的问题,建议关闭这边,移步 FelisCatus/SwitchyOmega#557 讨论。

遇到此问题的各位,建议按照这里的说明检查一下代理设置。我所知道的所有相关信息都列举在这里了,各位也可以参考一下。

P.S. shadowsocks 我也经常用,感觉很稳定,而且一直在维护。感谢 @clowwindy 和其他项目维护者的贡献,希望此项目能越做越好。

之前在 shadowsocks 项目也遇到过疑似 SwitchyOmega 或者 Chrome 问题的情况,不过由于我没有看这边的 issue ,所以没办法及时参与讨论,往往都是有好心人去 SwitchyOmega 发 issue 链接过来。
下次再有这种情况的话,麻烦 @clowwindy 或者其他哪位 @ 我一下,无论是不是 SwitchyOmega 的问题,我至少可以提供一些我知道的信息,做一些力所能及的事情为这边减轻一些负担。这样的话也能帮助各位更快解决问题吧?

@FelisCatus SwitchyOmega 我一直在用,但无论 OSX 还是 Windows 10 上均不能复现这个问题。所以只能做一个推测,不能肯定,只能给一个思路,让遇到问题的用户继续研究和排查。

@clowwindy 是的,暂时我们知道的还太少,还是需要等遇到问题的人提供一些信息。我能想到的都已经说了,现在先等等看吧。一方面鼓励大家帮忙研究,另一方面我也正在尝试让更多遇到问题的人可以加入讨论。彼此都加油吧。

[2015-08-15 22:49:30] failed to recv data in handshakeReceive2Callback

我也遇到了这个问题,突然出现的。

比较奇怪的是,我用了Privoxy转换成了HTTP代理,(我的另一个Tween不支持SOCKS5),一样遇到该问题。

相同的配置,手机上用没有问题,用 node.js 版本,提示:
15 Aug 22:58:26 - 672ms unsupported cmd: undefined
15 Aug 22:58:26 - 672ms local error: Error: write after end

我怀疑这个问题可能和系统有关。

可以抓一下包看看浏览器发给代理的前两个有数据的包。

环境摧毁了,不好意思,我在执行以下操作后恢复了正常。

我初步怀疑和Windows网络栈(WinSocks)或协议栈(TCP/IP)有关,因此先恢复Windows的默认网络设置:
1.访问 http://www.speedguide.net/downloads.php ,下载 TCP Optimizer v4.0.0 Beta (或更新版本)。

2.按照下图恢复Windows的默认设置:
001

3.重设TCP/IP和Winsocks堆栈:
以管理员身份运行命令提示符(cmd),执行:
netsh interface ipv4 reset
netsh interface ipv6 reset
netsh winsock reset
002

遇到问题的玩家可以按照上面的方法试试看。

楼上的 @chenshaoju 的方法经测试有效,谢谢
下图是运行 TCP Optimizer v4.0.0 Beta 时的调整的参数, 可以看出win10的默认和软件的默认有区别, 贴出来图大家能分析一下具体原因.
1

测试环境:

win10 64bit
Chrome 44.0.2403.130 m 32bit
Proxy SwitchyOmega 2.3.15
Shadowsocks for windows 2.5.4

然而并没有看到可疑的参数。还是希望最好遇到的同学可以抓包看一下具体是怎么回事,以免每个人都要修改这些参数。

@clowwindy 怎么抓包?可以指导下吗?

@zzfnuaa 可以用 Wireshark 抓。搜一下就可以找到相关教程。

这边根据 @zzfnuaa 提供的信息,同样的设置, HTTP 协议下是可以正常工作的,而SOCKS5则会出现这个问题。经过验证,代理设置是正确的,排除了SwitchyOmega或者Chrome代理设置API的问题。此外配置来源无论是系统、扩展直接设置还是PAC文件,都有这个问题。
同时我也发现 shadowsocks 生成的 PAC 文件使用的是 HTTP 代理协议,机智地回避了此问题。
所以现在基本可以确定是 Chrome + Windows 10 环境下的 SOCKS5 协议问题了,等抓包吧。

tl;dr 在SwitchyOmega里设置里把shadowsocks代理的协议更改为HTTP,可以暂时绕过此问题。这个方案同样适用于 SwitchySharp 和其他代理设置扩展。

Shadowsocks 使用 HTTP 代理主要是因为很多程序,如 IE,Google Drive 都不支持 SOCKS5。

@clowwindy 对于两种协议都支持的程序,比如 Chrome (假设没有这种问题),使用哪种协议比较好呢?是否有性能或者稳定性上的考虑?

@FelisCatus
其实差不多。速度瓶颈在网速上。假设用的是千兆的宽带,性能瓶颈也在加密上。

@clowwindy 谢谢~

我也是win10,从SS 2.5.1一直到2.5.5都没有问题。

  • win10 x64
  • Google Chrome + ProxySharp,有时为了些外部程序也会打开全局代理。

第一版:从win8.1升级,保留所有配置,win8从未安装过360套件,也未进行过网络参数优化。虽然我的开发环境在升级win10后坏崩坏(老旧的行库损坏),SS net4.0 依旧可以使用,socks5和http都正常。
第二版:由于开发环境崩坏,我在win10中“重置机器”,SS使用一切正常。

试了下 使用SwitchyOmega http 与sock5 差别仅是 后者比前者错误频率更频繁些,HTTP一样会有同样的错误

win8.1 64bit
Chrome 44.0.2403.155 m 64bit
Proxy SwitchyOmega 2.3.15
Shadowsocks for windows 2.5.5

@skyqty 是否方便抓包看一下呢?

确认 @chenshaoju 的方法确实可行。我是还原设置后,按那个软件要求重启系统,没用命令行重置协议栈,也是OK的。

https://github.com/shadowsocks/shadowsocks-windows/issues/294#issuecomment-132465053 中提到

后来发现卸载了迅雷快鸟后恢复正常了

那么遇到问题的用户是否装过迅雷出品的一些软件呢?

@clowwindy 我使用wireshark v1.12.7抓了些数据,上传到百度云,http://pan.baidu.com/s/1eQpoHUE。系统win10 pro X64 英文版,chrome 44.0.2403.155 m,shadowsocks 2.5.5。

@zzfnuaa 抓到的是 Shadowsocks 连接外网的数据,不知道能否抓浏览器连接 Shadowsocks 的数据?可能需要把抓的网卡改为本地环回。也可以过滤一下端口,只抓 1080 端口(如果设的是 1080 的话)。只需要抓一次失败的即可。

@clowwindy 第一次接触wireshark,不熟悉怎么操作,要不你加我QQ739073061,远程操作下,我现在在线

@zzfnuaa 我之前也没有在 Windows 上用过 wireshark,现在旁边没有 Windows 电脑,不过搜索了一下发现确实是一个问题,可以先按照下面这篇文章解决一下

http://blog.csdn.net/ce123_zhouwei/article/details/11104047

似乎主要就是下载这个东西,运行 RawCap.exe 127.0.0.1 localhost_capture.pcap
http://www.netresec.com/?page=RawCap

@clowwindy 你看看这个可不可以,按你上面的方法抓的http://pan.baidu.com/s/1dDlmU21

@zzfnuaa
感谢,已经看出问题了。在进行 SOCKS5 验证方法协商后,浏览器什么数据都没有发送(此时照理说它应该把请求发过来,其中包含要访问的域名信息)。过了 30 秒钟以后浏览器主动把连接关掉了。

03:19:42.679190 IP (tos 0x0, ttl 128, id 10348, offset 0, flags [DF], proto TCP (6), length 42, bad cksum 0 (->d45f)!)
    127.0.0.1.1080 > 127.0.0.1.53830: Flags [P.], cksum 0xb81e (correct), seq 1:3, ack 4, win 256, length 2
    0x0000:  4500 002a 286c 4000 8006 0000 7f00 0001  E..*(l@.........
    0x0010:  7f00 0001 0438 d246 3c28 8292 dfc1 7eae  .....8.F<(....~.
    0x0020:  5018 0100 b81e 0000 0500                 P.........
03:19:42.680190 IP (tos 0x0, ttl 128, id 10349, offset 0, flags [DF], proto TCP (6), length 40, bad cksum 0 (->d460)!)
    127.0.0.1.53830 > 127.0.0.1.1080: Flags [.], cksum 0xbd26 (correct), seq 4, ack 3, win 256, length 0
    0x0000:  4500 0028 286d 4000 8006 0000 7f00 0001  E..((m@.........
    0x0010:  7f00 0001 d246 0438 dfc1 7eae 3c28 8294  .....F.8..~.<(..
    0x0020:  5010 0100 bd26 0000                      P....&..
03:20:12.693909 IP (tos 0x0, ttl 128, id 10381, offset 0, flags [DF], proto TCP (6), length 40, bad cksum 0 (->d440)!)
    127.0.0.1.53830 > 127.0.0.1.1080: Flags [F.], cksum 0xbd25 (correct), seq 4, ack 3, win 256, length 0
    0x0000:  4500 0028 288d 4000 8006 0000 7f00 0001  E..((.@.........
    0x0010:  7f00 0001 d246 0438 dfc1 7eae 3c28 8294  .....F.8..~.<(..
    0x0020:  5011 0100 bd25 0000                      P....%..

@FelisCatus

不知道是不是 Chrome 调整了策略做了一个优化,还是一些设置导致 Chrome 改变了行为,它预先建立和 SOCKS5 服务器的连接,之后有需求再发请求。这样一来如果浏览器最后没有发请求而是直接关掉了连接,是会产生这样的错误日志。但是照理说这个现象对上网没有影响。如果同时存在一些连接慢之类的情况,应该只是巧合。

我特意搜了下什么是迅雷快鸟:“与宽带运营商合作推出的一项上网加速服务,技术原理为将用户现有物理宽带提高”。我确定刚装的windows10我并没有使用快鸟,而且我的网络运营商是铁通,貌似不能用快鸟。

对了,日志里的大部分错误都是可以无视的,不用惊慌。偶尔一些超时,重置,在正常网络环境中都是很常见的。

@clowwindy 嗯,各位大神加油啊,希望能尽快解决问题,谢谢啦

@zzfnuaa 我已经解释啦,这不是一个问题。可以无视。

我是最近才出现的这种情况。
环境:Win 7 64位,chrome 45+(chrome一直跟进最新版),Shadowsocks,switchyomega,迅雷(迅雷一直都有,以前也没出现过问题)
改成HTTP模式百度和github可以访问twitter和google不能访问,改成socket4/5模式正好相反。好奇怪
然而我把Shadowsocks客户端代理端口换了一个(以前是1090现在8888)一切正常了。
虽然现在不在更新了 ,但各位现在遇到问题也可以试试这种方法看是否可以

卸载迅雷完美解决

竟然是迅雷的原因?

2015-09-25 10:01 GMT+08:00 zale [email protected]:

卸载迅雷完美解决


Reply to this email directly or view it on GitHub
https://github.com/shadowsocks/shadowsocks-windows/issues/247#issuecomment-143101786
.

我的卸载迅雷立马好了

我也是刚装迅雷就不能用了 迅雷嫌疑很大

我没有复现,猜测迅雷可能在做 LSP 劫持

先装迅雷,再开启shadowsocks 出现问题, 删除迅雷重装后没有发现问题,不知道迅雷搞什么鬼

同上,卸载迅雷7极速版后恢复正常

感恩!同@pk13610 ,卸载迅雷7极速解决,最近才装上没多久的。

确认是迅雷的问题。

以下是方案:

首先,进入系统管理,禁用相关服务。以 Windows 7 为例:
开始菜单 -> 计算机 -> 右键 -> 服务和应用程序 -> 服务 -> XLServicePlatform
将启动类型改为「禁用」,并停止当前正在运行的服务。

接下来,找到该服务的相关文件。以 Windows 7 32-bit 为例:
C:\Program Files\Common Files\Thunder Network\ServicePlatform
将上述目录改名为 ServicePlatform_bak,在同目录下(Thunder Network)新建 ServicePlatform 目录。右键该新目录,在安全选项卡中将目录的读写权限设置为「拒绝」。

解决问题。

迅雷导致的问题。。。即便不选择多浏览器支持,照样会出现问题,so,别用迅雷就好了。。。

确实是卸载迅雷就恢复正常了,但为什么Win7就不会出现这样的情况呢?在好奇心的驱动之下,我又重新在win10安装了迅雷,却又一切都正常能用了,不知什么原因。等过几天看看是不是仍然正常再说。

@davidgong888 端口问题,先装迅雷,再装ss,端口被迅雷占用,ss无法使用;先装ss,再装迅雷,端口被ss占用,迅雷换个端口就行。

如@LiamHuang0205 所述,停用XLServicePlatform 服务即可。

原来如此。。。。。

2015-10-16 3:45 GMT+08:00 xFelino [email protected]:

如@LiamHuang0205 https://github.com/LiamHuang0205 所述,停用XLServicePlatform
服务即可。


Reply to this email directly or view it on GitHub
https://github.com/shadowsocks/shadowsocks-windows/issues/247#issuecomment-148500969
.

原来是这样。。。

我也碰到了,提示“failed to recv data in handshakeReceive2Callback”,卸载迅雷就好了。。

win10 同样此问题, 禁用service解决了, 多谢楼上

我觉得问题不应该单纯在迅雷上
因为我在火狐上用foxyproxy用任意端口+socks5一切正常
所以问题应该处在chrome才对? @chemdemo @zhangliukun

管理员权限test.bat
然后导入注册表完美解决
改名字:
test.txt ==> test.bat
reg.txt==>reg.reg
reg.txt
test.txt

迅雷7.9.43版本主要修正了与SS的兼容性问题😆
http://yangtai.xunlei.com/?p=10120

前一阵在Windows 7下也碰上这个问题,一般上网正常,所有经过代理的连接都超时,SOCKS5和HTTP模式都无法正常工作,日志里全是failed to recv data in handshakeReceive2Callback
shadowsocks-qt5也无法正常工作,日志里有大量unknown command 0
系统没有安装迅雷
执行netstat -ano,发现1080端口没有被任何进程占用
使用wireshark + ncap抓loopback接口上的报文,发现127.0.0.1:1080回复的TCP packet window size为0,用户进程后续又给127.0.0.1:1080发了大量zero window probe
和正常的系统比较netsh dump的结果,发现autotuninglevel被设置成了experimental
执行netsh interface tcp set global autotuninglevel=normal
然后就正常了

我这确实是迅雷导致的问题,卸载就好了

迅雷卸载掉就好了!

实际上是迅雷浏览器(具体对应XunleiPlatform这个服务)挂勾与SwitchyOmega冲突(可能是迅雷也要作为Chrome的代理,取代了SwitchyOmega)。试验发现,即使开着迅雷这个服务,Chrome无法上网了,IE却可以通过SS上网。

Was this page helpful?
0 / 5 - 0 ratings

Related issues

xieyang784 picture xieyang784  ·  3Comments

LisonFan picture LisonFan  ·  3Comments

tiliarou picture tiliarou  ·  3Comments

imba-tjd picture imba-tjd  ·  3Comments

zxam picture zxam  ·  4Comments