Pages

Tuesday, 25 December 2018

BBR原版/BBR魔改/BBR Plus + 锐速 等四合一安装脚本

这个脚本,集合了BBR原版、BBR魔改、BBR Plus和锐速,愿用哪个用哪个,只能说:太方便了!
在vultr上Centos 7, Debian 8/9, Ubuntu 16/18测试通过。不支持OVZ和LXC。
建议SSH下,root用户。
一、安装证书
apt-get -y install ca-certificates

yum -y install ca-certificates
二、安装
wget "https://github.com/chiakge/Linux-NetSpeed/raw/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh
1、先在[1 – 3]切换内核(第一次显示为bbr内核也要切换一遍),重启.
出现下图,选no:
2、重启后不用再下载脚本,直接 ./tcp.sh ,在[4 – 8]中选你要开的加速
“1. 安装 BBR/BBR魔改版内核” 对应4,5,6(原版,魔改,暴力魔改)
“2. 安装 BBRplus版内核 ” 对应7(plus)
“3. 安装 Lotserver(锐速)内核” 对应8(锐速)
3、开启后再 ./tcp.sh , 显示开启成功则启动成功,你也可以自己手动确认
现在你可以自由的切换你想要的加速,直到你不想折腾为止。
--------

三款VPS加速软件一键安装脚本

因为咱们国内这屎一样国际带宽和网络线路,所以我会经常用到各种各样的网络加速软件,比如:锐速、Google BBR、FinalSpeed、KcpTun等。但这些软件总是要自己手动安装会比较麻烦,更蛋疼的是有些软件因为某些原因已经停止开发了,比如锐速、FinalSpeed这类,导致更加难安装。所以就有一些大佬做出了一键安装脚本~
千万别小看这些加速软件能带给你的效果,只要你愿意试一试,我敢拍着胸脯给你保证,你曾经觉得卡的不行的VPS在装了这些后在网络方面也能得到一个质的提升。毫不夸张的说,在你的本地带宽有保证的前提下,装了这些加速软件后看YouTuBe2K-4K视频没多大问题。
综合上述所说的,LALA稍微整理了一下自己常用的一键安装脚本。
Google BBR安装脚本(来自Teddysun大佬)

系统支持:CentOS 6+,Debian 7+,Ubuntu 12+
虚拟技术:OpenVZ 以外的,比如 KVM、Xen、VMware等
使用root用户登录你的VPS执行下面的命令:
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
./bbr.sh
安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。
重启完成后,进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下命令:
uname -r
查看内核版本,含有 4.11 就表示 OK 了
sysctl net.ipv4.tcp_available_congestion_control
返回值一般为:
net.ipv4.tcp_available_congestion_control = bbr cubic reno

sysctl net.ipv4.tcp_congestion_control
返回值一般为:
net.ipv4.tcp_congestion_control = bbr
sysctl net.core.default_qdisc
返回值一般为:
net.core.default_qdisc = fq
lsmod | grep bbr
返回值有 tcp_bbr 模块即说明bbr已启动。
锐速破解版一键安装包(来自91yun.org)
系统支持:CentOS 6+
虚拟技术:OpenVZ 以外的,比如 KVM、Xen、VMware等
使用root用户登录你的VPS执行下面的命令:
wget -N --no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh && bash serverspeeder.sh
安装完毕后输入如下命令来查看锐速状态:
/serverspeeder/bin/serverSpeeder.sh status

在你的VPS或者服务器有网络数据产生的时候,注意观察TotalAccTcpFlow的值,这个值如果一直是0则说明加速有问题。
锐速一键卸载代码:
chattr -i /serverspeeder/etc/apx* && /serverspeeder/bin/serverSpeeder.sh uninstall -f

