1、确认Shadowsocks账号可用
在开始阅读本教程之前,你的第一步就是先确认你的Shadowsocks账号是否可用****(这步很重要!),建议让其他人链接试试,或者其他设备链接试试。
如果别人能用,你却不能用。那就很明显是 你本地电脑设置问题 或者 Shadowsocks客户端 问题。请看 2、本地问题
如果别人都不能使用。那就说明是 Shadowsocks服务端 或者 VPS 问题。请看 3、服务器问题
如果你的ShadowsocksR账号是自建的,同时没有其他设备或者不想让其他人使用,那么可以看这个文章:
- 使用ShadowsocksR Python客户端 快速验证SSR账号是否可用
-
『原创』ShadowsocksR 批量 快速验证账号可用性 一键脚本
还有,可以打开ShadowsocksR的服务器连接统计 窗口,然后查看当前服务器信息的 实下载/错误/超时/空连 等数据来简单判断问题大概在哪里。
实下载:浏览器收到的实际下载流量大小;
– 如果当前SSR服务器配置了SSR协议(非原版origin),有数据显示则表示配置是正确的,如果一直为零 0 ,则表示一定有错误。
错误:错误包括网络错误 和 协议错误;
– 网络错误:连接被拒绝,一般是当前(账号)服务器配置的 端口不正确、防火墙没有开放端口 等导致的。
– 协议错误:返回数据校检错误,当前(账号)服务器配置的 SSR协议/混淆插件 不正确导致的。
超时:一般是当前(账号)服务器未开机、没有网络等导致链接服务器超时。
空连:空连表示链接后无返回数据,一般是当前(账号)服务器配置的 密码或加密方式 不正确导致的。
如果浏览器打开谷歌网站 什么数据都没显示,那说明浏览器根本就没有走代理。
2、本地问题
再确认别人可以使用你的Shadowsocks账号后,那问题就是 你本地电脑设置问题 或者 Shadowsocks客户端 问题。那么我们就一个个排除。
2.1、Shadowsocks客户端问题
首先,请尽量使用最新的Shadowsocks客户端,鉴于目前 Shadowsocks v3.0原版 因为作者喝茶已经停止更新很长时间了,推荐使用 目前在持续更新的 ShadowsocksR 客户端(很多人换了ShadowsocksR后就可以使用了)。
下载地址:逗比 · 云
对了,还有一点。Shadowsocks账号信息 记得检查一下,说不定多了个空格或者符号,这都会导致无法连接Shadowsocks。
同时,ShadowsocksR 只做了很多 其他的辅助功能,这些功能如果你不需要的话,请不要修改。否则一些设置不正确也会导致无法连接。
2.2.1、Shadowsocks 软件权限问题
Shadowsocks 启动系统代理后,就会去修改注册表来设置 系统代理设置。
而一些电脑系统或者非管理员用户(比如网吧),可能因为没有相应的权限 导致 Shadowsocks 启动系统代理 后无法修改注册表。
这时候就需要用 **管理员权限 **启动 Shadowsocks 客户端。
如果是网吧的话,是限制不能修改注册表的,而且也没有相应的权限,所以建议使用** SSCap客户端**:逗比 · 云
如果确定不是 软件权限问题导致的,那么请继续看下面。
2.2.2、系统代理设置问题
2.2.1 说了,Shadowsocks 启动系统代理后,就会去修改注册表来设置 系统代理设置。
那么,在启动后,请打开 系统代理设置 看一下是否正确设置代理。
右键桌面上的网络 >=> 属性 >=> Internet 选项 >=> 连接 选项卡 >=> 选择你使用的拨号链接 >=> 设置
image然后你是 直接电脑连接 猫 拨号上网的用户,就如上图所示打开下图的窗口。
如果你是 路由器连接 猫 上网的用户,就点击上图所示中 下面的 局域网设置 打开下图的窗口。
下图中 上面 红框圈中 的选项是,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。
image2.2.3、无法保存 PAC/全局 代理设置
当你在上个步骤中发现 设置完 PAC/全局 代理后,再打开设置就发现刚才设置的代理内容不见了(恐怖),那么可能是因为 IE的站点保护模式问题。
打开IE浏览器,在**顶部菜单栏 — 工具 — Internet 选项 — 安全选项卡 — 受信任的站点 ** 中 安全级别调至[低] 并 取消 启用保护模式的勾选,然后点击 [站点] 按钮,如下图所示添加 http://127.0.0.1 到受信任的站点列表中并点击 [关闭] 按钮。最后重启 IE浏览器返回上个步骤设置代理查看是否正常保存。
image2.2.4、Internet 保护模式
当你系统代理设置正确(就是上个步骤),但是使用IE浏览器依然无法链接SS,那么可能是因为 IE的保护模式问题。
打开IE浏览器,在顶部菜单栏 — 工具 — Internet 选项 — 安全选项卡 中取消 启用保护模式的勾选,然后重启 IE浏览器尝试是否正常。
image2.2.5、浏览器问题
如果上面的情况都解决了,依然无法使用Shadowsocks的话,估计是浏览器问题了。
大多数浏览器都是默认使用系统代理的,比如:Chrome、Opera等浏览器。
同样,也有一些浏览器是有单独的代理设置 选项,比如:Firefox和国内的几个浏览器。
请自己检查浏览器的 代理设置 是否为 使用系统代理设置,如果不是就改为 使用系统代理设置。
如果没有这个 代理设置选项 或者已经改好了,那么就检查 浏览器扩展。
比较常见的以 Chromium为内核的浏览器,比如:Chrome、Opera、国内的一些所谓的双核/极速浏览器。
都经常会使用以下两个插件来管理代理设置,Proxy SwitchyOmega、Proxy SwitchySharp,因为这两个插件会 接管 浏览器的代理设置,如果设置错误或者不会使用的话,也会导致 Shadowsocks 无法使用,所以可以暂时禁用这两种插件。
image2.3、本地电脑时间与服务器差距太大
如果你使用的是ShadowsocksR账号,并且你本地电脑设备的时间错误,可能会导致无法连接账号,表现特征为:账号确定可用,但是ShadowsocksR客户端的服务器链接统计窗口[报错]列会显示数字,不会提示[超时]和[空连]。
这种情况只需要根据北京时间校准一下本地电脑设备的时间即可(不需要在意时区,只要客户端和服务端的系统时间都是各自时区的标准时间,那么就行了,因为各个时区的标准时间实际是都是同一时间,只是因为时区不同而显示的时间不一样,并不是美国活在我们的昨天),各个协议对时间的误差要求不一样,所以建议与北京时间(如果你不是国内那么请对照你的时区来修改为时区标准时间)一致。
如果在确认Shadowsocks账号可用的情况下,以上的几种方法依然无法解决问题,请联系我 Telegram。
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安装完都会把非必要端口外的端口全部封掉)或者其他的程序,你就需要 添加开放端口规则。
1. # 查看iptables防火墙规则
2. iptables -L
4. # 清空iptables防火墙规则,注意,一些VPS使用后会导致无法连接VPS!!
5. iptables -F
7. # 添加iptables防火墙开放 TCP/UDP 端口规则
8. iptables -I INPUT -p tcp --dport 端口 -j ACCEPT
9. iptables -I INPUT -p udp --dport 端口 -j ACCEPT
11. # 关闭防火墙
12. service iptables stop
14. # 以上四个命令不是按顺序执行,而是根据需求执行!
3.4、检查 VPS 外部防火墙规则是否开放端口
在一些IDC中,例如:阿里云、腾讯云、微软云、谷歌云、亚马逊云等都有外部防火墙(名字一般叫 安全组 规则组),也就是可以在他们的管理面板中有个独立于VPS内部防火墙的外部防火墙,你可能开放了VPS内部防火墙,但是没开放对应的外部防火墙,这也会导致无法连接Shadowsocks端口。
Shadowsocks启动代理后提示“无法修改注册表”
一些人会出现Shadowsocks启动代理后提示“无法修改注册表”的问题,大多数情况下是发生在网吧等特殊环境下,有一些软件限制了注册表修改功能。
上面说了,Shadowsocks启动代理后,先是占用1080(默认)端口,然后把Shadowsocks流量映射到127.0.0.1:1080上面,然后在去设置 系统代理设置。而设置 系统代理设置需要修改注册表,所以就会出现上面这个问题。
真个问题有两种解决办法,一种是找到限制注册表修改功能的软件并关掉;
一种是 避开这个问题,通过浏览器扩展去管理代理设置,我们这里就讲这个方法。
当然你也可以试一试 SSCap客户端:逗比 · 云 ,这个客户端启动不需要修改注册表来设置系统代理。
比较常见的以 Chromium为内核的浏览器,比如:Chrome、Opera、国内的一些所谓的双核/极速浏览器。
都经常会使用以下两个插件来管理代理设置,Proxy SwitchyOmega、Proxy SwitchySharp。我推荐前面那个。
[图片上传中...(image-37da4d-1514963116460-4)]
进入扩展的选项页面,然后点新建情景模式>=>输入情景模式名称>=>选择代理服务器>=>点击创建(这个是SS全局的,需要SS PAC模式的请选择PAC情景模式)
[图片上传中...(image-b2195e-1514963116460-3)]
然后SS全局和SS PAC的设置如下:
全局:代理服务器:127.0.0.1,端口:1080
PAC:PAC网址:http://127.0.0.1:1080/pac
当然,这里以默认的1080端口为例,如果不是就自己改。设置完点应用选项,就可以使用了。
在浏览器的右上角点击Proxy SwitchyOmega扩展图标,选择你需要的全局还是PAC(这时候Shadowsocks客户端不需要去设置对应的全局/PAC),就可以正常使用了。
网友评论