记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

CentOS/Debian/Ubuntu ShadowsocksR 单/多端口 一键管理脚本

CentOS/Debian/Ubuntu ShadowsocksR 单/多端口 一键管理脚本

系统要求

CentOS 6+ / Debian 6+ / Ubuntu 14.04 +

推荐 Debian 7 x64,这个是我一直使用的系统,我的脚本在这个系统上面出错率最低。并且最容易安装锐速(锐速不支持OpenVZ)

CentOS根据大家的要求,加入了CentOS 6和7的支持,CentOS 7 自带防火墙问题自行解决,其他版本没有做测试。

脚本版本

Ver: 2.0.3

2017/03/17,脚本重做了,功能相差不大,但是结构清晰多了,并且 新版本的脚本 相比旧版本少了 44%的代码量,精简后的脚本问题更少,效率更高,结构更清晰,细节处理更好,建议升级(注意:升级前请先卸载旧脚本的ShadowsocksR服务端)。

当然每一个新脚本 都会伴随着一些BUG出生,所以估计一开始这几天会根据网友的测试和反馈 来修复一些小BUG,毕竟没有BUG的脚本是不存在的(除非穿女装 误

脚本特点:

目前网上的各个ShadowsocksR脚本基本都是只有 安装/启动/重启 等基础功能,对于小白来说还是不够简单方便。既然是一键脚本,那么就要尽可能地简单,小白更容易接受使用!

  1. 支持 限制 端口限速
  2. 支持 限制 端口设备数
  3. 支持 显示 当前连接IP
  4. 支持 显示 SS/SSR连接+二维码
  5. 支持 切换管理 单/多端口
  6. 支持 一键安装 锐速
  7. 支持 一键安装 BBR
  8. 支持 一键封禁 垃圾邮件(SMAP)/BT/PT

安装步骤

简单的来说,如果你什么都不懂,那么你直接一路回车就可以了!

本脚本需要Linux root账户权限才能正常安装运行,所以如果不是 root账号,请先切换为root,如果是 root账号,那么请跳过!

  1. su

输入上面代码回车后会提示你输入 root账号的密码,输入并回车后,没有报错就继续下面的步骤安装ShadowsocksR。


v2.0.0 版本以后的脚本,请先卸载旧脚本ShadowsocksR服务端,再重新安装!

  1. wget -N --no-check-certificate https://softs.pw/Bash/ssr.sh && chmod +x ssr.sh && bash ssr.sh

备用下载地址(上面的链接无法下载,就用这个):

  1. wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/ssr.sh && chmod +x ssr.sh && bash ssr.sh

下载运行后会提示你输入数字来选择要做什么。

输入 1 ,就会开始安装ShadowsocksR服务端,并且会提示你输入Shadowsocks的 端口/密码/加密方式/ 协议/混淆(混淆和协议是通过输入数字选择的) 等参数。

如果协议是origin,那么混淆也必须是plain !

使用说明

运行脚本,

  1. bash ssr.sh

输入对应的数字来执行相应的命令。

  1.   请输入一个数字来选择菜单选项
  2.  
  3. 1. 安装 ShadowsocksR
  4. 2. 更新 ShadowsocksR
  5. 3. 卸载 ShadowsocksR
  6. 4. 安装 libsodium(chacha20)
  7. ————————————
  8. 5. 查看 账号信息
  9. 6. 显示 连接信息
  10. 7. 修改 用户配置
  11. 8. 手动 修改配置
  12. 9. 切换 端口模式
  13. ————————————
  14. 10. 启动 ShadowsocksR
  15. 11. 停止 ShadowsocksR
  16. 12. 重启 ShadowsocksR
  17. 13. 查看 ShadowsocksR 日志
  18. ————————————
  19. 14. 配置 锐速
  20. 15. 配置 BBR
  21. ————————————
  22. 16. 其他功能
  23. 注意事项: 锐速/BBR 不支持 OpenVZ
  24. 当前状态: 已安装 已启动
  25. 当前模式: 单端口
  26.  
  27. 请输入数字(1-16):

当你为 单端口模式时,使用 7. 修改 用户配置 是 修改 单端口账号配置。

当你为 多端口模式时,使用 7. 修改 用户配置 是 添加/删除/修改 多端口账号配置。

文件位置

安装目录:/usr/local/shadowsocksr

配置文件:/etc/shadowsocksr/user-config.json

其他说明

ShadowsocksR 安装后,自动设置为 系统服务,所以支持使用服务来启动/停止等操作,同时支持开机启动。

  1. 启动 ShadowsocksR:service ssr start
  2. 停止 ShadowsocksR:service ssr stop
  3. 重启 ShadowsocksR:service ssr restart
  4. 查看 ShadowsocksR状态:service ssr status

ShadowsocksR 默认支持UDP转发,服务端无需任何设置。

本脚本已经集成了 安装/卸载 锐速(ServerSpeeder)开心版,但是是否支持请查看 Linux支持内核列表 。(锐速不支持OpenVZ)

v2.0.0 以前的旧版本下载地址:

  1. wget -N --no-check-certificate https://softs.pw/Bash/ssr_old.sh && chmod +x ssr_old.sh && bash ssr_old.sh

备用下载地址(上面的链接无法下载,就用这个):

  1. wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/ssr_old.sh && chmod +x ssr_old.sh && bash ssr_old.sh

ShadowsocksR目前支持的协议和混淆:

协议(Protocol):origin,auth_sha1_v4,auth_aes128_md5,auth_aes128_sha1

混淆(Obfs):plain,http_simple,http_post,random_head,tls1.2_ticket_auth

origin 和 plain 是原版,加粗的是推荐使用的。

ShadowsocksR 端口限速中 单线程限速 和 端口总限速 的区别

注意:如果要使用脚本中的这个功能,需要重新下载脚本,并重装安装 2月15日 以后的ShadowsocksR服务端才行。

请查看这个文章:ShadowsocksR服务端 限制设备连接数 和 限制端口速度 的方法

解决 可使用原版协议,但无法使用ShadowsocksR协议 的问题

点击展开 查看更多

 

如果发现Shadowsocks原版协议/混淆可以使用,而ShadowsocksR的协议/混淆无法使用,那么多半是 VPS时区问题

这个命令,我的ShadowsocksR脚本在安装的时候已经执行了,如果你发现没有执行,那你可以手动执行。

我们可以通过下面这个命令,把VPS的时区调整为北京时区,这样就避免了ShadowsocksR 协议/混淆 因为时差太大造成的无法验证。

  1. cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

注意,部分VPS会提示你是否覆盖文件,输入 y 然后回车。

如果你遇到,crontab设定的定时任务不按更换时区后的VPS时间执行,那么请看下面:

crontab设定的定时任务不按VPS的时间执行,那是因为你更换VPS时区后还需要重启crontab。

CentOS 系统:

  1. service crond restart

Debian/Ubuntu 系统:

  1. service cron restart

提示 Media change: please insert the disc labeled‘Debian GNU/Linux 7.0.0 Wheezy — Official amd64 CD 等信息是 apt源 的问题,更换 apt源

我发现有一些人的VPS的 apt源有问题,导致安装失败,所以我这里写上如何更换 apt源。

本步骤仅适合 Debian 系统,Ubuntu系统自行搜索 apt源。

下面的手动改的方法一些人可能嫌麻烦,所以你们可以这样字更换apt源。

依次输入就可以更换apt源了,下面的代码是以 us美国 为例,你可以自己去这里选一个近一些合适的,然后替换下面代码中 us.sources.list 的 us 

  1. wget -N --no-check-certificate -P /etc/apt https://softs.pw/Bash/sources/us.sources.list
  2. rm -rf /etc/apt/sources.list
  3. cp /etc/apt/us.sources.list /etc/apt/sources.list

手动更换(上面的命令执行完毕就不要重复执行这个了)

打开你的apt源文件,

  1. vi /etc/apt/sources.list

然后按 I 键 进入编辑模式,如果你没有安装vim,也无法通过 apt-get install vim -y 安装,那么你就只能通过SFTP下载这个文件本地编辑了。

把下面的内容复制过去,注意下面示例是美国的apt源,想要其他地区的apt源,请看:Debian全球镜像站(替换下面的 ftp.us.debian.org 中的 us 

  1. deb http://ftp.us.debian.org/debian/ jessie main
  2. deb-src http://ftp.us.debian.org/debian/ jessie main
  3.  
  4. deb http://security.debian.org/ jessie/updates main contrib
  5. deb-src http://security.debian.org/ jessie/updates main contrib
  6.  
  7. # jessie-updates, previously known as 'volatile'
  8. deb http://ftp.us.debian.org/debian/ jessie-updates main contrib
  9. deb-src http://ftp.us.debian.org/debian/ jessie-updates main contrib

修改完毕之后,按 ESC 键 退出编辑模式,然后输入 :wq 保存并退出,然后再试一试 apt-get update 是否正常。

提示wget: unknown host “softs.pw” 之类的错误

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

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

 提示 wget: command not found 的错误

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

CentOS系统:

  1. yum install -y wget

Debian/Ubuntu系统:

  1. apt-get install -y wget

限制设备连接数

限制设备连接数的这个功能,很早就有了,就是修改协议参数:protocol_param 

打开你的配置文件,假设你在 /root 文件夹中安装的ShadowsocksR服务端,那么就是:

  1. vi /root/shadowsocksr/user-config.json

找到协议参数(参数为空 "" 时,默认限制 64个设备数)

  1. "protocol_param": "",

在协议参数中设置你要限制 每个端口最大设备连接数(建议最少2个),比如 限制最大 5个设备同时链接,那么改为:

  1. "protocol_param": "5",
注意:协议参数仅在服务端 协议设置(protocol)为 非原版(origin)协议并不兼容原版(_compatible) 时才有效!

如果你服务端 协议设置(protocol)的是 原版(origin) 时,设备数限制无效。

如果你服务端 协议设置(protocol)的是 协议兼容原版 ,那么当用户使用原版协议(origin)连接Shadowsocks账号时,设备数限制无效。

限制端口速度

限制端口速度这个功能,是 2017年2月15日凌晨 才更新新添加的功能,我的一键ShadowsocksR管理脚本已经支持了这个设置。

打开你的配置文件,假设你在 /root 文件夹中安装的ShadowsocksR服务端,那么就是:

  1. vi /root/shadowsocksr/user-config.json

新增的两个参数分别是(参数为 0 时,默认代表不限速):

  1. "speed_limit_per_con": 0,
  2. "speed_limit_per_user": 0,

单位是 KB/S ,也就是我们平时下载文件的速度单位,我们家庭宽带100兆就是:100Mbps / 8 = 12.5MB/S * 1024 =12800KB/S

比如我们要设置 单线程限速 1MB/S ,端口总限速 3MB/S ,那么就这样写:

  1. "speed_limit_per_con": 1024,
  2. "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% 左右。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):