注意:LALA在使用这个锐速安装脚本的时候发现一个问题,脚本会自动匹配对应的内核来安装符合你内核版本的锐速,但是因为Linux的内核实在是太多太杂,基本上也匹配不到完全一样的内核,如果不换内核按这个脚本提示的选择一个相近的内核来安装的话,LALA发现基本上安装后也是不能正常使用的。要么就是不加速,要么就是加速几秒钟就没效果了。所以我们最好还是给Linux换个完全符合的内核来安装!
CentOS6 内核更换为: 2.6.32-504.3.3.el6.x86_64
rpm -ivh http://soft.91yun.org/ISO/Linux/CentOS/kernel/kernel-firmware-2.6.32-504.3.3.el6.noarch.rpm
rpm -ivh http://soft.91yun.org/ISO/Linux/CentOS/kernel/kernel-2.6.32-504.3.3.el6.x86_64.rpm --force --nodeps
CentOS7 内核更换为: 3.10.0-229.1.2.el7.x86_64
rpm -ivh http://soft.91yun.org/ISO/Linux/CentOS/kernel/kernel-3.10.0-229.1.2.el7.x86_64.rpm --force --nodeps
输入下面的命令来查看是否将内核安装成功:
rpm -qa | grep kernel
回显的内容中有你刚才安装的内核版本即可。
现在重启你的VPS或者独立服务器:
reboot

查看内核是否更换成功:
uname -r


FinalSpeed一键安装包(来自91yun.org)
系统支持:CentOS 6+
虚拟技术:OpenVZ、Kvm、Xen等均支持
一键安装代码:
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/finalspeed/master/install_fs.sh && bash install_fs.sh
一键卸载代码:
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/finalspeed/master/install_fs.sh && bash install_fs.sh uninstall
FinalSpeed相关操作命令:
启动:/etc/init.d/finalspeed start
停止命令:/etc/init.d/finalspeed stop
状态命令(查看日志):/etc/init.d/finalspeed status
注意:FinalSpeed是双边加速软件,还需要你的本地电脑安装客户端才能正常使用!

1.0客户端:https://github.com/91yun/finalspeed/blob/master/finalspeed_install1.0.exe
1.12客户端:https://github.com/91yun/finalspeed/blob/master/finalspeed_install1.12.exe
后话:
Google BBR和锐速都属于单边加速软件,而FinalSpeed属于双边加速软件。在加速效果方面肯定是FinalSpeed更暴力一些,但是也正因为它是双边加速软件,能加速的东西就很受局限.
其次,Google BBR和锐速都只能安装在除OpenVZ架构以外的VPS上,也就是说BBR和锐速都是不支持OpenVZ的,但是现在很多便宜的VPS基本都是OpenVZ架构,所以就导致了很多朋友想装都装不了,只能干瞪眼。LALA建议你们在购买VPS的时候看清楚是什么架构,最好购买KVM架构的。不过如果你是OpenVZ架构的VPS也不用灰心,好歹还有一个FinalSpeed是可以用的~
总的来说,这三款加速软件都是各有优势,选择符合自己的才最重要。不过LALA个人是倾向于锐速的。
-------

Scalable-RE (Scalable-Reactive) : 一个实验性的单边加速算法

鉴于BAT、CNCache等一干大型IT企业压榨国内骨干网的手法愈加精纯,若不牺牲一点公平性,在业务网络上使用所谓的单边加速措施,未免有些不合国情。 既然是用于生产环境,锐速之流的国产闭源模块自然是不在考虑内的; 那么G家所开源的拥塞避免算法 (Congestion Avoidance Algorithms,下称CA) ——BBR(Bottleneck Bandwidth and RTT)本应成为兼顾效率与网络公平性的最优解, 然而赵国的网络环境实在险恶。
开发Scalable-RE的大佬就是BBR魔改版的大佬开发的,目前还没有一键安装脚本。有兴趣可以编译安装。7月9日更新,作者更新了安装方法:
from https://github.com/chiakge/Linux-NetSpeed

