美文网首页常用软件神器计算机杂谈程序员
【搬运】Shadowsocks无法使用后的简单排除方法

【搬运】Shadowsocks无法使用后的简单排除方法

作者: 张照博 | 来源:发表于2018-03-31 14:26 被阅读1157次

    正文之前

    本文是我从一个被墙了的网站上搬下来的,为了避免以后自己科学上网出毛病还不知道咋搞,就放简书吧!里面有不少的链接都是需要科学上网的,打不开很正常!

    正文

    1、确认Shadowsocks账号可用

    在开始阅读本教程之前,你的第一步就是先确认你的Shadowsocks账号是否可用(这步很重要!),建议让其他人链接试试,或者其他设备链接试试。

    如果别人能用,你却不能用。那就很明显是 你本地电脑设置问题 或者 Shadowsocks客户端 问题。请看 2、本地问题

    如果别人都不能使用。那就说明是 Shadowsocks服务端 或者 VPS 问题。请看 3、服务器问题

    如果你的ShadowsocksR账号是自建的,同时没有其他设备或者不想让其他人使用,那么可以看这个文章:

    还有,可以打开ShadowsocksR的服务器连接统计 窗口,然后查看当前服务器信息的 实下载/错误/超时/空连 等数据来简单判断问题大概在哪里。

    实下载:浏览器收到的实际下载流量大小;

    • 如果当前SSR服务器配置了SSR协议(非原版origin),有数据显示则表示配置是正确的,如果一直为零 0 ,则表示一定有错误。

    错误:错误包括网络错误 和 协议错误;

    • 网络错误:连接被拒绝,一般是当前(账号)服务器配置的 端口不正确、防火墙没有开放端口 等导致的。

    • 协议错误:返回数据校检错误,当前(账号)服务器配置的 SSR协议/混淆插件 不正确导致的。

    超时:一般是当前(账号)服务器未开机、没有网络等导致链接服务器超时。
    空连:空连表示链接后无返回数据,一般是当前(账号)服务器配置的 密码或加密方式 不正确导致的。
    如果浏览器打开谷歌网站 什么数据都没显示,那说明浏览器根本就没有走代理。

    2、本地问题

    再确认别人可以使用你的Shadowsocks账号后,那问题就是 你本地电脑设置问题 或者 Shadowsocks客户端 问题。那么我们就一个个排除。

    2.1、Shadowsocks客户端问题

    首先,请尽量使用最新的Shadowsocks客户端,鉴于目前 Shadowsocks v3.0原版 因为作者喝茶已经停止更新很长时间了,推荐使用 目前在持续更新的 ShadowsocksR 客户端(很多人换了ShadowsocksR后就可以使用了)。

    下载地址:逗比 · 云

    对了,还有一点。Shadowsocks账号信息 记得检查一下,说不定多了个空格或者符号,这都会导致无法连接Shadowsocks。

    同时,ShadowsocksR 只做了很多 其他的辅助功能,这些功能如果你不需要的话,请不要修改。否则一些设置不正确也会导致无法连接。

    2.2、本地电脑设置问题

    很多人,都不会去使用过时的 IE 浏览器。那么,先使用一下 IE 浏览器 访问 Google.com ,如果可以访问,那么就直接看 2.2.5、浏览器问题

    2.2.1、Shadowsocks 软件权限问题

    Shadowsocks 启动系统代理后,就会去修改注册表来设置 系统代理设置

    而一些电脑系统或者非管理员用户(比如网吧),可能因为没有相应的权限 导致 Shadowsocks 启动系统代理 后无法修改注册表。

    这时候就需要用 **管理员权限 **启动 Shadowsocks 客户端。

    如果是网吧的话,是限制不能修改注册表的,而且也没有相应的权限,所以建议使用** SSCap客户端**:逗比 · 云

    如果确定不是 软件权限问题导致的,那么请继续看下面。

    2.2.2、系统代理设置问题

    2.2.1 说了,Shadowsocks 启动系统代理后,就会去修改注册表来设置 系统代理设置

    那么,在启动后,请打开 系统代理设置 看一下是否正确设置代理。

    右键桌面上的网络 >=> 属性 >=> Internet 选项 >=> 连接 选项卡 >=> 选择你使用的拨号链接 >=> 设置

    然后你是 直接电脑连接 猫 拨号上网的用户,就如上图所示打开下图的窗口。

    如果你是 路由器连接 猫 上网的用户,就点击上图所示中 下面的 局域网设置 打开下图的窗口。

    下图中 上面 红框圈中 的选项是,Shadowsocks客户端的PAC模式

    一般正确的格式是(xxxx为示例):http://127.0.0.1:1080/pac?t=xxxx

    下图中 下面 红框圈中 的选项是,Shadowsocks客户端的全局模式

    一般正确的格式是:地址:127.0.0.1,端口:1080。

    如果,你的下图设置是 空的或者是不正确的(127.0.0.1 是不能变的,端口是可以变的),请修改为正确的IP和端口,并检查Shadowsocks客户端的本地端口设置

    ~注意:这里的端口既是 Shadowsocks中的 本地端口,是可以改的,不过默认是1080~

    image

    2.2.3、无法保存 PAC/全局 代理设置

    当你在上个步骤中发现 设置完 PAC/全局 代理后,再打开设置就发现刚才设置的代理内容不见了(恐怖),那么可能是因为 IE的站点保护模式问题。

    打开IE浏览器,在**顶部菜单栏 — 工具 — Internet 选项 — 安全选项卡 — 受信任的站点 ** 中 安全级别调至[低]取消 启用保护模式的勾选,然后点击 [站点] 按钮,如下图所示添加 http://127.0.0.1 到受信任的站点列表中并点击 [关闭] 按钮。最后重启 IE浏览器返回上个步骤设置代理查看是否正常保存。

    image

    2.2.4、Internet 保护模式

    当你系统代理设置正确(就是上个步骤),但是使用IE浏览器依然无法链接SS,那么可能是因为 IE的保护模式问题。

    打开IE浏览器,在顶部菜单栏 — 工具 — Internet 选项 — 安全选项卡取消 启用保护模式的勾选,然后重启 IE浏览器尝试是否正常。

    image

    2.2.5、浏览器问题

    如果上面的情况都解决了,依然无法使用Shadowsocks的话,估计是浏览器问题了。

    大多数浏览器都是默认使用系统代理的,比如:Chrome、Opera等浏览器。

    同样,也有一些浏览器是有单独的代理设置 选项,比如:Firefox和国内的几个浏览器。

    请自己检查浏览器的 代理设置 是否为 使用系统代理设置,如果不是就改为 使用系统代理设置

    如果没有这个 代理设置选项 或者已经改好了,那么就检查 浏览器扩展

    比较常见的以 Chromium为内核的浏览器,比如:Chrome、Opera、国内的一些所谓的双核/极速浏览器。

    都经常会使用以下两个插件来管理代理设置,Proxy SwitchyOmega

    Proxy SwitchySharp,因为这两个插件会 接管 浏览器的代理设置,如果设置错误或者不会使用的话,也会导致 Shadowsocks 无法使用,所以可以暂时禁用这两种插件

    2.3、本地电脑时间与服务器差距太大

    如果你使用的是ShadowsocksR账号,并且你本地电脑设备的时间错误,可能会导致无法连接账号,表现特征为:账号确定可用,但是ShadowsocksR客户端的服务器链接统计窗口[报错]列会显示数字,不会提示[超时]和[空连]。

    这种情况只需要根据北京时间校准一下本地电脑设备的时间即可(不需要在意时区,只要客户端和服务端的系统时间都是各自时区的标准时间,那么就行了,因为各个时区的标准时间实际是都是同一时间,只是因为时区不同而显示的时间不一样,并不是美国活在我们的昨天),各个协议对时间的误差要求不一样,所以建议与北京时间(如果你不是国内那么请对照你的时区来修改为时区标准时间)一致。

    3、服务器问题

    服务器引起的问题就比较麻烦,通过教程很难说清,首先检查一下 VPS IP 是否被墙,接着查看 Shadowsocks服务端 日志是否出错,然后检查 Shadowsocks是否运行正常,同时看一下防火墙是否允许了 Shadowsocks的端口,最后还是不行就 重装Shadowsocks服务端 试试,条件允许情况下,最好直接重装VPS系统,避免是其他软件影响了Shadowsocks的运行。我们一条一条解决。

    3.1、检查 IP 是否被墙

    检查 IP 是否被墙很简单,只要用一下 站长工具-超级Ping 功能检测一下,如果发现国内全部 Ping超时其他国家 Ping正常,那就说明 IP 被墙了,反之没有被墙。

    3.2、检查 Shadowsocks服务端 日志

    各个 Shadowsocks服务端 版本的日志文件略有不同,如果你是使用我网站提供的 Shadowsocks 服务端安装教程,那请去对应的教程里查看 日志文件 位置。

    然后通过 对应的命令代码 打开Shadowsocks日志信息,然后查看是否有异常,比如** [Error]** 开头的日志,因为这类问题 繁多并且复杂,出现问题请留言,当然我也只能解决常见的问题,复杂一些的建议去 Github(ShadowsocksR) 问Shadowsocks服务端作者。

    3.3、检查 Shadowsocks服务端是否运行正常

    通过你安装的Shadowsocks版本,在上面找到对应的 查看Shadowsocks服务 运行状态的命令。

    然后,通过netstat -lntp查看端口使用情况,看一下 Shadowsocks的端口是否 正常被 Shadowsocks自身 占用

    如果被其他程序占用,可以尝试修改 Shadowsocks 端口 或者 关闭占用 Shadowsocks端口的 程序

    3.4、检查 VPS iptables 内部防火墙规则是否开放端口

    首先查看一下iptables防火墙规则,看看是不是把 Shadowsocks的端口堵住了,如果你的VPS并没有什么重要的防火墙规则,那就可以直接 **关闭防火墙 **或者 清空防火墙规则

    当然,如果你的VPS上面放的有网站(一般lnmp安装完都会把非必要端口外的端口全部封掉)或者其他的程序,你就需要 添加开放端口规则

    # 查看iptables防火墙规则
    iptables -L
     
    # 清空iptables防火墙规则,注意,一些VPS使用后会导致无法连接VPS!!
    iptables -F
     
    # 添加iptables防火墙开放 TCP/UDP 端口规则
    iptables -I INPUT -p tcp --dport 端口 -j ACCEPT
    iptables -I INPUT -p udp --dport 端口 -j ACCEPT
     
    # 关闭防火墙
    service iptables stop
     
    # 以上四个命令不是按顺序执行,而是根据需求执行!
    

    3.4、检查 VPS 外部防火墙规则是否开放端口

    在一些IDC中,例如:阿里云、腾讯云、微软云、谷歌云、亚马逊云等都有外部防火墙(名字一般叫 安全组 规则组),也就是可以在他们的管理面板中有个独立于VPS内部防火墙的外部防火墙,你可能开放了VPS内部防火墙,但是没开放对应的外部防火墙,这也会导致无法连接Shadowsocks端口。

    3.5、看一看作者写的服务器常见问退排除

    Github Wiki:传送门

    3.6、重装Shadowsocks服务端

    到这一步基本就是死马当活马医了,一些问题实在找不到,那就干脆重装 Shadowsocks服务端。

    条件允许情况下,最好直接重装VPS系统,避免是其他软件影响了Shadowsocks的运行。


    如果以上方法都无法解决,那么更多的请查看 破娃的Wiki:https://github.com/breakwa11/shadowsocks-rss/wiki/服务端常见问题排查

    4、其他情况

    Shadowsocks启动代理后提示“无法修改注册表”

    一些人会出现Shadowsocks启动代理后提示“无法修改注册表”的问题,大多数情况下是发生在网吧等特殊环境下,有一些软件限制了注册表修改功能。

    上面说了,Shadowsocks启动代理后,先是占用1080(默认)端口,然后把Shadowsocks流量映射到127.0.0.1:1080上面,然后在去设置 系统代理设置。而设置 系统代理设置需要修改注册表,所以就会出现上面这个问题。

    真个问题有两种解决办法,一种是找到限制注册表修改功能的软件并关掉;

    一种是 避开这个问题,通过浏览器扩展去管理代理设置,我们这里就讲这个方法。

    当然你也可以试一试 SSCap客户端逗比 · 云 ,这个客户端启动不需要修改注册表来设置系统代理。


    比较常见的以 Chromium为内核的浏览器,比如:Chrome、Opera、国内的一些所谓的双核/极速浏览器。

    都经常会使用以下两个插件来管理代理设置,Proxy SwitchyOmegaProxy SwitchySharp。我推荐前面那个。

    image

    进入扩展的选项页面,然后点新建情景模式>=>输入情景模式名称>=>选择代理服务器>=>点击创建(这个是SS全局的,需要SS PAC模式的请选择PAC情景模式)

    image

    然后SS全局和SS PAC的设置如下:

    全局:代理服务器:127.0.0.1,端口:1080

    PAC:PAC网址:http://127.0.0.1:1080/pac

    当然,这里以默认的1080端口为例,如果不是就自己改。设置完点应用选项,就可以使用了。

    image image

    在浏览器的右上角点击Proxy SwitchyOmega扩展图标,选择你需要的全局还是PAC(这时候Shadowsocks客户端不需要去设置对应的全局/PAC),就可以正常使用了。

    image

    正文之后

    溜了溜了!

    相关文章

      网友评论

      • 非洲战神:只说一句话,剩下的自己悟:这种文章,希望你离线存在自己电脑上,这是为了大家好。我只说这么多
      • 018f76685944:写得太详细了,越是对小白友好的资料,就对“登山队”越不好…
        张照博:@戴野狼 。。。搬运 搬运~
      • 436474f9cdc3:很赞👍!
      • bboysoul:我是不敢写这种东西了
        张照博:@bboysoul 。。。而且这篇文章放好久了 都没人管
        bboysoul:@HustWolf 哈哈
        张照博:封就封呗。。。应该不会请喝茶吧!
      • 虚无void:Ss还有更新啊,但是ssr的作者把代码都删了
        张照博:@HustWolf 后面再改回来
        张照博:。。。能用就行了。。
      • e9a672e6f09c:PAC还能用?
        张照博:@途腾 不知道哇。。。我没用过那个

      本文标题:【搬运】Shadowsocks无法使用后的简单排除方法

      本文链接:https://www.haomeiwen.com/subject/gevgcftx.html