Shadowsocks-windows: SS客户端用一会儿后会不工作

Created on 15 Dec 2019  ·  56Comments  ·  Source: shadowsocks/shadowsocks-windows

版本为4.1.8.0,实际上用了之前的版本也会如此
操作系统为win10
ss打开后能够正常使用一段时间,几分钟到半小时不等,但后来ss会停止工作,表面上看起来跟正常使用完全一样,只是在打开外网的时候没有上传和下载,表现为小飞机图标左侧没有蓝色和黄色的上传下载标记,如果是断线也至少会有上传标记
线路没有问题,如果ss不工作后切换下pac或者全局模式就又能工作,在不工作期间ping ip也能ping通,甚至切换一下“允许其他设备连入”也能恢复使用。
感觉就像ss睡着了,需要刺激他醒过来才行,但是又非关闭状态,因为关闭的话打开外网会直接显示无法打开,停止工作的状态会持续转圈读取网页,但什么都没有

在不工作期间查看日志没有任何变化,唯一的变化就是不继续添加下一行。

这个现象在最近两个月左右开始出现的,怀疑是win10更新什么的造成,因为配置文件并未进行过改变
[2019-12-14 17:06:46] Shadowsocks started (4.1.8.0)
[2019-12-14 17:36:24] Shadowsocks started (4.1.8.0)
[2019-12-14 20:49:58] Shadowsocks started (4.1.8.0)
[2019-12-14 20:50:14] Shadowsocks started (4.1.8.0)
[2019-12-14 22:02:45] Shadowsocks started (4.1.8.0)
[2019-12-14 23:48:51] Shadowsocks started (4.1.8.0)
[2019-12-15 08:51:59] Shadowsocks started (4.1.8.0)
[2019-12-15 10:14:32] Shadowsocks started (4.1.8.0)
[2019-12-15 10:23:42] Shadowsocks started (4.1.8.0)
[2019-12-15 10:28:46] Shadowsocks started (4.1.8.0)
[2019-12-15 10:53:32] Shadowsocks started (4.1.8.0)
[2019-12-15 11:08:42] Shadowsocks started (4.1.8.0)

third-party bug

Most helpful comment

监视一下

他的确是监视过了,systeminternal全家桶排查这种问题还是挺好用的。

建议再挂一天一夜看看,实在不行也只有重装法。

All 56 comments

1995

1943

1995

1943

谢谢,感觉像是1995里提到的其他代理软件重置了脚本的可能,目前我删除了网易uu加速器,等等看会不会依然如此

1995

1943

看来不是uu加速器的锅,删除后依然会发生不工作情况,而且在不工作期间internet的lan设置里脚本并未被删除,刺激一下依然会恢复

感觉需要刺激的不是SS,而是internet设置,可能是internet设置的服务会自动关闭,所以浏览器使用internet的代理设置会无效,重新去internet设置里动一下,再动回来代理就有效了

基本上确定了是internet设置的锅,我在SS客户端不工作后打开IE浏览器,SS就恢复工作了,应该是开启IE浏览器刺激了internet设置醒过来,不过我并不知道该怎么解决这个问题让internet不会自动沉默

这样看来,疑似微软的锅?

不一定,可能是我用360的一些便捷服务,比如“优化加速”的时候自动关闭了一些关键服务的自启动,我是个电脑小白,只能通过排查大致障碍,但我没办法准确找到是什么原因

1.请右击任务栏托盘区的纸飞机小图标,选择系统代理,再选中PAC模式
2.再次右击任务栏托盘区的纸飞机图标,选择PAC,再点击从GFWList更新新本地PAC后再试。

EDIT:
看起来是某些东西修改了你的系统代理,请按照 https://github.com/shadowsocks/shadowsocks-windows/issues/1995 看一下,出现问题的时候代理设置是否消失了。

1.请右击任务栏托盘区的纸飞机小图标,选择系统代理,再选中PAC模式
2.再次右击任务栏托盘区的纸飞机图标,选择PAC,再点击从GFWList更新新本地PAC后再试。

