Shadowsocks-windows: 同一个服务器,电脑端ss比iOS superwingy慢

Created on 3 Jun 2018  ·  25Comments  ·  Source: shadowsocks/shadowsocks-windows

同一个服务器,电脑端ss比iOS superwingy慢太多了,怎么解决啊?

Most helpful comment

经过各种分析终于找到了问题的所在。

我的Linux服务器的TCP window尺寸是29200,但是开启了tcp_window_scaling,
但是客户端的win8.1的tcp_window_scaling并没有开启,在SYN握手的options中可以看到并没有关于Window scale的内容,所以在传输中服务器的window尺寸始终是29200,导致传输速度上不去。

按以下操作调整参数,不需要重启立即生效,但是不会影响正在传输中的文件,需要重新握手才能生效。
调整前下载速度300多K左右,调整后6-7M。

win8.1中查看当前参数:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数
----------------------------------------------
接收端缩放状态 : enabled
烟囱卸载状态 : disabled
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : disabled
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : disabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

netsh interface tcp>show heuristics
TCP 窗口缩放启发参数
----------------------------------------------
窗口缩放启发 : disabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal

调整参数:
烟囱卸载状态 :netsh int tcp set global chimney=automatic
接收窗口自动调谐级别:netsh int tcp set global autotuninglevel=normal
RFC 1323 时间戳:netsh int tcp set global timestamps=enabled
窗口缩放启发:netsh int tcp set heuristics enabled

再次查看:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数
----------------------------------------------
接收端缩放状态 : enabled
烟囱卸载状态 : automatic
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : normal
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : enabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

C:\WINDOWS\system32>netsh int tcp show heuristics
TCP 窗口缩放启发参数
----------------------------------------------
窗口缩放启发 : enabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal

All 25 comments

你的iOS客户端和电脑在同一个网络,并且使用相同的配置吗?如果是,可能和你电脑的TCP/IP协议栈或Winsock受损有关。

请以管理员身份启动命令提示符(cmd)或PowerShell,然后执行:

netsh interface ipv4 reset
netsh interface ipv6 reset
netsh winsock reset

一行一回车,三行执行完毕后重新启动计算机看看。

我也有这样的情况,手机S8+用SS下载速度1-2M。
电脑下载YouTube视频,单线程只有300K上下。
不过电脑上“允许其他设备连接”,手机WIFI设置代理,用手机下载可以到1-2M。

另外,电脑上用全局模式单线程下载国内文件速度可以到1-2M左右,直接下载5-6M。

请尝试按照楼上的三行命令,执行一下看看。

C:\WINDOWS\system32>netsh interface ipv4 reset
正在重置 接口,完成!
正在重置 邻居,完成!
正在重置 路径,完成!
正在重置 ,完成!
正在重置 ,完成!
重新启动计算机来完成此操作。

C:\WINDOWS\system32>netsh interface ipv6 reset
正在重置 邻居,完成!
正在重置 路径,完成!
正在重置 ,完成!
重新启动计算机来完成此操作。

C:\WINDOWS\system32>netsh winsock reset

成功地重置 Winsock 目录。
你必须重新启动计算机才能完成重置。

请重新启动计算机,然后再看看稳定性。

重启过了,之后又执行、重启了一次,没有改善。

你有Firefox吗?能否做一个这样的测试,单独配置Firefox代理,然后取消SS的系统代理,在Firefox中访问 speedtest.net 测试一下速度?

请确保你所选择的测试服务器和你的服务器(不是你当前的位置)最为接近。

37390878-680ff942-27a4-11e8-81f1-54edfe7658d9

怎么个慢法?有时候手机端和电脑端访问同一个网页,服务器那边走的是不同的页面结构。或者是你电脑端连windows update都在走流量

经过各种分析终于找到了问题的所在。

我的Linux服务器的TCP window尺寸是29200,但是开启了tcp_window_scaling,
但是客户端的win8.1的tcp_window_scaling并没有开启,在SYN握手的options中可以看到并没有关于Window scale的内容,所以在传输中服务器的window尺寸始终是29200,导致传输速度上不去。

按以下操作调整参数,不需要重启立即生效,但是不会影响正在传输中的文件,需要重新握手才能生效。
调整前下载速度300多K左右,调整后6-7M。

win8.1中查看当前参数:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数
----------------------------------------------
接收端缩放状态 : enabled
烟囱卸载状态 : disabled
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : disabled
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : disabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

netsh interface tcp>show heuristics
TCP 窗口缩放启发参数
----------------------------------------------
窗口缩放启发 : disabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal

调整参数:
烟囱卸载状态 :netsh int tcp set global chimney=automatic
接收窗口自动调谐级别:netsh int tcp set global autotuninglevel=normal
RFC 1323 时间戳:netsh int tcp set global timestamps=enabled
窗口缩放启发:netsh int tcp set heuristics enabled

再次查看:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数
----------------------------------------------
接收端缩放状态 : enabled
烟囱卸载状态 : automatic
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : normal
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : enabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

