暂无说说

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

其实这个脚本在当初 ShadowsocksR 单服务器多用户 mudbjson 模式使用教程 支持流量限制 文章发布后,我就打算出的,然后因为各种原因拖到现在,然后在上个月底本来因为暂停更新文章一个多月打算写这个来个大的,结果破娃突然不维护 ShadowsocksR 项目了,我就不知道还要不要写了,于是又搁置了。

直到这段时间内各种人同 IP 多个马甲在我网站内评论各种说 SSR 药丸、SSR 辣鸡、大家都去用 XX 吧等言论,搞得我很烦,这是不是太明显了点?所以我用行动证明,我依然使用并支持 ShadowsocksR!


更多的 Shadowsocks 安装教程/一键脚本请看这里:Shadowsocks 指导篇

ShadowsocksR MudbJSON 模式 手动安装教程:ShadowsocksR 单服务器多用户 mudbjson 模式使用教程 支持流量限制

本脚本的 二维码图片链接,是调用我自建的 二维码 API 来生成二维码图片( http://doub.pw/qr/qr.php?text=xxx )。

当访问 API 页面后,PHP 网页文件会把 GET 参数( ?text=xxx ) 传递给 JS 脚本,浏览器会加载 JS 脚本,然后由 JS 脚本根据 GET 参数的文本 生成二维码图片!图片是在你本地浏览器中生成,服务器中不存在图片!

请确定你信任我和我的脚本,否则请不要用我的脚本,少 BB!

该一键脚本的视频教程:『视频』ShadowsocksR 服务端一键脚本安装 新手小白视频教程

系统要求

CentOS 6+ / Debian 6+ / Ubuntu 14.04 +

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

CentOS 7 自带防火墙问题(firewalld)自行解决,其他版本没有做测试。

脚本版本

Ver: 1.0.26

本脚本与另一个 SSR 脚本 『原创』CentOS/Debian/Ubuntu ShadowsocksR 单/多端口 一键管理脚本 的区别是什么?

ssrmu.sh 脚本是单服务器多用户脚本,使用的是 SSR 服务端的MudbJSON 模式,可以给每个用户(端口)设置不同的加密方式/协议/混淆/限制速度/设备数限制/可用总流量等功能。即实现单服务器多用户流量管理等功能。

ssr.sh 则是单服务器单用户脚本,使用的是 SSR 服务端的单用户配置方式,即使实现了多端口,但是还算不算多用户,不支持每个用户(端口)不同的加密方式/协议/混淆等,并且无法管理流量使用。

如何选择这两个脚本?

根据你的需求选择,比如你仅仅是 一个或两个人使用,并且不需要流量管理功能,那么选择 ssr.sh 好了。而如果很多人使用,并且都需要限制流量来管理,那你适合使用 ssrmu.sh ,所以自己看着选,多试试(两个脚本不能共存)

脚本特点:

所有步骤都可以通过 Shell 脚本中文交互 操作。

  1. 支持 限制 用户速度
  2. 支持 限制 用户设备数
  3. 支持 限制 用户总流量
  4. 支持 定时 流量清零
  5. 支持 显示 当前连接 IP
  6. 支持 显示 SS/SSR 连接+二维码
  7. 支持 自定义账号 IP 或域名
  8. 支持 监控 SSR 服务端运行状态
  9. 支持 一键安装 BBR
  10. 支持 一键安装 锐速
  11. 支持 一键安装 LotServer
  12. 支持 一键封禁 垃圾邮件(SMAP)/BT/PT

安装步骤

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

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

sudo su

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


注意:如果你安装的有我的另一个 ssr.sh 脚本,请先卸载 ShadowsocksR 服务端,再安装这个脚本(不能共存)!

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

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

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

注意:用户名不支持中文,如果输入中文会一直保存下去!

如果安装过程中报错,请看 常见问题解决方法

使用说明

运行脚本,

  1. bash ssrmu.sh
  2.  
  3. # 还有一个 运行参数,是用于所有用户流量清零的
  4. bash ssrmu.sh clearall
  5. # 不过不需要管这个,可以通过脚本自动化的设置 crontab 定时运行脚本

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

  1. ShadowsocksR MuJSON一键管理脚本 [vX.X.X]
  2. —- Toyo | doub.io/ssjc60 —-
  3.  
  4. 1. 安装 ShadowsocksR
  5. 2. 更新 ShadowsocksR
  6. 3. 卸载 ShadowsocksR
  7. 4. 安装 libsodium(chacha20)
  8. ————————————
  9. 5. 查看 账号信息
  10. 6. 显示 连接信息
  11. 7. 设置 用户配置
  12. 8. 手动 修改配置
  13. 9. 配置 流量清零
  14. ————————————
  15. 10. 启动 ShadowsocksR
  16. 11. 停止 ShadowsocksR
  17. 12. 重启 ShadowsocksR
  18. 13. 查看 ShadowsocksR 日志
  19. ————————————
  20. 14. 其他功能
  21. 15. 升级脚本
  22. 当前状态: 已安装 已启动
  23.  
  24. 请输入数字 [115]:

注意:添加/删除/修改 用户配置后,无需重启 ShadowsocksR 服务端,ShadowsocksR 服务端会定时读取数据库文件内的信息,不过修改 用户配置后,可能要等个十几秒才能应用最新的配置(因为 ShadowsocksR 不是实时读取数据库的,所以有间隔时间)。

文件位置

安装目录:/usr/local/shadowsocksr

日志位置:/usr/local/shadowsocksr/ssserver.log

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

数据文件:/usr/local/shadowsocksr/mudb.json

注意:如果要转移用户数据,只需要转移 mudb.json 文件或其内容即可。

注意:ShadowsocksR 服务端不会实时的把流量数据写入 数据库文件,所以脚本读取流量信息也不是实时的!

其他说明

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

  1. 启动 ShadowsocksR:/etc/init.d/ssrmu start
  2. 停止 ShadowsocksR:/etc/init.d/ssrmu stop
  3. 重启 ShadowsocksR:/etc/init.d/ssrmu restart
  4. 查看 ShadowsocksR 状态:/etc/init.d/ssrmu status

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

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


注意:本脚本中的 显示链接信息中的 获取 IP 归属地功能使用的是 IPIP.NET 的免费 API 接口,因为限速所以每秒只能检测一次,同时 IPIP.NET 的免费 API 接口并不会保证稳定性,可能什么时候就突然暂时失效了,这是本人不可控的,有条件可以自建 API 接口。

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

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

混淆(Obfs):plain,http_simple,http_post,random_head,tls1.2_ticket_auth,tls1.2_ticket_fastauth(这个是客户端用的,而服务端需要选择 tls1.2_ticket_auth)

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

如果你想要使用 tls1.2_ticket_fastauth 混淆插件,那么服务端选择 tls1.2_ticket_auth,客户端选择 tls1.2_ticket_fastauth 即可。

如果服务端 设置混淆参数为:tls1.2_ticket_auth_compatible (兼容原版)

那么客户端 可使用的混淆为:plain / tls1.2_ticket_auth / tls1.2_ticket_fastauth

tls1.2_ticket_authtls1.2_ticket_fastauth 的区别为,后者不会等待服务器回应,所以不会增加延迟。适合于,因为混淆插件增加延迟的原因不得不选择原版混淆 plain,但是又因为 QOS 等因素而处于延迟与干扰/限速等之间抉择的时候,可以选择 tls1.2_ticket_fastauth 客户端混淆插件!

如何转移用户数据信息?

SSR 服务端的所有用户数据都存在 /usr/local/shadowsocksr/mudb.json 文件中。

所以只需要转移该文件或者或者复制内容粘贴到另一个服务器上即可(先安装 SSR 服务端后再覆盖 mudb.json,然后重启 SSR 服务端)。

使用阿里云/腾讯云等存着安全组或规则组一类外部防火墙的请注意

因为阿里云/腾讯云的服务器还有一个外部的防火墙也就是叫 安全组或规则组。

一般来说默认是只开放 22(SSH)端口,所以一些人在搭建 ShadowsocksR 服务端后,会出现无法访问的情况,ShadowsocksR 客户端的统计窗口显示超时。

同时 ShadowsocksR 服务端开启详细日志模式(其他功能中)后,ShadowsocksR 客户端访问 ShadowsocksR 账号无日志输出

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. /etc/init.d/crond restart

Debian/Ubuntu 系统:

  1. /etc/init.d/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 nocheckcertificate P /etc/apt https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/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 全球镜像站(替换下面的 http://ftp.us.debian.org 中的 us

  1. deb http://ftp.us.debian.org/debian/ jessie main
  2. debsrc http://ftp.us.debian.org/debian/ jessie main
  3.  
  4. deb http://security.debian.org/ jessie/updates main contrib
  5. debsrc 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. debsrc http://ftp.us.debian.org/debian/ jessie-updates main contrib

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

ShadowsocksR 启动失败,日志提示:Exception: libsodium not found 的错误

这是你使用了 chacha20 系列加密方式,但是却没有安装 libsodium 支持库,导致 ShadowsocksR 无法启动,运行脚本选择选项 4 安装 libsodium 支持库即可,如果安装失败,请选择其他的加密方式,对速度影响不大。

提示 wget: unknown host “softsmirror.cf” 之类的错误

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

  1. echo “nameserver 8.8.8.8
  2. nameserver 8.8.4.4″ > /etc/resolv.conf
  3. # 两行一起复制一直执行

提示 wget: command not found 的错误

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

CentOS 系统:

  1. yum install y wget

Debian/Ubuntu 系统:

  1. aptget install y wget

升级脚本

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

定时重启

一些人可能需要定时重启 ShadowsocksR 服务端来保证稳定性等,所以这里用 crontab 定时。

  1. crontab l > “crontab.bak”
  2. sed i “/ssrmu restart/d” “crontab.bak”
  3. echo e “\n10 3 * * * /etc/init.d/ssrmu restart” >> “crontab.bak”
  4. crontab “crontab.bak”
  5. rm r “crontab.bak”
  6.  
  7. # 下面的只是让你对照理解用于修改上面第三行的定时间隔,只需要执行上面的代码即可。
  8. # 如果你需要修改定时时间,那么重复执行上面代码就行了(记得修改第三行的定时间隔)。
  9. # 如果你要删除定时重启任务,那么还是重复上面的代码,但是要跳过第三行代码。
  10. # 下面代码前面的 * * * * * 分别对应:分钟 小时 日 月 星期
  11.  
  12. 10 3 * * * /etc/init.d/ssrmu restart
  13. # 这个代表 每天 3 点 10 分重启一次 ShadowsocksR
  14.  
  15. 10 2 */2 * * /etc/init.d/ssrmu restart
  16. # 这个代表 每隔 2 天的 2 点 10 分重启一次 ShadowsocksR
  17.  
  18. 10 */4 * * * /etc/init.d/ssrmu restart
  19. # 这个代表 每隔 4 小时的第 10 分重启一次 ShadowsocksR

更新日志

2018 年 07 月 10 日,版本 v1.0.26

1. 新增 升级脚本时,将一起升级服务脚本(Service)。

2018 年 01 月 02 日,版本 v1.0.25

1. 修复 Debian9 系统下,无法使用 显示连接信息 功能的问题。

2017 年 12 月 14 日,版本 v1.0.24

1. 修复 密码中包含 冒号: 时,查看账号信息显示错误的问题。

2. 优化 设置账号禁止访问端口的时候,加入了端口输入格式说明。

3. 修改 默认协议为 auth_aes128_md5 ,已不再建议使用 auth_sha1_v4 协议。

2017 年 12 月 12 日,版本 v1.0.23

1. 优化 显示链接信息功能的 显示内容排版(对齐了一下)。

2017 年 12 月 11 日,版本 v1.0.22

1. 新增 显示连接信息功能的 端口 前面也会显示该端口的 用户名。

2017 年 12 月 06 日,版本 v1.0.21

1. 新增 查看当前所有用户已使用流量功能(位于 5. 查看 用户配置 选项中)。

2017 年 11 月 17 日,版本 v1.0.20

1. 修复 部分 CentOS 系统出现无法获取配置文件中设定的 IP/域名信息的问题。

2017 年 11 月 16 日,版本 v1.0.19

1. 新增 监控 ShadowsocksR 服务端运行状态功能。

—— 该功能每分钟自动检查 ShadowsocksR 服务端运行状态,如果服务端未运行则自动启动 SSR 服务端,适用于 SSR 服务端经常关闭的情况,该选项位于 14. 其他功能 – 7. 监控 ShadowsocksR 服务端运行状态

2017 年 11 月 16 日,版本 v1.0.18

1. 新增 添加用户配置结束后,会询问是否继续添加,可以选择 Y 或者 N,方便多次添加账号。

2017 年 11 月 03 日,版本 v1.0.17

1. 修改 SSR 服务端安装方式为:ZIP 压缩包安装(考虑到 SSR 服务端不更新了,所以为了降低 git 依赖安装出错率,就改成 zip 压缩包了)。

2. 修改 JQ 安装方式为:集成与 SSR 服务端文件夹内(减少了一个安装 JQ 的下载步骤,节省时间)。

2017 年 10 月 23 日,版本 v1.0.16

1.新增 支持自定义用户配置中显示的 IP 或域名(包括 SS/SSR 链接)。

—— 考虑到一些人的服务器有多个外网 IP,而服务端搭建者只希望用户使用某个 IP,那么可以用这个功能指定 IP。同样也可以指定为域名(当然你需要有个域名解析为你这个服务器的 IP),修改选项为:7. 设置 用户配置 -> 13. 修改 用户配置中显示的 IP 或域名

2017 年 10 月 06 日,版本 v1.0.15

1.恢复 libsodium 以前安装方式。

2017 年 10 月 04 日,版本 v1.0.14

1. 修复 当用户名最后一个符号是 “]” 时,添加用户账号配置 提示用户名已存在的问题(前提是添加了一个同名用户名,例如 doubi 然后再去添加 doubi] 就会触发 BUG)。