EDIT:
看起来是某些东西修改了你的系统代理,请按照 #1995 看一下,出现问题的时候代理设置是否消失了。

的确是有什么东西修改了internet设置里的自动配置脚本,我如果在SS正常的时候打开局域网设置查看,自动配置脚本为http://127.0.0.1:1080/pac?t=20191215155435224&secret=MBZ1nUfvbb7Ytan82h534aQtbbwXd9zCf9u9+edx5PM=

但是在SS停止工作的时候脚本会变成
http://127.0.0.1:1080/pac?t=201702……
也就是说脚本会自动回到2017年2月的配置,但是就算我用组策略锁住自动配置,还是会被更改,不知道为什么,以及该怎么办

1
2

我注意到对话框最下面的提示。

你所在的网络是否在一个域(或者活动目录/授管控的计算机网络)中?

我注意到对话框最下面的提示。

你所在的网络是否在一个域(或者活动目录/授管控的计算机网络)中?

大佬,我用你教的方法找到了大概是3976的svchost或者是SS目录下ss_win_temp的ss_privoxy.exe搞的鬼,(我觉得更有可能是前者),不过我不会接下来的“转入服务选项,看看对应的svchost.exe 承载了哪些服务”步骤,我在任务管理器中没有找到该怎么变成你截图中的详情

5

脚本会自动回到2017年2月的配置

正常现象,仅仅影响显示,不影响使用

sysproxy

这是ss本身的组件

这个日志看起来都是很正常的,当出现这些内容的时候,位于浏览器中的代理设置被清空了吗?

如果一直使用全局模式会不会这样

如果一直使用全局模式会不会这样

会的

这个日志看起来都是很正常的,当出现这些内容的时候,位于浏览器中的代理设置被清空了吗?

主要是每次ss没有反应的时候,internet选项中局域网(lan)设置中,自动配置脚本都会回退到2017年2月,当自动配置脚本更改为现在2019年当时的脚本(可以手动改,也可以在切换pac模式或全局模式的时候由ss更改)就能正常使用

目前问题得到了解决,但我不确定自己找到了根本原因,我把自己的操作说一下
通过楼上大佬chenshaoju给出的教程,我用ProcessMonitor监测了自动配置脚本的变化,因为每当自动脚本配置改变的时候ss就会失灵。
我检测出来了svchost和ss_privoxy会在自动脚本配置的注册表键值改变的时候有所动作,而根据时间来看svchost先动而ss_privoxy后动,所以我怀疑是svchost在搞鬼,但是我到了这一步就不懂该怎么办了,于是我只有继续等待,在我改回自动配置脚本后不久,又变了回去,不过这次却出现了一个很奇葩的关联软件——“手心输入法的相关服务”,看到这个程序出现我一脸懵逼,我也不知道关他什么事,而且我已经好几个月没用手心输入法了,但是本着宁可信其有不可信其无的态度,我把手心输入法卸载掉,然后已经很长一段时间自动配置脚本不再发生变化,而且ss也能正常使用了。
可能是莫名其妙的治好了,但目前还不敢肯定,多过两天后我再来报告状况吧

对了,中途我还做了一些操作, 我在360安全卫士的“优化加速”“启动项”中将一些禁止率较低,但是被禁止启动的IIS相关服务和ip等相关服务开启了,更有可能是这边的缘故,但我不敢确定,因为我在开启服务后第一次重启后SS依然会失灵,而在删除手心输入法后SS到目前为止并未失灵

很操蛋,5個小時后的現在,自动配置脚本又被修改了

代理在注册表里的位置是HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings,可以考虑装一个有RD功能的HIPS监视一下是什么程序更改了。不过我从没用过HIPS,不保证有效。Win10可用的HIPS有Comodo(记错了,火绒剑是ARK),不清楚有无RD,曾经还有一些但是后来都不更新了。反正用监视注册表更改的软件(并且还要能看到是那个软件更改了)就是。

监视一下

他的确是监视过了,systeminternal全家桶排查这种问题还是挺好用的。

建议再挂一天一夜看看,实在不行也只有重装法。

监视一下

