星夜的蓝天

记一次youtube不能访问的排查
这个问题从头到尾可能持续了半年左右,不过最后实际上解决只不过2天……真令人头大 初记 问题发生在新电脑买来后,...
扫描右侧二维码阅读全文
18
2020/02

记一次youtube不能访问的排查

这个问题从头到尾可能持续了半年左右,不过最后实际上解决只不过2天……真令人头大

初记

问题发生在新电脑买来后,除了安装必要的软件,SSR也是必要的,配置好后按照綺凜大大的博文使用了Proxy SwitchyOmega作为浏览器流量的入口代理,一切如同几年前的操作一样,没什么问题,不过后来,某一天我发现youtube无法访问,并且在使用telegram连接本地sock5SSR代理的时候,会产生telegram的图片发不出去,却可以接受别人发过来的图片的情况,为此十分纠结,折腾了各种操作,

ipconfig /flushdns
netsh winsock reset
netsh int ip  reset
netsh winhttp  reset  proxy

都没有办法,最后查看系统的驱动安装日志,发现win10自动的升级了我的网卡驱动,于是我试着重新装回出厂的网卡驱动,发现问题神奇般的得到了缓解,telegram的图片可以正常发送了,youtube在电脑刚重启的时候是可以访问的了,但一旦过几分钟,youtube仿佛又被屏蔽一般,又是无法访问,后来咕着咕着,就没怎么管这件事了。

再现

后来,因为某件事情(这得从一群蝙蝠说起),宅在家的我又发现了这个问题,于是决定研究一下到底什么情况,首先chrome访问是这个情况image.png

edge访问是这个情况

image.png

搜索“ERR_CONNECTION_CLOSED”一无所获,但edge给了一下线索,因为在python中,我用requests测试了一下代理,google没有问题,一切顺利,但youtube的结果是这样

Traceback (most recent call last):
  File "e:\work\temp.py", line 4, in <module>
    req = se.get("https://youtube.com",proxies = {"https":"https://127.0.0.1:1080"})
  File "C:\Program Files\Python36\lib\site-packages\requests\sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "C:\Program Files\Python36\lib\site-packages\requests\sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Program Files\Python36\lib\site-packages\requests\sessions.py", line 668, in send
    history = [resp for resp in gen] if allow_redirects else []
  File "C:\Program Files\Python36\lib\site-packages\requests\sessions.py", line 668, in <listcomp>
    history = [resp for resp in gen] if allow_redirects else []
  File "C:\Program Files\Python36\lib\site-packages\requests\sessions.py", line 247, in resolve_redirects
    **adapter_kwargs
  File "C:\Program Files\Python36\lib\site-packages\requests\sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "C:\Program Files\Python36\lib\site-packages\requests\adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='www.youtube.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:852)'),))

最后一行给了一个提示,_ssl的问题,与edge不谋而合,但是进入到internet高级选项后,又发现我的电脑上TLS的选项是全开的,这理论上不存在问题,于是又迷失了方向。

折腾

于是重新使用以前的方法,尝试恢复以前的网卡驱动,发现这次不管用了,折腾了一个一个晚上的网卡驱动,从19年一个个测试到16年,不但没治好,反倒把网卡驱动搞坏了,又花了不少时间修复,去万能的淘宝上问了好几家,没人能解决这个问题,发帖询问了微软社区,社区给出的回复成功让我把原本的1809版本升级到1909(哭笑不得),然而毛病还是没解决,考虑到几年前的pixivDNS污染,在更换原本本地的dns服务器(smartdns)后,无论是国内的公共dns,还是国外的8.8.8.8,甚至是我移动自带的,都不能解决,无奈之下,只好将重点放在了代理上。

代理

我用手机连接同一代理节点,能正常访问youtube,证明代理节点没有问题,由于一时不知道如何在WSL使用windows的系统代理,导致traceroute我没办法使用,幸好windows有替代品tracert,原以为数据包还没传出本机就会被卡住,因为浏览器在访问youtube的时候反应非常迅速,完全不像被服务器ban掉的情况,而像是在本机被某种规则ban掉的情况,因为数据返回速度太快,快到不像经过跨海链路,但由于测试的时候代理是正常的,毕竟google和twitter是可以上的嘛,并且tracert给出的数据包跳了7次才断掉,也就是说,正常情况下的数据包在dns返回结果正确的情况下是发送得出去的,但是经过代理就不行,看了看shadowsockR的选项,我偶然发现到“代理规则”这个选项,我给出的选项是绕过局域网和大陆,也就是白名单模式,但考虑一下shadowsockR的代理模式,原本的PAC模式的功能被我们用Proxy SwitchyOmega替代了,那么进入到shadowsockR的流量一定是需要代理的(浏览器下),反之,没有进去的就一般不需要代理,而这个代理规则则是对进去的流量做进一步筛选,并且筛选方式模糊,如果确定了进去的流量就代理,那么和不开成“代理全局”(区分系统全局代理),当我更改这个设置后,终于,一切恢复如初。