2017 年 09 月 22 日,版本 v1.0.13

1.修复 因为系统缺少 automake,而 libsodium 安装失败的问题。

2017 年 09 月 22 日,版本 v1.0.12

1.更新 libsodium 最新版本安装方式。

2017 年 09 月 18 日,版本 v1.0.11

1. 新增 IPv6 防火墙开放端口规则功能(原先只开放 IPv4 防火墙)。

2017 年 09 月 03 日,版本 v1.0.10

1. 新增 查看 账号信息 时显示 已使用流量。

2. 优化 查看 账号信息 显示格式。

2017 年 08 月 31 日,版本 v1.0.9

1.修复 显示链接信息 功能,不同端口 链接 IP 显示重复的问题(例如链接 8080 端口的 IP 同样显示在 80 端口下)

2017 年 08 月 24 日,版本 v1.0.8

1.新增 几个外网 IP 获取源,避免一些服务器获取外网 IP 失败。

2017 年 08 月 13 日,版本 v1.0.7

1.修复 切换日志模式后,ShadowsocksR 启动失败的问题。

2017 年 08 月 12 日,版本 v1.0.6

1.修复 封禁/解封 BT/PT/SPAM 功能运行后没有正常删除脚本的问题。

2017 年 08 月 12 日,版本 v1.0.5

1.取消 添加/删除/修改 用户配置后,会重启 ShadowsocksR 服务端的代码。

—— 我也是一直不知道可以动态读取数据文件内的配置,不过我测试发现可能修改后需要等个十几秒才能应用最新配置!

2017 年 08 月 11 日,版本 v1.0.4

1.取消 安装 ShadowsocksR 过程中修改 DNS 为谷歌 DNS 的步骤(个别服务器会导致未知问题)。

2017 年 08 月 10 日,版本 v1.0.3

1.修改 设置用户禁止访问的端口默认值为空。

2017 年 08 月 10 日,版本 v1.0.2

1.修复 BBR 文件下载的位置问题。

2.修复 升级脚本功能中,下载 ssrmu.sh 位置错误问题。

2017 年 08 月 10 日,版本 v1.0.1

1.修复 BBR 文件位置问题。

2017 年 08 月 09 日,版本 v1.0.0

1.推出 正式版本。


逗子的小空间 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:CentOS/Debian/Ubuntu ShadowsocksR 单/多端口 一键管理脚本
喜欢 (0)
[1037738146@qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址