最近经常有小白找我让我把他们安装ShadowsocksR服务端,一开始都是手动安装的,后来嫌麻烦,就打算用脚本,但是不想用别人写的,于是自己写了一个一键安装脚本,正好拿来练手学习一下Shell脚本。
更多的Shadowsocks安装教程/一键脚本请看这里:Shadowsocks指导篇
系统要求
CentOS 6+ / Debian 6+ / Ubuntu 14.04 +
推荐 Debian 7 x64,这个是我一直使用的系统,我的脚本在这个系统上面出错率最低。并且最容易安装锐速(锐速不支持OpenVZ)
CentOS根据大家的要求,加入了CentOS 6和7的支持,CentOS 7 自带防火墙问题自行解决,其他版本没有做测试。
脚本版本
Ver: 1.2.0
脚本特点:
- 中文提示,适合新手
- 一键安装,告别繁琐
- 便捷 修改账号配置
- 支持 限制 单/端端口 IP连接数
- 支持 显示SS/SSR连接+二维码
- 支持 显示 当前连接SS的用户IP
- 支持 单端口/多端口 切换和管理
- 支持 设置ShadowsocksR定时重启
- 支持 一键安装锐速(ServerSpeed)
- 支持 一键安装BBR(Debian/Ubuntu)
- 支持 一键封禁 垃圾邮件(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. 查看 ShadowsocksR 日志
- ————————————————
- 注意:锐速 不支持OpenVZ虚拟化VPS !
- 18. 安装 锐速(ServerSpeeder)
- 19. 停止 锐速(ServerSpeeder)
- 20. 重启 锐速(ServerSpeeder)
- 21. 查看 锐速(ServerSpeeder) 状态
- 22. 卸载 锐速(ServerSpeeder)
- ————————————————
- 注意:BBR 不支持OpenVZ虚拟化VPS !
- 23. 安装 BBR(需更换内核, 存在风险)
- 24. 封禁 BT/PT/垃圾邮件(SPAM)
- 25. 设置 ShadowsocksR定时重启
- ————————————————
- 当前状态:
- 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。
CentOS系统:
- yum install -y wget
Debian/Ubuntu系统:
- apt-get install -y wget
升级脚本
升级脚本只需要重新下载脚本文件就可以了,会自动覆盖原文件。
- wget -N --no-check-certificate https://softs.pw/Bash/ssr.sh
本脚本和其他人的ShadowsocksR一键安装脚本差别并不是很大,这只是我的练手之作,可能会有一些BUG,如发现请联系我或者在下面评论留言!
链接注明:逗比根据地
文章评论