(Linux-NetSpeed

本脚本已不更新,推荐使用5.5以上内核自带的bbr速度最佳

wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh"

chmod 755 tcp.sh && ./tcp.sh

from https://github.com/Chikage0o0/Linux-NetSpeed )
----

kernel

linux kernel for bbr/bbrplus

见
https://github.com/ylx2016/kernel/releases

一键安装内核见
https://github.com/ylx2016/Linux-NetSpeed/releases

c6-c8 = centos6-centos8
d9-d10=debian9-debian10
u16-u19=ubuntu16-19

激活bbrplus
echo "net.ipv4.tcp_congestion_control=bbrplus" >> /etc/sysctl.conf
sysctl -p

bbsplus算法原作者
https://blog.csdn.net/dog250/article/details/80629551
bbrplus首用名 ?
https://github.com/cx9208/bbrplus


查看当前运行的算法
cat /proc/sys/net/ipv4/tcp_congestion_control

lsmod | grep bbr 这个在内置默认bbr算法的情况下是不会有输出的.
from https://github.com/ylx2016/kernel
-------
编译了dog250大神的bbr修正版.

BBRplus

https://blog.csdn.net/dog250/article/details/80629551 中,
dog250大神提到了bbr初版的两个问题:bbr在高丢包率下易失速以及bbr收敛慢的问题,
提到了他个人与bbr作者对这两个问题的一些修正,并在文末给出了修正后的完整代码。
在这里我只是将它编译出来(不是我写的)并做成了一键脚本,我叫它bbr修正版,或者bbrplus。
它基于原版bbr,但修正了bbr存在的上述问题,尝试使其更好,减少排队和丢包。

由于编译修正后的模块需要4.14版的内核,
以及需要修改内核的部分源码,所以需要重新编译整个内核。
这里提供一个编译好并内置bbrplus的适用于centos7的内核,以及安装方法与编译供方法大家测试。

感谢dog250大神对bbr相关原理和代码的解析与分享!

注意,这是一个实验性的修改,没有人对它的稳定性负责,也不担保它一定能产生正向的效果。
所以请酌情使用,at your own risk.

脚本安装方法:

不要在生产环境使用一键脚本,建议手动安装,进不了系统用vnc切内核

一键脚本(全系统):
https://github.com/chiakge/Linux-NetSpeed

一键脚本(仅CentOS):

wget "https://github.com/cx9208/bbrplus/raw/master/ok_bbrplus_centos.sh" && chmod +x ok_bbrplus_centos.sh && ./ok_bbrplus_centos.sh

安装后,执行uname -r,显示4.14.129-bbrplus则切换内核成功
执行lsmod | grep bbr,显示有bbrplus则开启成功

手动安装方法:


卸载本机的锐速(如果有)


下载内核
wget https://github.com/cx9208/bbrplus/raw/master/centos7/x86_64/kernel-4.14.129-bbrplus.rpm


安装内核
yum install -y kernel-4.14.129-bbrplus.rpm


切换启动内核
grub2-set-default 'CentOS Linux (4.14.129-bbrplus) 7 (Core)'


设置fq
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
设置bbrplus
echo "net.ipv4.tcp_congestion_control=bbrplus" >> /etc/sysctl.conf


重启
reboot


检查内核版本
uname -r
显示4.14.129-bbrplus则成功

检查bbrplus是否已经启动
lsmod | grep bbrplus
显示有tcp_bbrplus则成功

卸载方法:

安装别的内核bbrplus自动失效,卸载内核自行谷歌即可

内核编译:

只能用于4.14.x内核,更高版本的tcp部分源码有改动,要移植到高版本内核得自己研究

下载4.14内核源码
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.14.91.tar.xz

解压
tar -Jxvf linux-4.14.91.tar.xz -C /root/

修改linux-4.14.91/include/net/inet_connection_sock.h,139行
u64 icsk_ca_priv[112 / sizeof(u64)];
#define ICSK_CA_PRIV_SIZE (14 * sizeof(u64))
这两段数值改为112和14,如上

修改/net/ipv4/tcp_output.c#L,1823行
tcp_snd_wnd_test函数大括号后}
换行添加EXPORT_SYMBOL(tcp_snd_wnd_test);

添加tcp_bbrplus.c,删除/net/ipv4/tcp_bbr.c
修改linux-4.14.91/net/ipv4/Makefile,
obj-$(CONFIG_TCP_CONG_BBR) += tcp_bbrplus.o,bbr改为bbrplus

安装依赖 centos
yum -y groupinstall Development tools
yum -y install ncurses-devel bc gcc gcc-c++ ncurses ncurses-devel cmake elfutils-libelf-devel openssl-devel rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed xmlto audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel newt-devel python-devel zlib-devel

debian
wget -qO- git.io/superupdate.sh | bash
apt-get install build-essential libncurses5-dev
apt-get build-dep linux

切换到目录 cd /root/linux-4.14.91

配置
make oldconfig
或者
make menuconfig

确保CONFIG_TCP_CONG_BBR=m

禁用签名调试
scripts/config --disable MODULE_SIG
scripts/config --disable DEBUG_INFO

开始编译
centos:make rpm-pkg

debian:make deb-pkg

from https://github.com/cx9208/bbrplus

  

No comments:

Post a Comment