本文转载自doub.io
系统要求
CentOS 6+ / Debian 6+ / Ubuntu 14.04 +
CentOS根据大家的要求,加入了CentOS 6和7的支持,CentOS 7 自带防火墙问题(firewalld)自行解决,其他版本没有做测试。
脚本版本
Ver: 2.0.37
脚本特点
目前网上的各个ShadowsocksR脚本基本都是只有 安装/卸载 等基础功能,对于小白来说还是不够简单方便,要修改账号配置还要手动修改文件,所以那些ShadowsocksR脚本只能称得上一键安装脚本。既然没有我满意的ShadowsocksR一键管理脚本,那么我就自己造喽,于是特意学了Shell,然后写出来了这个ShadowsocksR一键管理脚本!
- 支持 限制 端口限速
- 支持 限制 端口设备数
- 支持 显示 当前连接IP
- 支持 显示 SS/SSR连接+二维码
- 支持 切换管理 单/多端口
- 支持 一键安装 BBR
- 支持 一键安装 锐速
- 支持 一键安装 LotServer
- 支持 一键封禁 垃圾邮件(SMAP)/BT/PT
安装步骤
本脚本需要Linux root账户权限才能正常安装运行
sudo su
输入上面代码回车后会提示你输入当前用户的密码,输入并回车后,没有报错就继续下面的步骤安装ShadowsocksR。
v2.0.0 版本以后的脚本,请先卸载旧脚本ShadowsocksR服务端,再重新安装!wget -N --no-check-certificate https://raw.githubusercontent.com/tg6169/ssr/master/ssr.sh && chmod +x ssr.sh && bash ssr.sh
输入 1 ,就会开始安装ShadowsocksR服务端,并且会提示你输入Shadowsocks的 端口/密码/加密方式/ 协议/混淆(混淆和协议是通过输入数字选择的) 等参数。
如果安装过程中报错,请看 常见问题解决方法。
如果协议是origin,那么混淆也必须是plain!
注意:关于限制设备数数,这个协议必须是非原版并且不兼容原版才有效,也就是必须SSR客户端使用协议的情况下,才有效!
最后会提示让你确认是否输入正确,如果没问题那就按任意键继续安装,如果输入错误,那么就使用 Ctrl + C 退出脚本。
使用说明
运行脚本bash ssr.sh
输入对应的数字来执行相应的命令。
当你为 单端口模式时,使用 7. 设置 用户配置 是 修改 单端口账号配置。
当你为 多端口模式时,使用 7. 设置 用户配置 是 添加/删除/修改 多端口账号配置。
文件位置
安装目录:/usr/local/shadowsocksr
配置文件:/etc/shadowsocksr/user-config.json
其他说明
ShadowsocksR 安装后,自动设置为 系统服务,所以支持使用服务来启动/停止等操作,同时支持开机启动。
启动 ShadowsocksR:/etc/init.d/ssr start
停止 ShadowsocksR:/etc/init.d/ssr stop
重启 ShadowsocksR:/etc/init.d/ssr restart
查看 ShadowsocksR状态:/etc/init.d/ssr status
ShadowsocksR 默认支持UDP转发,服务端无需任何设置。
本脚本已经集成了 安装/卸载 锐速(ServerSpeeder)开心版,但是是否支持请查看 Linux支持内核列表 。(锐速不支持OpenVZ)
ShadowsocksR启动失败,日志提示:Exception: libsodium not found 的错误
这是你使用了 chacha20 系列加密方式,但是却没有安装 libsodium支持库,导致ShadowsocksR无法启动,运行脚本选择选项 4 安装 libsodium支持库即可,如果安装失败,请选择其他的加密方式,对速度影响不大。
解决 可使用原版协议,但无法使用ShadowsocksR协议 的问题
如果发现Shadowsocks原版协议/混淆可以使用,而ShadowsocksR的协议/混淆无法使用,那么多半是 VPS时区问题
这个命令,我的ShadowsocksR脚本在安装的时候已经执行了,如果你发现没有执行,那你可以手动执行。
我们可以通过下面这个命令,把VPS的时区调整为北京时区,这样就避免了ShadowsocksR 协议/混淆 因为时差太大造成的无法验证。
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
注意,部分VPS会提示你是否覆盖文件,输入 y 然后回车。
如果你遇到,crontab设定的定时任务不按更换时区后的VPS时间执行,那么请看下面:
crontab设定的定时任务不按VPS的时间执行,那是因为你更换VPS时区后还需要重启crontab。
CentOS 系统:
/etc/init.d/crond restart
Debian/Ubuntu 系统:
/etc/init.d/cron restart
ShadowsocksR服务端 限制设备连接数 和 限制端口速度 的方法
在使用ShadowsocksR服务端中,经常会有人需要 限制设备连接数 和 限制端口速度 以防止Shadowsocks账号被滥用,但是以前一直没有什么好的方法。
2017年2月15日 ShadowsocksR更新新版本,支持了 限制端口速度 的参数,至于 限制设备连接数,这个很早就有了,但是还是有人不知道,我就单独写个简单教程说明好了。
查看以下教程前,请先升级你的ShadowsocksR服务端为最新版本(2月15日以后),否则可能功能不完整。
首先要说的是,限制设备数和限速功能,全都是依赖于 协议插件,这意味着:
如果你服务端 协议设置(protocol) 的是 原版(origin) 时,设备数限制、限速无效。
如果你服务端 协议设置(protocol) 的是 协议兼容原版 ,那么当用户使用 原版协议(origin) 连接账号时,设备数限制、限速无效。
限制设备连接数
限制设备连接数的这个功能,很早就有了,就是修改协议参数: protocol_param
打开你的配置文件,假设你在 /root
文件夹中安装的ShadowsocksR服务端,那么就是:
vi /root/shadowsocksr/user-config.json
找到协议参数(参数为空 “” 时,默认限制 64个设备数)
"protocol_param": "",
在协议参数中设置你要限制 每个端口最大设备连接数(建议最少2个),比如 限制最大 5个设备同时链接,那么改为:
"protocol_param": "5",
注意:协议参数仅在服务端 协议设置(protocol)为
非原版(origin)协议并不兼容原版(_compatible)
时才有效!
另外注意:目前只有auth_chain_*
系列协议可以实时计算设备数,其他的 协议插件 则都是5分钟计算一次,所以可能并不准确。
如果你服务端 协议设置(protocol) 的是 原版(origin)
时,设备数限制无效。
如果你服务端 协议设置(protocol) 的是 协议兼容原版
,那么当用户使用 原版协议(origin) 连接账号时,设备数限制无效。
限制端口速度
限制端口速度这个功能,是 2017年2月15日凌晨 才更新新添加的功能,我的一键ShadowsocksR管理脚本已经支持了这个设置。
打开你的配置文件,假设你在/root
文件夹中安装的ShadowsocksR服务端,那么就是:
vi /root/shadowsocksr/user-config.json
新增的两个参数分别是(参数为 0 时,默认代表不限速):
"speed_limit_per_con": 0,
"speed_limit_per_user": 0,
单位是KB/S
,也就是我们平时下载文件的速度单位,我们家庭宽带100兆就是: 100Mbps / 8 = 12.5MB/S * 1024 =12800KB/S
。
比如我们要设置 单线程限速 1MB/S ,端口总限速 3MB/S ,那么就这样写:
"speed_limit_per_con": 1024,
"speed_limit_per_user": 3072,
speed_limit_per_con 指的是,单线程限速。
当你使用这个端口 下载某个文件时,单线程下载限速 100KB/S ,多线程下载(比如5个线程)就是 500KB/S 了,Youtube是单线程。
speed_limit_per_user 指的是,端口总限速。
使用这个端口的总速度被限制为 100KB/S 。
举例子说明:
假设设置,单线程限速 100KB/S ,端口总限速不限制,那么:
你单线程下载文件速度为 100KB/S ,你多线程 5个线程就是 500KB/S 。
假设设置,单线程限速 100KB/S ,端口总限速 300KB/S ,那么:
你单线程下载文件速度为 100KB/S ,你多线程最多 300KB/S 。
假设设置,单线程限速不限制,端口总限速 800KB/S ,那么:
你单线程下载文件速度为 800KB/S ,你多线程最多也是 800KB/S 。
注意:单线程限速和端口总限速是独立的,当然在限速的时候不可能精确到100%,所以速度可能会上下波动 10% 左右。
如果你服务端 协议设置(protocol) 的是 原版(origin) 时,限速无效。
如果你服务端 协议设置(protocol) 的是 协议兼容原版
,那么当用户使用 原版协议(origin)
连接账号时,限速无效。