最后修改:2020 年 05 月 07 日 11 : 31 AM
如果觉得我的文章对你有用,请随意赞赏

25 条评论

  1. aaa

    可以了,我安装了chrome插件 -集装箱 的原因,把他关了或删了,就可以了,谢谢

  2. aaa

    在吗

  3. aaa

    电脑 Macbook Pro 15 2019

  4. aaa

    用的是Trojan 的PC 端 , Proxy SwitchyOmega,
    系统代理模式设为全局模式也不可以

  5. aaa

    你好 和你问题一样 翻墙工具一样 但就是没解决

  6. Gaoga

    我用的v2rayN,没找到代理规则,我用的是:http代理并自动配置系统代理(全局代理),
    也换过浏览器改过host改过dns还是没有用咋办,就是youtube和facebook上不去

    1. Gaoga
      @Gaoga

      我擦我找到原因了,把【广告终结者】这个拓展关了之后就能上了...有毒

      1. Gaoga
        @Gaoga

        不对,不是广告终结者,是谷歌访问助手(不用挂梯子就能上谷歌和谷歌邮箱的拓展),应该是这玩意儿开启之后就会修改host

  7. sky

    还是看不懂,我的情况和你的有点不一样。我也是youtube不能访问,其他网站可以,手机用相同节点也可以访问youtube,但是把PSO关了后还是老样子

    1. 星夜的蓝天
      @sky

      我这边的解决办法是代理规则中改成代理全局就可以了,而不是绕过局域网和大陆。

  8. hai

    本来感觉好黑暗,问题解决后,突然觉得真美好,真好。感谢。

    1. hai
      @hai

      想想还真好笑,还下载了德语的chrome,也看不懂德语,和英语差别挺大,摸索着试。也不行。。。。。

    2. hai
      @hai

      一开始一堆浏览器全试过了。。。包括chrome, firefox, tor, opera, 只有tor能全部上,其他都不行, 现在全部OK,全部OK!!!

      1. 星夜的蓝天
        @hai

        不客气,能帮到你我也很开心。୧(๑•̀⌄•́๑)૭

  9. hai

    太感谢你了,我新换的电脑 好好的不能翻了。差点以为是国内电脑公司在搞鬼,从硬件方面下黑手阻止大家访问外网。看到你的文章,终于解决了!感谢@!!!!

    1. hai
      @hai

      我是能上所有外网除了youtube, google, facebook, 但是twitter正常上,google hk正常上。所以我产生了上面的怀疑。 不过现在全解决了,都能正常访问了,感谢啊感谢!!!

  10. paopao

    这个问题我还是无法改变这个问题。

    1. 星夜的蓝天
      @paopao

      如果ssr代理规则改成代理全局,然后系统代理模式改成全局,还不能上youtube的话,你可以更换浏览器试一下,或者测试一下google,twitter等网站上不上得去,然后再排查

  11. 98zx.net

    感谢您的分享,按照您说的解决了问题。

  12. tsuki

    确实是这个问题

  13. 123

    终于可以用了 ̄﹃ ̄射射楼主

  14. Heath

    额,还是不行,状态和昨天一样。谷歌浏览器显示:无法访问此网站,响应时间过长。

  15. Heath

    楼主您好,我是一位电脑小白,不太明白你说的那些规则呀什么的。我发现遇到的问题和你一样,但发生的时间不一样。我用的是SSR4.0代理机场翻墙,在选择可用的节点后 。电脑今天突然用谷歌浏览器无法打开YouTube和Facebook,但能在谷歌上打开其他如google map,也能进行google搜索;电脑上的火狐浏览器更是能打开youtube观看视频,手机使用相同的节点也能观看YouTube(很奇怪)。楼主您最后提及的代理那一段,我对于具体怎么解决这个问题还是没看懂。求解,我的SSR系统代理模式选择的:全局模式;代理规则选择的是:绕过局域网和大陆。

    1. 星夜的蓝天
      @Heath

      把代理规则切换成全局试一下

      1. Heath
        @星夜的蓝天

        问题暂时得到解决了。今天我把谷歌浏览器在电脑上重新安装了一次,发现能用了。感谢博主的帮助,谢谢。

发表评论

召唤看板娘