C:\WINDOWS\system32>netsh int tcp show heuristics
TCP 窗口缩放启发参数
----------------------------------------------
窗口缩放启发 : enabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal

windows10上无效 ...

windows 10 上关闭流控有奇效哦 可以改善
image

win10已经不用netsh了,在PowerShell中使用Set-NetTCPSetting。

是的, 后来我也查到了, 但是设置那个附加拥塞控制协议的时候还是设置不成功, 依旧是default

我的也是,手机ssr youtu轻松2-5M每秒,电脑最多1M每秒,后查看是<配置文件类型 public : restricted>的原因 然后直接关闭了TCP窗口缩放启发果然成功了

我的也是,手机ssr youtu轻松2-5M每秒,电脑最多1M每秒,后查看是<配置文件类型 public : restricted>的原因 然后直接关闭了TCP窗口缩放启发果然成功了

我在Windows10下也有类似问题,尚没找到解决方案,请问能否再具体一点?
@Code-0-0 提到应该开启客户端的窗口缩放启发,似乎与你的做法相反?
而且@chilejiang1024 提到netsh系列命令对Windows10不起效

我在Windows10下也有类似问题,尚未找到解决方案,请问能否再具体一点?
@ Code-0-0提到应该开启客户端的窗口缩放启发,似乎与你的做法相反?
而且@ chilejiang1024提到netsh系列命令对Windows10不起效

https://www.duckware.com/blog/how-windows-is-killing-internet-download-speeds/index.html
我的是被网络模式限制了 必须关掉才行 我是这里找到的

@DaseinPhaos 理论上: netsh interface tcp reset 能重置。

@fscwkp 非常有用的信息,感谢回报。

经过各种分析终于找到了问题的所在。

我的Linux服务器的TCP window尺寸是29200,但是开启了tcp_window_scaling,
但是客户端的win8.1的tcp_window_scaling并没有开启,在SYN握手的options中可以看到并没有关于Window scale的内容,所以在传输中服务器的window尺寸始终是29200,导致传输速度上不去。

按以下操作调整参数,不需要重启立即生效,但是不会影响正在传输中的文件,需要重新握手才能生效。
调整前下载速度300多K左右,调整后6-7M。

win8.1中查看当前参数:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数

接收端缩放状态 : enabled
烟囱卸载状态 : disabled
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : disabled
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : disabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

netsh interface tcp>show heuristics

TCP 窗口缩放启发参数

窗口缩放启发 : disabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal

调整参数:
烟囱卸载状态 :netsh int tcp set global chimney=automatic
接收窗口自动调谐级别:netsh int tcp set global autotuninglevel=normal
RFC 1323 时间戳:netsh int tcp set global timestamps=enabled
窗口缩放启发:netsh int tcp set heuristics enabled

再次查看:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数

接收端缩放状态 : enabled
烟囱卸载状态 : automatic
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : normal
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : enabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

C:\WINDOWS\system32>netsh int tcp show heuristics

TCP 窗口缩放启发参数

窗口缩放启发 : enabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal

经过各种分析终于找到了问题的所在。

我的Linux服务器的TCP window尺寸是29200,但是开启了tcp_window_scaling,
但是客户端的win8.1的tcp_window_scaling并没有开启,在SYN握手的options中可以看到并没有关于Window scale的内容,所以在传输中服务器的window尺寸始终是29200,导致传输速度上不去。

按以下操作调整参数,不需要重启立即生效,但是不会影响正在传输中的文件,需要重新握手才能生效。
调整前下载速度300多K左右,调整后6-7M。

win8.1中查看当前参数:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数

接收端缩放状态 : enabled
烟囱卸载状态 : disabled
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : disabled
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : disabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

netsh interface tcp>show heuristics

TCP 窗口缩放启发参数

窗口缩放启发 : disabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal

调整参数:
烟囱卸载状态 :netsh int tcp set global chimney=automatic
接收窗口自动调谐级别:netsh int tcp set global autotuninglevel=normal
RFC 1323 时间戳:netsh int tcp set global timestamps=enabled
窗口缩放启发:netsh int tcp set heuristics enabled

再次查看:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数

接收端缩放状态 : enabled
烟囱卸载状态 : automatic
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : normal
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : enabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

C:\WINDOWS\system32>netsh int tcp show heuristics

TCP 窗口缩放启发参数

窗口缩放启发 : enabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal

折腾了好几天,终于搞定了,太感谢了。我是WIN7,网速一直只有10M,用了你这个,马上就满速了,100M的油管,8K马上就秒开了。太爽了。太感谢了兄弟。

有没有dalao提供一下windows10下的解决方案呢?
Set-NetTCPSetting命令?

https://www.hostloc.com/thread-581548-1-1.html
Win10 上第三个命令似乎用不了
可以试试
netsh int tcp set supplemental template=internet congestionprovider=ctcp

也行可以参考一下。

输入三串代码就行了吗?

