本文记录了如何使用 vps安装ssr+bbr的过程,基本是copy至“逗比根据地”,搭建该服务的目的仅在于学习。
¶系统要求
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 脚本中文交互 操作。
- 支持 限制 用户速度
- 支持 限制 用户设备数
- 支持 限制 用户总流量
- 支持 定时 流量清零
- 支持 显示 当前连接IP
- 支持 显示 SS/SSR连接+二维码
- 支持 自定义账号IP或域名
- 支持 监控SSR服务端运行状态
- 支持 一键安装 BBR
- 支持 一键安装 锐速
- 支持 一键安装 LotServer
- 支持 一键封禁 垃圾邮件(SMAP)/BT/PT
¶安装步骤
简单的来说,如果你什么都不懂,那么你直接一路回车就可以了!
本脚本需要Linux root账户权限才能正常安装运行,所以如果不是 root账号,请先切换为root,如果是 root账号,那么请跳过!
1 | sudo su |
输入上面代码回车后会提示你输入当前用户的密码,输入并回车后,没有报错就继续下面的步骤安装ShadowsocksR。
注意:如果你安装的有我的另一个 ssr.sh 脚本,请先卸载ShadowsocksR服务端,再安装这个脚本(不能共存)!
1 | wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/ssrmu.sh && chmod +x ssrmu.sh && bash ssrmu.sh |
下载运行后会提示你输入数字来选择要做什么。
输入 1 ,就会开始安装ShadowsocksR服务端,并且会提示你输入Shadowsocks的 端口/密码/加密方式/ 协议/混淆(混淆和协议是通过输入数字选择的) 等参数来添加第一个用户。
1 | 注意:用户名不支持中文,如果输入中文会一直保存下去! |
如果安装过程中报错,请看 常见问题解决方法。
1 | 请输入要设置的用户 用户名(请勿重复, 用于区分, 不支持中文, 会报错 !) |
同时最后也会提示是否设置 混淆 兼容原版(也就是使用原版SS也能链接),不懂 直接回车 或 输入 y 。(协议不在兼容原版)
1 | 注意:关于限制设备数数,这个协议必须是非原版并且不兼容原版才有效,也就是必须SSR客户端使用协议的情况下,才有效! |
不输入一路回车就是 默认参数:
1 | 用户 : doubi |
如果安装过程没有出错,那么最后就会提示:
1 | ########################################################### |
SS/SSR链接(格式: ss://XXXXXXX ,很长),可以从剪辑版导入Shadowsocks客户端,不懂的话看下面二维码。
SS/SSR二维码,复制后面的链接在浏览器打开,二维码API网站就会生成一个二维码的图片,可以用ShadowsocksR客户端扫描二维码来添加。
¶使用说明
运行脚本,
1 | bash ssrmu.sh |
输入对应的数字来执行相应的命令。
1 | ShadowsocksR MuJSON一键管理脚本 [vX.X.X] |
注意:添加/删除/修改 用户配置后,无需重启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 安装后,自动设置为 系统服务,所以支持使用服务来启动/停止等操作,同时支持开机启动。
- 启动 ShadowsocksR:
/etc/init.d/ssrmu start
- 停止 ShadowsocksR:
/etc/init.d/ssrmu stop
- 重启 ShadowsocksR:
/etc/init.d/ssrmu restart
- 查看 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_auth 与 tls1.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 端口限速中 单线程限速 和 端口总限速 的区别
1 | 注意:如果要使用脚本中的这个功能,需要重新下载脚本,并重装安装 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 --no-check-certificate -P /etc/apt https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/sources/us.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 |
修改完毕之后,按ESC 键
退出编辑模式,然后输入:wq
保存并退出,然后再试一试apt-get update
是否正常。
¶ShadowsocksR启动失败,日志提示:Exception: libsodium not found 的错误
这是你使用了 chacha20 系列加密方式,但是却没有安装 libsodium支持库,导致ShadowsocksR无法启动,运行脚本选择选项 4 安装 libsodium支持库即可,如果安装失败,请选择其他的加密方式,对速度影响不大。
¶提示wget: unknown host “doubiyunbackup.com” 之类的错误
这是无法解析我的域名,多半是DNS的问题,请更换DNS为谷歌DNS。
1 | echo "nameserver 8.8.8.8 |
¶提示 wget: command not found 的错误
这是你的系统精简的太干净了,wget都没有安装,所以需要安装wget。
CentOS系统:
1 | yum install -y wget |
Debian/Ubuntu系统:
1 | apt-get install -y wget |
¶升级脚本
升级脚本只需要重新下载脚本文件就可以了,会自动覆盖原文件。
¶定时重启
一些人可能需要定时重启ShadowsocksR服务端来保证稳定性等,所以这里用 crontab 定时。
1 | crontab -l > "crontab.bak" |
¶BBR一键脚本整理
¶BBR介绍
BBR 是一个由谷歌社区开发的 TCP拥塞控制技术(优化 TCP 连接),用于网络加速,类似于锐速。不支持OpenVZ的机器。
我们这里把bbr安装到我们服务器,加速shadowsocks/r。
¶逗比系列脚本
Debian 7 / Debian 8 / Ubuntu 14.04 / Ubuntu 16.04
一键脚本:
1 | wget -N --no-check-certificate https://softs.fun/Bash/bbr.sh && chmod +x bbr.sh && bash bbr.sh |
备用脚本:
1 | wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/bbr.sh && chmod +x bbr.sh && bash bbr.sh |
使用方法:
1 | 启动BBR |
CentOS
一键脚本:
1 | wget -N --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && bash bbr.sh |
验证方法:
1 | uname -r |
¶秋水逸冰系列脚本
系统支持:CentOS 6+,Debian 7+,Ubuntu 12+
内存要求:≥128M
更新日期:2017 年 05 月 15 日
关于本脚本
1、本脚本已在 Vultr 上的 VPS 全部测试通过。
2、当脚本检测到 VPS 的虚拟方式为 OpenVZ 时,会提示错误,并自动退出安装。
3、脚本运行完重启发现开不了机的,打开 VPS 后台控制面板的 VNC, 开机卡在 grub 引导, 手动选择内核即可。
4、由于是使用最新版系统内核,最好请勿在生产环境安装,以免产生不可预测之后果。
一键脚本:
1 | wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh |
验证方法:
1 | uname -r |
特别说明
如果你使用的是 Google Cloud Platform (GCP)更换内核,有时会遇到重启后,整个磁盘变为只读的情况。只需执行以下命令即可恢复:
1 | mount -o remount rw / |
CentOS 6+ / Debian 7+ / Ubuntu 14.04 +