逗比根据地 更换域名为 doub.io,并且以后不在更换域名 ,请逗比们互相转告~
逗比交流群: 271866172 / 531201358

『原创』CentOS/Debian/Ubuntu ShadowsocksR 单/多端口 一键管理脚本

Shadowsocks Toyo 134评论
文章目录
[显示]
本文最后更新于 2017年1月19日 00:20 可能会因为没有更新而失效。如已失效或需要修正,请留言!

最近经常有小白找我让我把他们安装ShadowsocksR服务端,一开始都是手动安装的,后来嫌麻烦,就打算用脚本,但是不想用别人写的,于是自己写了一个一键安装脚本,正好拿来练手学习一下Shell脚本。


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

系统要求

CentOS 6 / Debian / Ubuntu 14.04 +

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

CentOS根据大家的要求,加入了CentOS 6的支持,其他版本没有做测试。

脚本版本

Ver: 1.1.6

脚本特点:

  1. 中文提示,适合新手
  2. 一键安装,告别繁琐
  3. 可以方便的修改账号配置
  4. 支持限制 单/端端口 IP连接数
  5. 支持显示SS/SSR连接+二维码
  6. 支持显示 当前连接SS的用户IP
  7. 支持单端口/多端口 切换和管理
  8. 支持一键安装锐速(ServerSpeed)
  9. 支持一键封禁 垃圾邮件(SMAP)/BT/PT

安装步骤

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

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

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

如果你的安装过程中出现了什么特别的提示看不懂,那就一路回车。

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

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

请输入ShadowsocksR账号的 端口:
(默认端口: 2333):
——————————————————————————————
 端口 : 2333 
——————————————————————————————

请输入ShadowsocksR账号的 密码:
(默认密码: doub.io):
——————————————————————————————
 密码 : doub.io
——————————————————————————————

请输入数字 来选择ShadowsocksR账号的 加密方式:
1. rc4-md5
2. aes-256-ctr
3. aes-256-cfb
4. aes-256-cfb8
5. camellia-256-cfb
6. chacha20 (需要安装libsodium)
7. chacha20-ietf (需要安装libsodium)
(默认加密方式: 3. aes-256-cfb):
——————————————————————————————
 加密方式 : aes-256-cfb 
——————————————————————————————

请输入数字 来选择ShadowsocksR账号的 协议( auth_aes128_* 以后的协议不再支持 兼容原版 ):
1. origin
2. verify_sha1
3. auth_sha1_v2
4. auth_sha1_v4
5. auth_aes128_md5
6. auth_aes128_sha1
(默认协议: 4. auth_sha1_v4):
——————————————————————————————
 协议 : auth_sha1_v4
——————————————————————————————

请输入数字 来选择ShadowsocksR账号的 混淆:
1. plain
2. http_simple
3. http_post
4. random_head
5. tls1.2_ticket_auth

(默认混淆: 5. tls1.2_ticket_auth):
——————————————————————————————
 混淆 : tls1.2_ticket_auth 
——————————————————————————————

是否设置 混淆 兼容原版 ( _compatible )? [Y/n] :

请输入 ShadowsocksR账号欲限制的链接IP数(协议兼容原版 则无效):
(默认无限):5
——————————————————————————————
 链接设备数 : 5 
——————————————————————————————
Tip:12月30日以后的SSR服务端只有 混淆 支持兼容原版,auth_aes128_* 及以后的协议不再支持(也就是加后缀 _compatible)。

同时最后也会提示是否设置 混淆 兼容原版(也就是使用原版SS也能链接),不懂 直接回车输入 y 。(协议不在兼容原版)

注意:关于限制IP数,这个协议必须是非原版并且不兼容原版才有效,也就是必须SSR客户端使用协议的情况下,才有效!

不输入一路回车就是 默认参数:

端口:2333
密码:doub.io
加密方式:aes-256-cfb
协议:auth_sha1_v4_compatible
混淆:tls1.2_ticket_auth_compatible
设备数限制:0(无限)

最后会提示让你确认是否输入正确,如果没问题那就按任意键继续安装,如果输入错误,那么就使用 Ctrl + C 退出脚本。

——————————————————————————————
 请检查Shadowsocks账号配置是否有误 !

 端口 : 2333
 密码 : doub.io
 加密方式 : aes-256-cfb
 协议 : auth_sha1_v4_compatible
 混淆 : tls1.2_ticket_auth_compatible
 设备数限制: 5
——————————————————————————————

