月下博客

『原创』ShadowsocksR 批量 快速验证账号可用性 一键脚本

本文最后更新于 2018年9月20日 19:50 可能会因为没有更新而失效。如已失效或需要修正,请留言!

这几天没事干,就把我自用的批量检测我网站免费Shadowsocks账号的脚本改一改发出来好了。

如果你想要手动测试,那么看:使用ShadowsocksR Python客户端 快速验证SSR账号是否可用

如果你想要带网页监控的,那么看:Shadowsocks/ShadowsocksR账号 在线云监控 —— SSRStatus 一键脚本

系统要求

CentOS 6+ / Debian 6+ / Ubuntu 14.04 +

本脚本需要服务器上面安装 ShadowsocksR Python服务端,才能配合使用,当然Shadowsocks原版和ShadowsocksR账号都可以检测(SS libev的带混淆插件的账号不行)。

脚本版本

Ver: 1.0.3

安装步骤

前置准备

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

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

CentOS 系统:

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

Debian/Ubuntu 系统:

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

然后我们下载脚本:

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/ssr_check.sh && chmod +x ssr_check.sh

使用说明

首先我们需要配置一下:

配置参数

设置 ShadowsocksR服务端的位置:

vi ssr_check.sh
# 打开后按 I键 进入编辑模式,然后修改后按 ESC键 退出编辑默认,然后输入 :wq 保存并退出!

找到第 14行的 SSR_folder="/root/shadowsocksr/shadowsocks"

根据你的ShadowsocksR服务端的子目录来修改这个变量的值(也就是引号内的文本),如果你就是安装在 /root 文件夹内,那么就不需要修改了。

设置 配置文件:

然后我们需要把你要批量测试的Shadowsocks/ShadowsocksR账号的SS/SSR链接(如 ss://xxx ssr://xxx)写入配置文件 ssr_check.conf (默认没有)

注意:配置文件必须一行一个SS/SSR链接。

我们可以用 echo 快速创建配置文件并写入内容:

echo -e "ss://xxx
ssr://xxx
ssr://yyy" > ssr_check.conf

上面的代码是清空文件并写入内容(如果文件不存在就创建文件),如果要追加文本只需要把最后一行的 > 改成 >> 即可。

当然你可以用 vi 来创建配置文件并添加/编辑。

vi ss_check.conf
# 打开后按 I键 进入编辑模式,然后添加/修改后按 ESC键 退出编辑默认,然后输入 :wq 保存并退出!

其他配置(修改测试超时时间及URL,可选)

点击展开 查看更多

考虑到一些人可能需要修改 超时时间和URL,所以我干脆写成了变量。

打开脚本文件,找到以下变量,修改引号内内容即可。

这两个参数可按需修改,不过一般情况下默认即可,否则 超时时间过低虽然会加快脚本运行速度,但是会导致测试准确性下降。

同时 测试用的URL,适合那些页面元素很简单,同时全球都有CDN一类的缓存加速服务器,这样挂各个SS/SSR代理访问也不会因为速度而增加脚本运行速度。

Timeout="10"
# Timeout是超时时间,默认 10秒
Test_URL="https://github.com"
# Test_URL 是测试用的URL,默认 https://github.com 

运行说明

脚本参数命令:

./ssr_check.sh t
# 读取配置文件并批量检测账号可用性

./ssr_check.sh a
# 手动输入SS/SSR账号或SS/SSR链接 以检测账号可用性

./ssr_check.sh log
# 查看测试后,输出的日志文件

输出结果如下:

========== 开始记录测试信息 [2017-05-17 13:07:30]==========

[信息] 检测成功,账号 [1.1.1.1] 可用 !
[错误] 检测失败,账号 [2.2.2.2] 不可用 ! 
[信息] 检测成功,账号 [3.3.3.3] 可用 !
[信息] 检测成功,账号 [4.4.4.4] 可用 !
[信息] 检测成功,账号 [5.5.5.5] 可用 !
========== 记录测试信息结束 [2017-05-17 13:07:46]==========

其他说明

注意:如果测试的账号有 salsa20、chacha20、chacha20-ietf 加密方式,那么依然需要安装 libsodium支持库:

ShadowsocksR 安装libsodium 以支持 Chacha20/Chacha20-ietf 加密方式

定时检测并记录到日志文件

当你需要定时检测并记录到日志的时候,可以用 crontab来定时。

点击展开 查看更多

crontab -e
# 打开crontab,按 I键 进入编辑模式,把下面的定时代码加入到最后,然后 按ESC键退出编辑模式并输入 :wq 保存并退出。
# 如果提示命令不存在,请安装:
# CentOS 系统:
yum update
yum install crond -y
# Debian/Ubuntu 系统:
apt-get update
apt-get install cron -y

* * * * * 对应 分钟 小时 日 月 星期 ,下面的代码是 每小时的10分0秒执行一次脚本(假设脚本在 /root 目录下,不是就自己改)

0 10 * * * /bin/bash /root/ssr_check.sh t

下面的代码是 每30分钟执行一次脚本(假设脚本在 /root 目录下,不是就自己改)

*/30 * * * * /bin/bash /root/ssr_check.sh t

提示wget: unknown host “raw.githubusercontent.com” 之类的错误

这是无法解析我的域名,多半是DNS的问题,请更换DNS为谷歌DNS。

点击展开 查看更多

echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf

提示 wget: command not found 的错误

这是你的系统精简的太干净了,wget都没有安装,所以需要安装wget。

点击展开 查看更多

# CentOS系统:
yum install -y wget

# Debian/Ubuntu系统:
apt-get install -y wget

升级脚本

升级脚本只需要重新下载脚本文件就可以了,会自动覆盖原文件。

更新日志

2017年05月20日,版本 v1.0.3

1.新增 本地端口随机,避免当脚本在定时测试账号时,手动运行脚本测试导致端口冲突。

2.修复 小概率ShadowsocksR客户端无法停止问题(如 第1条 说的端口冲突)。

3.更换 启动方式为 nohup方式启动,可多开ShadowsocksR客户端(如 第1条)

2017年05月19日,版本 v1.0.2

1.新增 ipv6账号测试支持。

2017年05月17日,版本 v1.0.1

1.新增 超时时间自定义变量。

2.新增 测试用的URL自定义变量。

3.修复 部分系统因为根证书不完整导致的无法通过测试的问题。

4.修复 部分Shadowsocks/ShadowsocksR账号可用,但是测试结果不可用的问题。

2017年05月17日,版本 v1.0.0

1.推出 正式版。

转载请超链接注明:月下博客 » 『原创』ShadowsocksR 批量 快速验证账号可用性 一键脚本
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!