月下博客

使用ShadowsocksR Python客户端 快速验证SSR账号是否可用

本文最后更新于 2017年12月30日 18:08 可能会因为没有更新而失效。如已失效或需要修正,请留言!

很多人可能还不知道ShadowsocksR Python服务端,实际上也包含了客户端,所以一些Linux用户可以用这个来当客户端,不过今天说的不是ShadowsocksR Python客户端的详细使用教程,而是利用 ShadowsocksR Python客户端来快速验证你的ShadowsocksR账号是否正常可用。

如果你想要批量测试或者简化测试步骤,可以使用我写的脚本:『原创』ShadowsocksR 批量 快速验证账号可用性 一键脚本

适用情况

当你的ShadowsocksR账号无法连接,你又没有其他网络/设备或者不想把账号给别人测试,那么如何快速判断是你的ShadowsocksR账号(服务端)问题还是你本地设置或者网络问题呢?

我们只需要用和ShadowsocksR Python服务端 配套的客户端来快速连接你的ShadowsocksR账号,然后使用 curl 通过代理访问谷歌来确定是否是账号问题。

其他的适用情况不一一说明了(比如,有时候ShadowsocksR服务端正常运行,但是却无法连接)

使用方法

前置准备

首先你要有一个ShadowsocksR Python服务端(客户端与服务端是可以同时运行不会冲突的)。

注意:你服务器A上面的ShadowsocksR服务端的账号无法连接,你不一定非要用服务器A上面的ShadowsocksR客户端来测试验证可用性,其他服务器也行。

其次你需要安装一个 curl 用来使用ShadowsocksR客户端代理测试是否可以的(本来想用wget的,但是它对socks代理支持不好)。

CentOS 系统:

yum update
# 如果你以前已经执行过这个命令,那么可以跳过以节省时间
yum install curl -y

Debian/Ubuntu 系统:

apt-get update
# 如果你以前已经执行过这个命令,那么可以跳过以节省时间
apt-get install curl -y

运行客户端

首先我们进入ShadowsocksR的子目录,假设你ShadowsocksR安装在 /root 目录,那么:

cd /root/shadowsocksr/shadowsocks

然后我们快速运行,请根据你的ShadowsocksR账号来替换下面的参数内容(为了避免出错,建议每个参数都加上引号)。

python local.py -b 127.0.0.1 -l 1082 -s "IP" -p "端口" -k "密码" -m "加密方式" -O "协议插件" -o "混淆插件" -G "协议参数" -g "混淆参数" -d start

点击展开 查看示例说明/参数说明

示例说明:

# 例如你的账号是:
 I  P	    : 1.1.1.1
 端口	    : 2333
 密码	    : doub.io
 加密	    : aes-128-ctr
 协议	    : auth_aes128_md5
 混淆	    : tls1.2_ticket_auth
# 那么快速运行就是这样写
python local.py -b 127.0.0.1 -l 1082 -s "1.1.1.1" -p "2333" -k "doub.io" -m "aes-128-ctr" -O "auth_aes128_md5" -o "tls1.2_ticket_auth" -d start

# 注意:
# 如果你要测试的SSR账号就是你当前服务器上的ShadowsocksR服务端的话,同时你的配置是 单用户单端口,那么可以直接使用下面这个简化后的命令运行,因为ShadowsocksR客户端也会默认读取 user-config.json 里面的配置,快速运行代码如果没有指定参数,就会用配置文件内的替换,所以只需要写个本机的公网IP运行即可。
python local.py -b 127.0.0.1 -l 1082 -s "1.1.1.1" -d start

参数说明:

-b 127.0.0.1  #监听本地IP
-l 1082  #监听本地1082端口(与1080区分开,避免冲突)
-s "IP"  #ShadowsocksR账号的 IP
-p "port"  #... 端口
-k "password"  #... 密码
-m "method"  #... 加密方式
-O "protocol"  #... 协议插件
-o "obfs"  #... 混淆插件
-G "protocol_param"  #... 协议参数(可省略)
-g "obfs_param"  #... 混淆参数(可省略)
-d start  #后台启动

启动后提示下面这些内容则代表客户端启动正常。

loaded collections.OrderedDict
IPv6 support
2017-05-11 xx:xx:xx INFO util.py:85 loading libcrypto from libcrypto.so.1.0.0
started

验证账号可用性

ShadowsocksR客户端启动后,我们就只需要用 curl 通过 127.0.0.1:1082 代理去访问一下谷歌网站即可验证账号可用性。

curl --socks5 127.0.0.1:1082 https://bing.com -k

正常情况应该是谷歌会根据你的IP位置来显示302重定向信息,这代表ShadowsocksR账号是正常的。

如果半天没动静,或者其他报错,即代表ShadowsocksR账号不可用(前提是你前面两个步骤没搞错)

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="https://www.google.ca/?gfe_rd=cr&amp;ei=OAkUWf-kMuGM8Qeuka34BA">here</A>.
</BODY></HTML>

停止ShadowsocksR Python客户端:

python local.py -d stop

以前我曾经打算写一个利用ShadowsocksR Python客户端来定时检测ShadowsocksR账号可用性的脚本,但是因为不清楚如何通知使用者,就搁置了。。。

ShadowsocksR Python客户端 WIKI:https://github.com/breakwa11/shadowsocks-rss/wiki/Python-client-setup-(Mult-language)

转载请超链接注明:月下博客 » 使用ShadowsocksR Python客户端 快速验证SSR账号是否可用
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!