他的确是监视过了,systeminternal全家桶排查这种问题还是挺好用的。

建议再挂一天一夜看看,实在不行也只有重装法。

我没重装过win10系统,在网上搜了下教程,让下这样那样的装机软件,我怕那些会留后门,微软官网也没找到ISO,只找到了安装工具,就是那个18m的,但是我现在的版本是windows10教育版,网上搜到的都是15年的iso,也不知道发生了什么,新的教育版好像绝迹了……

不会重装可以选择重置系统

遇到了同样的问题,裸奔win 10,而且新装的笔记本win 10也会遇到相同问题。笔记本上面更是啥都没有安装。

请按照 https://github.com/shadowsocks/shadowsocks-windows/issues/1995 进行排查,出问题的时候代理是否消失了。

如果是,请按照 https://github.com/shadowsocks/shadowsocks-windows/issues/1943#issuecomment-416096579 进行观察,当不工作且代理设置消失的时候,能否跟踪到是什么应用修改了你的系统代理?

按照楼上大佬说的重置系统,应该解决了问题,已经一天多没回复了,我只重置了c盘,看来不是其他盘的文件搞的鬼

遇到了同样的问题,用了一会儿就不work了,把ss client调一下,比如关闭再开,就又可以work一段时间

你说的这个问题我也遇到了,且情况完全一样。而且这个问题不仅仅shadowsocks客户端,v2ray客户端也是同样的问题。感觉以前似乎没有,现在这个问题很明显。一段时间后就会无法访问被墙网站,必须手动点击切换一下pac或者全局才行。目前采取的解决方案是,通过SwitchyOmega或者是FireFox的代理设置直接手动指定本地socks5代理才行。此时,无论多长时间,都不会出现不能访问被墙网站的情况了。不知道是不是有什么bug,希望以后的版本能够改进。

按照作者提示的方法监控之后没观测到proxy切换情况,但是这种断断续续的问题仍然存在。

我又看了一下,当我这边shadowsocks客户端不能正常工作时,win10代理设置那里会关闭。如图:
图片
但因为我对Chrome,FireFox,Telegram等已经手动设置了本地socks5代理,所以在此情况下也可以正常使用访问被墙网站。不过我印象中,前几个月,shadowsocks客户端似乎不会出现此问题,无需手动对Chrome进行设置,就能够一直访问被墙网站。而现在如你所说,刚打开可以用,过了一段时间就不能用了,需要手动点击pac或者全局代理“刺激一下”恢复正常。但当shadowsocks客户端不正常时,vps本身没有问题。可以ssh访问,也可以ping通,且单独设置了本地socks5代理的Telegram也可以正常使用,手机端的shadowsocks使用也没有什么问题。
不知道这是不是win10的问题?

我又看了一下,当我这边shadowsocks客户端不能正常工作时,win10代理设置那里会关闭。如图:
图片
但因为我对Chrome,FireFox,Telegram等已经手动设置了本地socks5代理,所以在此情况下也可以正常使用访问被墙网站。不过我印象中,前几个月,shadowsocks客户端似乎不会出现此问题,无需手动对Chrome进行设置,就能够一直访问被墙网站。而现在如你所说,刚打开可以用,过了一段时间就不能用了,需要手动点击pac或者全局代理“刺激一下”恢复正常。但当shadowsocks客户端不正常时,vps本身没有问题。可以ssh访问,也可以ping通,且单独设置了本地socks5代理的Telegram也可以正常使用,手机端的shadowsocks使用也没有什么问题。
不知道这是不是win10的问题?

你也是回归2017的脚本吗?
顺便,单独配置程序也可以用PAC模式吗

补充一下信息,我用的是global mode,打开之后不是“自动代理”,是“手动代理”。断续的时候没有注意到“手动代理”配置被修改。同样的服务器,在mac上的shadowsocks没有遇到这种问题。

