Shadowsocks/ShadowsocksR账号 在线云监控 —— SSRStatus 一键脚本
Github项目:https://github.com/ToyoDAdoubi/SSRStatus
示例网站:sstz.toyoo.ml
系统要求
CentOS 6+ / Debian 6+ / Ubuntu 14.04 +
推荐 Debian 7 x64,这个是我一直使用的系统,我的脚本在这个系统上面出错率最低。
本脚本需要使用到ShadowsocksR Python服务端(即客户端,两者同时运行不影响)!
注意,SSRStatus 不同于 ServerStatus 它没有客户端,脚本作为服务端(也可以说是客户端),通过 crontab 定时执行脚本检测账号,并输出结果到JSON文件,然后JS会读取JSON并显示到HTML(网页)上面。
脚本版本
Ver: 1.0.4
安装步骤
执行下面的代码下载并运行脚本。
- wget -N --no-check-certificate https://softs.pw/Bash/ssrstatus.sh && chmod +x ssrstatus.sh && bash ssrstatus.sh
-
- # 如果上面这个脚本无法下载,尝试使用备用下载:
- wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/ssrstatus.sh && chmod +x ssrstatus.sh && bash ssrstatus.sh
下载并运行脚本后会出现脚本操作菜单,选择并输入 1 就会开始安装。
简单步骤
首先安装服务端,安装过程中会提示:
- 是否由脚本自动配置HTTP服务(服务端的在线监控网站)[Y/n]
-
- # 如果你不懂,那就直接回车,如果你想用其他的HTTP服务自己配置,那么请输入 n 并回车。
- # 注意,当你曾经安装过 服务端,同时没有卸载Caddy(HTTP服务),那么重新安装服务端的时候,请输入 n 并回车。
然后会提示你输入网站服务器的域名和端口,如果没有域名可以直接回车代表使用 本机IP:8888。
然后部署完 HTTP服务,就会让你设置 检测间隔时间。
- 请选择你要设置的ShadowsocksR账号检测时间间隔(如账号很多,请不要设置时间间隔过小)
- 1. 5分钟
- 2. 10分钟
- 3. 20分钟
- 4. 30分钟
- 5. 40分钟
- 6. 50分钟
- 7. 1小时
- 8. 2小时
- 9. 自定义输入
-
- (默认: 2. 10分钟):
我们还需要设置一下ShadowsocksR子目录变量,打开脚本文件
- vi ssrstatus.sh
- # 按 I键 进入编辑模式,然后修改后按 ESC键 退出编辑模式,并输入 :wq 保存并退出
然后我们找到第 16行的 SSR_folder="/root/shadowsocksr/shadowsocks" 参数,修改引号内的ShadowsocksR目录名,必须设置为 ShadowsocksR子目录的绝对路径,并且最后一位不能加上 “/”。
注意:如果你用的是我的ShadowsocksR一键脚本,那么位置即是:/usr/local/shadowsocksr/shadowsocks
最后 添加账号配置即可。
使用说明
进入下载脚本的目录并运行脚本:
- # 管理菜单
- ./ssrstatus.sh
-
- # 检测所有账号配置(快捷参数)
- ./ssrstatus.sh t
- # 检测单独账号配置(快捷参数)
- ./ssrstatus.sh o
- # 检测自定义账号配置(快捷参数)
- ./ssrstatus.sh a
-
- # 查看日志输出(快捷参数)
- ./ssrstatus.sh log
运行脚本后选择你要执行的选项即可。
- SSRStatus 一键安装管理脚本 [vx.x.x]
- -- Toyo | doub.io/shell-jc4 --
-
- 0. 升级脚本
- ————————————
- 1. 安装 依赖及Web网页
- 2. 卸载 依赖及Web网页
- ————————————
- 3. 测试 所有账号
- 4. 测试 单独账号
- 5. 测试 自定义账号
- ————————————
- 6. 设置 配置信息
- 7. 查看 配置信息
- 8. 查看 运行日志
- 9. 设置 定时间隔
- ————————————
-
- 当前状态: Web网页 已安装
-
- 请输入数字 [0-9]:
其他操作
Caddy(HTTP服务):
启动:service caddy start
停止:service caddy stop
重启:service caddy restart
查看状态:service caddy status
Caddy配置文件:/usr/local/caddy/Caddyfile
默认脚本只能一开始安装的时候设置配置文件,更多的Caddy使用方法,可以参考这些教程:https://doub.io/search/caddy
网页文件:/usr/local/SSRStatus
配置文件:ssr_status.conf(和脚本在同一个目录中)
查看日志:cat ssr_status.log(和脚本在同一个目录中)
其他说明
修改网页标题或公告
如果要修改网页标题或者网页顶部公告内容,打开 http://usr/local/SSRStatus/index.html 文件修改即可,很显眼。
批量添加账号配置
如果要批量添加账号配置,那么用脚本反而速度慢,可以按一下格式写入配置文件:
- ss/ssr链接###名称###位置###禁用状态
-
- # 示例:
- ssr://xxxxxxxx###DOUBI###Japen###fales
-
- # fales代表禁用状态否,即启用,true 反之。
然后可以这样快速写入配置文件:
- echo -e "ssr://xxxxxxxx###DOUBI1###Japen###fales
- ssr://yyyyyyyy###DOUBI2###Hong Kong###true
- ssr://zzzzzzzz###DOUBI3###洛杉矶(支持中文,只要你系统支持显示和输入)###fales" >> ssr_status.conf
提示wget: unknown host “softs.pw” 之类的错误
这是无法解析我的域名,多半是DNS的问题,请更换DNS为谷歌DNS(以下两行一起复制 一起执行)。
- echo -e "nameserver 8.8.8.8
- 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
Caddy启动失败,打开 http://ip 显示的是 It works !
一些系统会自带 apache2 ,而 apache2 会占用80端口,导致Caddy无法绑定端口,所以只要关掉就好了。
- netstat -lntp
- # 我们可以通过这个命令查看是不是被其他软件占用了 80 端口。
不过 apache2 会默认开机自启动,如果不需要可以关闭自启动或者卸载 apache2 。
停止 Apache2
- service apache2 stop
- # 尝试使用上面这个关闭,如果没效果或者提示什么错误无法关闭,那就用下面这个强行关闭进程。
- kill -9 $(ps -ef|grep "apache2"|grep -v "grep"|awk '{print $2}')
取消开机自启动
- # CentOS 系统 #
- chkconfig --del httpd
- # Debian/Ubuntu 系统 #
- update-rc.d -f apache2 remove
卸载 Apache2(卸载包括了取消开机启动,无需重复)
- # CentOS 系统 #
- yum remove httpd
- # Debian/Ubuntu 系统 #
- apt-get remove --purge apache2
关闭 Apache2后,就可以尝试启动 Caddy ,并试试能不能打开网页。
- service caddy start
升级脚本
升级脚本只需要运行脚本,然后选择并输入 0 回车即可,会自动检测最新版本并下载,当然重新下载脚本文件也可以,会自动覆盖原文件。