Debian 8/Ubuntu16.04 64位系统安装BBR的方法
我们在主站上介绍过一篇使用一键脚本安装BBR(谷歌拥塞控制算法),这个方法只适用于CentOS 6/7系统,其他的比如Ubuntu/Debian系统这个方法就失效了,那么Ubuntu/Debian系统该怎么使用BBR呢?
CentOS 6/7 系统安装BBR的一键脚本方法请看 安装BBR拥塞控制算法程序让VPS速度更快
首先我们要了解一下BBR的发布与其能支持的系统,BBR发布于2016年下半年,当时的kernel系统内核是4.9,所以系统的kernel内核要求最低必须是4.9版本以上。其次,BBR能支持三大发行版系统的最低版本分别是CentOS 6、Ubuntu 16.04、Debian 8(均为64位系统版本)。除了CentOS 8 和 Ubuntu 18.04 / 20.04 (含所有其后的版本)以及 Debian 9 / 10 / 11 这些系统内核大于4.9而无需更换内核之外,其他的低版本系统如果要安装BBR必须得升级更换内核,否则无法安装。
CentOS 7 系统的默认内核是3.10,CentOS 6 默认则是2.6,而CentOS 8 则是4.18超过最低内核标准,因此CentOS 8不用换内核直接就可以开启BBR。所以那个一键脚本就是更换内核为最新版之后(CentOS 7更换为最新版、CentOS 6更换为4.18版本)安装BBR的,因此只能在CentOS 6/7系统上使用。
Ubuntu 18.04的内核已经升级到4.15了,所以不用换内核直接开启即可。Ubuntu 16.04 和 Debian 8 这两个老版本的系统,Ubuntu 16.04 的默认内核是4.4,Debian 8 的默认内核则是3.16,因此必须要换内核才能安装BBR。所以今天我们介绍的就是这两个系统该怎么安装BBR。
本文以 Debian 8 为例,Ubuntu 16.04 的方法也是一样的,都是要经过换内核和开启BBR这两步(其他新版本的直接看最后一步)
首先我们要换内核,到 https://kernel.ubuntu.com/~kernel-ppa/mainline/ 找到需要更换的内核版本目录,找到里面带有 linux-image generic amd64.deb 字样的内核包下载并安装。(根据需要的版本选择相应的包)
以4.9.5版本为例,需要下载这个链接
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.5/linux-image-4.9.5-040905-generic_4.9.5-040905.201701200532_amd64.deb
然后我们解压安装该内核
dpkg -i linux-image-4.9.5-040905-generic_4.9.5-040905.201701200532_amd64.deb
安装完毕之后我们输入 /usr/sbin/update-grub 或 update-grub(update-grub2)更新内核为我们刚刚安装的最新版本内核(如果之前安装过其他高版本内核系统将自动升级为最高版本,因此如果你需要的版本不是最高的请自行更换为相应的内核版本并设为默认)
输入 reboot 重启系统,如果能开机就说明内核更换完毕了。如果不能开机的请到VNC里手动选择grub引导,引导选择一个内核启动。
附上查看系统和内核版本的命令:
查看系统版本命令:
lsb_release -a
cat /etc/issue
cat /etc/redhat-release(红帽系专用,包括Redhat、CentOS、Fedora等红帽系系统)
查看内核版本命令:
uname -a
uname -r
uname -sr
cat /proc/version
Debian/Ubuntu系统查看已安装内核的命令:
ls /boot/
dpkg -l | grep linux-image
dpkg –list | grep linux-image
CentOS系统查看已安装内核的命令:
rpm -qa | grep kernel
接下来就是开启BBR了,当系统内核完成升级后就可以自动启动BBR了。新版本系统的直接从这一步开始,只需输这三个命令设置好配置文件就行:
以下两个命令分开输入
echo “net.core.default_qdisc=fq” >> /etc/sysctl.conf
echo “net.ipv4.tcp_congestion_control=bbr” >> /etc/sysctl.conf
最后输入保存配置文件命令 sysctl -p
接下来我们只需输入两个命令来验证是否开启了BBR就行(方法跟主站的那篇文章完全一样)
sysctl net.ipv4.tcp_available_congestion_control
当反馈的结果是 net.ipv4.tcp_available_congestion_control = reno cubic bbr 代表安装成功并开启
再输入 lsmod | grep bbr 命令后当反馈的结果是 tcp bbr 20480 X(这个数字不重要) 就代表你的VPS正式开启BBR了,到此大功告成
关闭BBR的命令是这样的(一般我们也不会去关掉,主要是万一有这方面需求的可以参考一下)
以下的两个命令分开输入
sed -i ‘/net\.core\.default_qdisc=fq/d’ /etc/sysctl.conf
sed -i ‘/net\.ipv4\.tcp_congestion_control=bbr/d’ /etc/sysctl.conf
最后保存一下配置文件 sysctl -p 就关掉了
以上就是这两款老系统如何升内核安装BBR的方法,当然如果你用的是新系统那么直接输入几个命令就能开启BBR,更简单。有需要在这类系统上使用BBR的可以尝试使用本方法开启BBR功能。
如果你是CentOS 7系统的用户请接着往下看:
附:CentOS 7系统更换内核安装BBR方法
首先更换原来3.10的内核为4.9以上版本
CentOS 7系统更换内核方法与Debian系会不一样,rpm要使用elrepo仓库更新内核
首先我们在CentOS 7系统上启用elrepo仓库
rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
或者是
rpm install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
(数字为CentOS的版本号,CentOS 7系统只能是7)
仓库启用后使用下面的命令罗列展示可用的内核安装包
yum –disablerepo=”*” –enablerepo=”elrepo-kernel” list available
选择最稳定的版本开始安装
yum –enablerepo=elrepo-kernel install kernel-ml
安装完成后使用下面的命令查看所安装的内核顺序
awk -F\’ ‘$1==”menuentry ” {print i++ ” : ” $2}’ /etc/grub2.cfg
根据所罗列的内核编号设置默认启动内核
grub2-set-default 0
(根据内核前面的实际数字进行选择,最后的数字为内核在系统内的代号)
接下来 reboot 重启VPS
能再次启动VPS并且输入上面的uname -a/uname -r/uname -sr命令显示为新的内核就算是完成了内核更新
当然还有另一种方法:
开始升级内核
#导入秘钥
rpm –import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#启用仓库
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
#查看可供安装的内核版本
yum –disablerepo=”*” –enablerepo=”elrepo-kernel” list available
安装内核
#安装的长期稳定版本(建议用这个)
yum –enablerepo=elrepo-kernel install kernel-lt -y
#安装最新版本(不建议用,请慎重选择)
yum –enablerepo=elrepo-kernel install kernel-ml -y
设置grub默认启动内核的版本
开始编辑文件 vim /etc/default/grub
#设置 GRUB_DEFAULT=0,将grub 初始化页面的第一个内核将作为默认内核。
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=”$(sed ‘s, release .*$,,g’ /etc/system-release)”
GRUB_DEFAULT=saved #这里的saved改为0即可,重启后默认就是你上次所选的版本(正确内容为GRUB_DEFAULT=0)
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT=”console”
GRUB_CMDLINE_LINUX=”rhgb quiet”
GRUB_DISABLE_RECOVERY=”true”
编辑好后保存,然后执行命令
grub2-mkconfig -o /boot/grub2/grub.cfg
最后 reboot 重启服务器 ,下次启动后如果能启动并按照上面的操作确认内核更换成功后即可开始下面的操作
部分内容来自 https://woj.app/7864.html
最后是启动BBR
CentOS的开启BBR命令也是两步,但是与Debian系存在一定的差异
输入以下两步命令
echo ‘net.core.default_qdisc=fq’ | sudo tee -a /etc/sysctl.conf
echo ‘net.ipv4.tcp_congestion_control=bbr’ | sudo tee -a /etc/sysctl.conf
然后再输入 sysctl -p 保存内容
当输出内容为以下内容时就是保存成功
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
接下来再使用上面的BBR验证的那两个命令验证一下BBR是否启动,没问题之后BBR就正式启动了