我又看了一下,当我这边shadowsocks客户端不能正常工作时,win10代理设置那里会关闭。如图:
图片
但因为我对Chrome,FireFox,Telegram等已经手动设置了本地socks5代理,所以在此情况下也可以正常使用访问被墙网站。不过我印象中,前几个月,shadowsocks客户端似乎不会出现此问题,无需手动对Chrome进行设置,就能够一直访问被墙网站。而现在如你所说,刚打开可以用,过了一段时间就不能用了,需要手动点击pac或者全局代理“刺激一下”恢复正常。但当shadowsocks客户端不正常时,vps本身没有问题。可以ssh访问,也可以ping通,且单独设置了本地socks5代理的Telegram也可以正常使用,手机端的shadowsocks使用也没有什么问题。
不知道这是不是win10的问题?

你也是回归2017的脚本吗?
顺便,单独配置程序也可以用PAC模式吗

不是回归2017,而是整个的没有了。就像我截图的样子,完全消失了。在刚打开shadowsocks或v2ray客户端时,此处会有设置脚本并脚本地址,但一段时间后,可能半小时或者几小时后就会完全消失。此时,如果不用SwitchyOmega或者FireFox的手动代理设置,就无法上被墙的网站了。如果手动的点击一下pac或者全局,又可以用了。单独配置程序也可以用PAC模式。个人建议楼主手动设置Chrome或FireFox的代理,这样即使代理脚本那里消失或者有其他问题。浏览器依然可以正常访问被墙的网站,无需再点击PAC或全局代理。虽然目前什么原因导致的还不能确切知道,但是用这样方式确实可以解决这个问题。

只是问一下,不单指某软件或某系统。

1.你们是不是用的都是Win10?
2.你们是不是都用微信PC版?

只是问一下,不单指某软件或某系统。

1.你们是不是用的都是Win10?
2.你们是不是都用微信PC版?

我用的是win10 64位家庭版(最新版),且我确实安装了微信PC版。

家庭版

仅仅是提一下,中文的Windows 10家庭版和Windows 10的家庭中文版是两个东西

我得到了一个奇怪的报告指可能和微信PC版有关,我也在用微信PC版,但是是Win7,并没有这个现象。

gRKGm0Tu

你能否退出微信PC版,看看是否还会有这个现象?

只是问一下,不单指某软件或某系统。

1.你们是不是用的都是Win10?
2.你们是不是都用微信PC版?

win10教育版 有用过微信pc

我又看了一下,当我这边shadowsocks客户端不能正常工作时,win10代理设置那里会关闭。如图:
图片
但因为我对Chrome,FireFox,Telegram等已经手动设置了本地socks5代理,所以在此情况下也可以正常使用访问被墙网站。不过我印象中,前几个月,shadowsocks客户端似乎不会出现此问题,无需手动对Chrome进行设置,就能够一直访问被墙网站。而现在如你所说,刚打开可以用,过了一段时间就不能用了,需要手动点击pac或者全局代理“刺激一下”恢复正常。但当shadowsocks客户端不正常时,vps本身没有问题。可以ssh访问,也可以ping通,且单独设置了本地socks5代理的Telegram也可以正常使用,手机端的shadowsocks使用也没有什么问题。
不知道这是不是win10的问题?

你也是回归2017的脚本吗?
顺便,单独配置程序也可以用PAC模式吗

不是回归2017,而是整个的没有了。就像我截图的样子,完全消失了。在刚打开shadowsocks或v2ray客户端时,此处会有设置脚本并脚本地址,但一段时间后,可能半小时或者几小时后就会完全消失。此时,如果不用SwitchyOmega或者FireFox的手动代理设置,就无法上被墙的网站了。如果手动的点击一下pac或者全局,又可以用了。单独配置程序也可以用PAC模式。个人建议楼主手动设置Chrome或FireFox的代理,这样即使代理脚本那里消失或者有其他问题。浏览器依然可以正常访问被墙的网站,无需再点击PAC或全局代理。虽然目前什么原因导致的还不能确切知道,但是用这样方式确实可以解决这个问题。

我重置系统后也变成你这种情况了,以前是回归,现在是清空

我得到了一个奇怪的报告指可能和微信PC版有关,我也在用微信PC版,但是是Win7,并没有这个现象。

gRKGm0Tu

你能否退出微信PC版,看看是否还会有这个现象?