请按任意键继续,如有配置错误请使用 Ctrl+C 退出。

如果安装过程没有出错,那么最后就会提示:

############################################################

 你的ShadowsocksR 账号配置 : 

 I P: xxx.xxx.xxx.xxx
 端口: 2333 
 密码: doub.io
 加密方式: aes-256-cfb 
 协议: auth_aes128_md5
 混淆: tls1.2_ticket_auth_compatible 
 设备数限制: 5

 SS链接: ss://xxxxxxxxxxxxx
 SS二维码: http://pan.baidu.com/share/qrcode?w=300&h=300&url=ss://xxxxxxxxxxxxx
 SSR链接: ssr://xxxxxxxxxxxxx
 SSR二维码: http://pan.baidu.com/share/qrcode?w=300&h=300&url=ssr://xxxxxxxxxxxxx

提示:
浏览器中,打开二维码链接,就可以看到二维码图片。
协议和混淆后面的[ _compatible ],指的是兼容原版Shadowsocks协议/混淆。

############################################################

SS/SSR链接(格式: ss://XXXXXXX ,很长),可以从剪辑版导入Shadowsocks客户端,不懂的话看下面二维码。

SS/SSR二维码,复制后面的链接在浏览器打开,就会显示一个二维码的图片,可以用Shadowsocks客户端扫描二维码来添加。

注意:SS/SSR链接 和 SS/SSR二维码链接 换行问题已经修复了。

使用说明

运行脚本,

bash ssr.sh

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

 1. 安装 ShadowsocksR
 2. 安装 libsodium(chacha20)
 3. 显示 单/多端口 账号信息
 4. 显示 单/多端口 链接信息
 5. 修改 单端口用户配置
 6. 手动 修改   用户配置
 7. 卸载 ShadowsocksR
 8. 更新 ShadowsocksR
————————————————
 9. 切换 单/多端口 模式
10. 添加 多端口用户配置
11. 修改 多端口用户配置
12. 删除 多端口用户配置
————————————————
13. 启动 ShadowsocksR
14. 停止 ShadowsocksR
15. 重启 ShadowsocksR
16. 查看 ShadowsocksR 状态
————————————————
17. 安装 锐速(ServerSpeeder)
18. 停止 锐速(ServerSpeeder)
19. 重启 锐速(ServerSpeeder)
20. 查看 锐速(ServerSpeeder) 状态
21. 卸载 锐速(ServerSpeeder)
————————————————
22. 封禁 BT/PT/垃圾邮件(SPAM)
————————————————
 当前状态: 
 ShadowsocksR服务端 已安装 
 ShadowsocksR服务端 已启动 

(请输入数字):

文件位置

安装目录:/etc/shadowsocksr/shadowsocks

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

其他说明

默认 ShadowsocksR 和 锐速(ServerSpeeder) 已经添加开机启动。

ShadowsocksR 默认支持UDP转发。

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

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

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

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

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

Tip:12月30日以后的SSR服务端只有 混淆 支持兼容原版,auth_aes128_* 及以后的协议不再支持(也就是加后缀  _compatible)。

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

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

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

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

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


对了,再提一下,如果你遇到 crontab 设定的定时任务和VPS的时间不一样,那是因为你更换时区后还需要重启crontab。

CentOS 系统:

service crond restart

Debian/Ubuntu 系统:

service cron restart

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

更换 apt源,解决安装错误:[错误] ShadowsocksR下载失败 等等

我发现有一些人的VPS的 apt源有问题,导致安装失败,所以我这里写上如何更换 apt源。本步骤仅适合 Debian 系统,Ubuntu系统自行搜索 apt源。

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

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

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

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

打开你的apt源文件,

vi /etc/apt/sources.list

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

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

deb http://ftp.us.debian.org/debian/ jessie main
deb-src http://ftp.us.debian.org/debian/ jessie main

deb http://security.debian.org/ jessie/updates main contrib
deb-src http://security.debian.org/ jessie/updates main contrib

# jessie-updates, previously known as 'volatile'
deb http://ftp.us.debian.org/debian/ jessie-updates main contrib
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。

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

提示 wget: command not found 的错误

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

Debian/Ubuntu系统:

apt-get install -y wget

升级脚本

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

wget -N --no-check-certificate https://softs.pw/Bash/ssr.sh

本脚本和其他人的ShadowsocksR一键安装脚本差别并不是很大,这只是我的练手之作,可能会有一些BUG,如发现请联系我或者在下面评论留言!

有什么想要我添加的功能,都可以联系我或者在下面留言!

更新日志

2017年01月17日,版本 v1.1.6

1.新增 菜单中显示当前状态

—— 直接在菜单中显示当前是否安装ShadowsocksR服务端,是否在运行信息

2.优化 脚本依赖 jq JSON解析器全部改为编译安装。

—— 这样可以保持 jq的版本一致,避免一些apt源比较老,安装的版本不一致导致BUG。

3.修复 CentOS 6 系统中删除多端口用户配置相反的BUG。

—— 我脚本的重要依赖 jq JSON解析器在Debian/Ubuntu和CentOS系统中解析结果竟然是相反的,一直没注意到,修复了这个问题。

注意:如果后面没有BUG,那么这个更新就是这个脚本的最后一次更新了,我能想到的简单的功能都已经加上去了,基本上不会再添加新功能了。

2017年01月14日,版本 v1.1.5

1.新增 显示 单/多端口 链接信息 功能。

—— 可以显示出 当前正在连接某端口的 用户IP各端口总IP数 等信息。

2.新增 显示 单/多端口 账号信息 时,显示出当前ShadowsocksR的运行状态。

—— 免得有的人没有意识到ShadowsocksR根本没在运行,然后死活连不上。

3.优化 显示SS/SSR连接和二维码 判断逻辑。

—— 比如协议和混淆都不是原版也不兼容原版,那么就不再显示 SS链接和二维码,智能判断当前协议和混淆的设置来确定显示SS连接/二维码还是显示SSR连接/二维码,还是都显示。

注意:如果后面没有BUG,那么这个更新就是这个脚本的最后一次更新了,我能想到的简单的功能都已经加上去了,基本上不会再添加新功能了。

2017年01月12日,版本 v1.1.4

1.新增 协议 verify_sha1、auth_sha1_v2、auth_sha1_v4 兼容原版设置。

—— 目前ShadowsocksR的协议中,只有 verify_sha1、auth_sha1_v2、auth_sha1_v4 依然可以兼容原版,以后的协议都不在兼容。

2.取消 安装ShadowsocksR时安装 Libsodium(chacha20加密方式依赖) ,需要的用户可以随后在菜单里选择 2 安装。

3.修复 SS/SSR链接 和 SS/SSR 二维码链接 换行问题,现在复制出来就是一行了(Xshell 测试通过)。

4.修复 漏掉 混淆原版参数”plain” 的逗比问题。

2017年01月10日,版本 v1.1.3

1.新增 加密方式从手动输入改成了选择数字

2.新增 设置连接数限制功能,当然这个需要设置协议才行,并且协议不能兼容原版,虽然现在协议已经不可以兼容原版了。

—— 连接数针对的是 IP,比如设置 1,有一个客户端IP在连接这个端口,那么其他的客户端IP都无法链接。

3.修复 iptables防火墙规则BUG。

2017年01月10日,版本 v1.1.2

1.新增 多端口管理功能。

—— 可以 添加/修改/删除 多端口用户。

2.新增 单端口/多端口切换功能。

2017年01月08日,版本 v1.1.1

1.新增 CentOS 6 系统支持,只在这个系统做了测试,CentOS 7请自行解决自带的firewalld防火墙问题。

2.新增 封禁 BT/PT/垃圾邮件(SPAM) 功能,其实就把这个文章里的脚本加进去了。

3.修复 修改配置信息 但是显示错误的BUG。

2016年12月30日,版本 v1.1.0

1.修改 取消ShadowsocksR 协议兼容原版设置(混淆依然支持)

—— 因为ShadowsocksR最新版本取消了ShadowsocksR协议兼容原版设置,所以我的也取消了。具体影响看着个

2.修复 各种BUG。

2016年12月28日,版本 v1.0.9

1.新增 修改VPS时区为北京时区,避免 协议/混淆 因为时差而无法使用。

2.修复 安装失败等问题。

3.修改 ShadowsocksR安装目录。

—— ShadowsocksR的Github位置和目录文件名改变了,所以脚本里面很多东西都改了,并且借着这次机会,更改了ShadowsocksR的安装位置为: /etc/shadowsocksr 。同时以前安装的ShadowsocksR全部失效。

建议:先用旧脚本卸载ShadowsocksR,然后再用新脚本安装ShadowsocksR!

2016年12月10日,版本 v1.0.8

1.修复 git克隆Shadowsocks文件夹后卡住的BUG。

2.修复 git克隆Shadowsocks文件夹提示SSL证书无法验证的BUG。

2016年12月10日,版本 v1.0.7

1.修复 检测系统的BUG。

2016年12月03日,版本 v1.0.6

1.修复 选择 6. auth_aes128_sha1 但是 显示的是 auth_sha1_v4 的BUG。

2.修复 检测 外网IP错误 的BUG。

3.新增 查看ShadowsocksR运行状态 功能。

2016年12月01日,版本 v1.0.5

1.修复 一个 成功下载但是提示ShadowsocksR下载失败 的BUG。你们重新下载新的脚本覆盖旧的脚本执行就行了。记得卸载旧的安装文件。

2016年11月30日,版本 v1.0.5

1.新增 修改用户配置时,设置混淆和协议 可以通过输入数字选择。

2.新增 显示用户配置是,显示SSR链接和SSR二维码,这个相比原来的SS是加上了混淆和协议的参数。

3.修复 一些小BUG

2016年11月29日,版本 v1.0.4

1.修复 无法获取 VPS外网IP 的问题。

2016年11月28日,版本 v1.0.3

1.新增 中文提示脚本。

2016年11月27日,版本 v1.0.3

1.新增 锐速安装后加入开机启动 功能。

2016年11月26日,版本 v1.0.2

1.新增 修改 协议和混淆 的功能(选项 4 )。

2.新增 显示账号信息中 SS链接和二维码链接

2016年11月25日,版本 v1.0.0

1.推出 正式版本。

第二版补充,版本 v1.0.1

鉴于一些人可能会一开始安装ShadowsocksR会跳过 libsodium 的安装,所以又单独加上了安装 libsodium 的选项。

新增 安装 libsodium(chacha20加密方式) 的选项。

新增 查看锐速状态、停止锐速、重启锐速 的选项。


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

转载请超链接注明:逗比根据地 » 『原创』CentOS/Debian/Ubuntu ShadowsocksR 单/多端口 一键管理脚本
责任声明:本站一切资源均原创或收集自互联网,仅作交流学习之用,请勿用作商业!如造成任何后果,本站概不负责!

赞 (24)
发表我的评论
取消评论
表情

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(134)个小伙伴在吐槽
  1. 另外我认为工具在添加或删除端口时会自动给防火墙添加和删除端口是十分有用的功能!实在是太好了!
    zzfafa2017-01-16 23:45 (3天前)回复
  2. 你好!这个工具非常的方便!感谢! 我在使用中发现了问题: 使用{删除 多端口用户配置}输的“端口”所在序号并不是正确的。比如“443”位于第3位“80”位于第1位 我输入“3”所删除的是第一位的“80”。
    zzfafa2017-01-16 23:42 (3天前)回复
    • 不会呀,什么系统?我用debian/ubuntu测试都是正常的。
      当初这个问题我在添加功能的时候,就遇到了 json解析器解析的是反过来的,所以我都是反过来写的。
      难道不同系统json解析结果还不一样?或者说是 jq 这个json解析器版本的问题?
      一些源比较老的话,可能安装的解析器也是老版本的,但是会跟我脚本设计时使用测试效果不一样。
      Toyo2017-01-16 23:57 (3天前)回复
    • 大半夜多次测试,发现问题所在了,我脚本所用的 jq JSON解析器,在debian/ubuntu系统中,解析多端口的时候是反过来的,而在centos中,则是正过来的,这个功能开发出来后,我主要用debian/ubuntu做测试,我只测试了centos是否能正常使用,没有注意到系统不同,JQ这个软件同一个版本,解析结果也不一样,蛋疼,大半夜先睡觉了,明天下午有空处理一下。
      Toyo2017-01-17 01:13 (3天前)回复
    • 最新版本,1.1.6已经修复这个BUG了,重新下载脚本即可。
      Toyo2017-01-17 12:15 (2天前)回复
  3. 端口限速以及端口流量使用量等。
    king2017-01-15 12:32 (4天前)回复
    • 这些功能不会考虑,通过shell脚本来限速效率太低,而且问题很多,统计使用流量也麻烦,懒得搞,越搞越复杂,越搞越臃肿,这是很多工具都犯的毛病。
      我只希望我的脚本是一个简单方便关闭单端口/多端口用户配置的一个脚本就行了。
      Toyo2017-01-15 13:15 (4天前)回复
      • 我中午装锐速搞的死机了。128mb内存。系统更换后都装不上ssr了。提示启动错误。
        king2017-01-15 14:54 (4天前)回复
1 2 3