经过各种分析终于找到了问题的所在。
我的Linux服务器的TCP window尺寸是29200,但是开启了tcp_window_scaling,
但是客户端的win8.1的tcp_window_scaling并没有开启,在SYN握手的options中可以看到并没有关于Window scale的内容,所以在传输中服务器的window尺寸始终是29200,导致传输速度上不去。
按以下操作调整参数,不需要重启立即生效,但是不会影响正在传输中的文件,需要重新握手才能生效。
调整前下载速度300多K左右,调整后6-7M。
win8.1中查看当前参数:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数

接收端缩放状态 : enabled
烟囱卸载状态 : disabled
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : disabled
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : disabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

netsh interface tcp>show heuristics

TCP 窗口缩放启发参数
窗口缩放启发 : disabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal
调整参数:
烟囱卸载状态 :netsh int tcp set global chimney=automatic
接收窗口自动调谐级别:netsh int tcp set global autotuninglevel=normal
RFC 1323 时间戳:netsh int tcp set global timestamps=enabled
窗口缩放启发:netsh int tcp set heuristics enabled
再次查看:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数

接收端缩放状态 : enabled
烟囱卸载状态 : automatic
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : normal
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : enabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

C:\WINDOWS\system32>netsh int tcp show heuristics

TCP 窗口缩放启发参数
窗口缩放启发 : enabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal

经过各种分析终于找到了问题的所在。
我的Linux服务器的TCP window尺寸是29200,但是开启了tcp_window_scaling,
但是客户端的win8.1的tcp_window_scaling并没有开启,在SYN握手的options中可以看到并没有关于Window scale的内容,所以在传输中服务器的window尺寸始终是29200,导致传输速度上不去。
按以下操作调整参数,不需要重启立即生效,但是不会影响正在传输中的文件,需要重新握手才能生效。
调整前下载速度300多K左右,调整后6-7M。
win8.1中查看当前参数:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数

接收端缩放状态 : enabled
烟囱卸载状态 : disabled
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : disabled
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : disabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

netsh interface tcp>show heuristics

TCP 窗口缩放启发参数
窗口缩放启发 : disabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal
调整参数:
烟囱卸载状态 :netsh int tcp set global chimney=automatic
接收窗口自动调谐级别:netsh int tcp set global autotuninglevel=normal
RFC 1323 时间戳:netsh int tcp set global timestamps=enabled
窗口缩放启发:netsh int tcp set heuristics enabled
再次查看:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数

接收端缩放状态 : enabled
烟囱卸载状态 : automatic
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : normal
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : enabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

C:\WINDOWS\system32>netsh int tcp show heuristics

TCP 窗口缩放启发参数
窗口缩放启发 : enabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal

折腾了好几天,终于搞定了,太感谢了。我是WIN7,网速一直只有10M,用了你这个,马上就满速了,100M的油管,8K马上就秒开了。太爽了。太感谢了兄弟。

怎么弄的呀哥们,我也是win7系统 也碰到了这个问题。

重启过了,之后又执行、重启了一次,没有改善。

经过各种分析终于找到了问题的所在。

我的Linux服务器的TCP window尺寸是29200,但是开启了tcp_window_scaling,
但是客户端的win8.1的tcp_window_scaling并没有开启,在SYN握手的options中可以看到并没有关于Window scale的内容,所以在传输中服务器的window尺寸始终是29200,导致传输速度上不去。

按以下操作调整参数,不需要重启立即生效,但是不会影响正在传输中的文件,需要重新握手才能生效。
调整前下载速度300多K左右,调整后6-7M。

win8.1中查看当前参数:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数

接收端缩放状态 : enabled
烟囱卸载状态 : disabled
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : disabled
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : disabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

netsh interface tcp>show heuristics

TCP 窗口缩放启发参数

窗口缩放启发 : disabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal

调整参数:
烟囱卸载状态 :netsh int tcp set global chimney=automatic
接收窗口自动调谐级别:netsh int tcp set global autotuninglevel=normal
RFC 1323 时间戳:netsh int tcp set global timestamps=enabled
窗口缩放启发:netsh int tcp set heuristics enabled

再次查看:
C:\WINDOWS\system32>netsh int tcp show global
查询活动状态...

TCP 全局参数

接收端缩放状态 : enabled
烟囱卸载状态 : automatic
NetDMA 状态 : disabled
直接缓存访问(DCA) : disabled
接收窗口自动调节级别 : normal
附加拥塞控制提供程序 : none
ECN 功能 : disabled
RFC 1323 时间戳 : enabled
初始 RTO : 3000
接收段合并状态 : disabled
非 Sack Rtt 复原 : disabled
最大 SYN 重新传输次数 : 2

C:\WINDOWS\system32>netsh int tcp show heuristics

TCP 窗口缩放启发参数

窗口缩放启发 : enabled
合格目标阈值 : 3
配置文件类型 unknown : normal
配置文件类型 public : normal
配置文件类型 private : normal
配置文件类型 domain : normal

卧槽。果然有奇效。

挖个坟,我是Win7,关闭窗口缩放启发有效

用N1软路由的,这个方法适用吗

Was this page helpful?
0 / 5 - 0 ratings