或许可以拿api monitor抓一下

image
@chenshaoju 大佬你好,通过你的方法监控到是WinHTTP修改的注册表,然后导致ss无征兆的无法使用,只能通过切换线路或者类似于“刺激”的方式重新启用ss。有什么方法可以监控到是哪个进程调用了WinHTTP从而修改了注册表嘛?

我还没仔细研究 API Monitor ,不过你可以试试:
1.访问 www.rohitab.com/apimonitor 下载 API Monitor (有绿色版)
2.参考下图:
Screenshot

在3的对话框里双击可能有嫌疑的应用,添加到Monitored Processes中,然后观察。
注意:
1.上图 Monitored Processes中的Firefox.exe 是举例。
2.32位版本只能监控32位的应用,64位版本只能监控64位应用。

闹心啊,win7 用的4.1.16版本的ss,用一会儿就用不了了,蛋疼死了。手机上却很稳定

4.1.16?

就像说一下,我遇到的问题解决了,是服务端问题。
ss-server + obfs的时候,时不时服务端obfs会阻塞,打印error,在ss-server -v模式下可以看到。
切换成v2ray-plugin之后,这个问题就好了。

我觉得应该是windows系统或者windows下某个软件的问题,同样的服务器,从mac上连就一点问题没有,但是从windows上连就时不时的要抽风,需要改一下连接设置才能恢复工作,ss工作的时候proxy设置的脚本地址是http://127.0.0.1:1080/pac?hash=blablabla&secret=blablabla,不工作后再去看,变成了http://127.0.0.1:1080/pac?t=20191211094930736&secret=otherblablabla, 开关ss后,又重新work,proxy脚本又变成了最开始的那个http://127.0.0.1:1080/pac?hash=blablabla&secret=blablabla,hash和secret值都一样。
神奇。。。

我已经放弃了,用最新版本4.1.18也不行,问买梯子的客服,排查了一遍也没查出来啥原因
基本上一直都是time out
[2020-01-07 18:22:09] Shadowsocks started (4.1.8.0)
[2020-01-07 18:22:24] c22s1.jamjams.net:33668 timed out
[2020-01-07 18:22:35] c22s1.jamjams.net:33668 timed out

然后我切换到全局模式,有的时候可以勉强用那么一会儿,感觉好难受。

我的最后按照这个帖子解决了,先标记一下
https://github.com/shadowsocks/shadowsocks-windows/issues/2247

我已经放弃了,用最新版本4.1.18也不行,问买梯子的客服,排查了一遍也没查出来啥原因
基本上一直都是time out
[2020-01-07 18:22:09] Shadowsocks started (4.1.8.0)
[2020-01-07 18:22:24] c22s1.jamjams.net:33668 timed out
[2020-01-07 18:22:35] c22s1.jamjams.net:33668 timed out

然后我切换到全局模式,有的时候可以勉强用那么一会儿,感觉好难受。

我的最后按照这个帖子解决了,先标记一下

2247

你是网线直连的还是用WIFI?解决的方法就是把连接名换成英文吗?

我已经放弃了,用最新版本4.1.18也不行,问买梯子的客服,排查了一遍也没查出来啥原因
基本上一直都是time out
[2020-01-07 18:22:09] Shadowsocks started (4.1.8.0)
[2020-01-07 18:22:24] c22s1.jamjams.net:33668 timed out
[2020-01-07 18:22:35] c22s1.jamjams.net:33668 timed out
然后我切换到全局模式,有的时候可以勉强用那么一会儿,感觉好难受。
我的最后按照这个帖子解决了,先标记一下

2247

你是网线直连的还是用WIFI?解决的方法就是把连接名换成英文吗?
image
我用的网线连接的,然后我按照图片勾选的就没问题了。解决方案如上图所示,和你所说的连接名换成英文没啥关系,就是勾选了一下我图上的那个 然后就好了,我也不知道为啥。

我已经放弃了,用最新版本4.1.18也不行,问买梯子的客服,排查了一遍也没查出来啥原因
基本上一直都是time out
[2020-01-07 18:22:09] Shadowsocks started (4.1.8.0)
[2020-01-07 18:22:24] c22s1.jamjams.net:33668 timed out
[2020-01-07 18:22:35] c22s1.jamjams.net:33668 timed out
然后我切换到全局模式,有的时候可以勉强用那么一会儿,感觉好难受。
我的最后按照这个帖子解决了,先标记一下

2247

你是网线直连的还是用WIFI?解决的方法就是把连接名换成英文吗?
image
我用的网线连接的,然后我按照图片勾选的就没问题了。解决方案如上图所示,和你所说的连接名换成英文没啥关系,就是勾选了一下我图上的那个 然后就好了,我也不知道为啥。

我这边如果正常工作的时候,也是自动连接那里有一个设置好的脚本。但当不能正常工作时,那里就变成了空白。此时如果重新点一下pac模式或者切换全局模式后,仿佛被“激活”了一样,就会在那里再次出现一个设置好的脚本。
从楼上大家的回答来看,似乎这是一个在Windows系统中普遍出现的问题。表现的特征好像也都差不多,只是目前尚未定论到底是什么东西影响了系统代理发生如此的改变。
对了,我无论WiFi联网还是网线联网,连接的名称一直都是英文名的。但是依然不定时的会发生系统代理那里整个配置脚本消失了的现象。此现象一旦出现,IE(流量走系统代理而非指定走ss或v2ray的本地代理)就不能访问被墙网站。但是ss或者v2ray客户端的本地代理依然是正常的,因为我单独设置过流量走本地代理的FireFox和Chrome以及Telegram是完全正常不受影响的。

请按照上面的方法测试一下,是否有什么东西修改了系统代理键值。

给出一个适用于只使用chrome完成fq操作的方法:在ss客户端中修改本地代理端口,比如1081;然后在SwitchyOmega中指定proxy模式的代理服务器,在auto-switch模式中添加规则列表,格式选择autoproxy,规则列表网址当然是熟悉的https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt,将规则列表的请求都用proxy模式,其他默认直连就好;如果需要自行添加pac规则,直接在该模式中添加即可。
最后,点击SwitchyOmega图标,选择auto switch。
这种方式下,不管windows本地下什么奇奇怪怪的服务修改了本地代理配置,但chrome端永远ok。
至于想要监控出到底是什么修改了本地代理配置,来源有点复杂,可能是微信、onedrive、qq拼音等好多你想象不到的鬼服务,API monitor也尝试过,但没有搞明白,等大佬后续彻底解决该问题后补充吧。
image
image

我已经放弃了,用最新版本4.1.18也不行,问买梯子的客服,排查了一遍也没查出来啥原因
基本上一直都是time out
[2020-01-07 18:22:09] Shadowsocks started (4.1.8.0)
[2020-01-07 18:22:24] c22s1.jamjams.net:33668 timed out
[2020-01-07 18:22:35] c22s1.jamjams.net:33668 timed out

然后我切换到全局模式,有的时候可以勉强用那么一会儿,感觉好难受。

我的最后按照这个帖子解决了,先标记一下

2247

你好,我想问下,这个梯子是谁卖给你的,因为这个是我在一个脚本里免费分享给大家用的。我想知道是谁tm这么无耻。

我已经放弃了,用最新版本4.1.18也不行,问买梯子的客服,排查了一遍也没查出来啥原因
基本上一直都是time out
[2020-01-07 18:22:09] Shadowsocks started (4.1.8.0)
[2020-01-07 18:22:24] c22s1.jamjams.net:33668 timed out
[2020-01-07 18:22:35] c22s1.jamjams.net:33668 timed out
然后我切换到全局模式,有的时候可以勉强用那么一会儿,感觉好难受。
我的最后按照这个帖子解决了,先标记一下

2247

你是网线直连的还是用WIFI?解决的方法就是把连接名换成英文吗?

他用的别人盗卖的节点,然后他IP被服务器封了

如果是后台应用自动改代理配置,可以试试直接改注册表… #2810 & microsoft community

Was this page helpful?
0 / 5 - 0 ratings