当前位置:论坛首页 > 主机运维 > 脚本

一键安装最新内核并开启 BBR 脚本

发表在 主机运维2017-10-20 10:18 [复制链接] 37 23357

本脚本适用环境

系统支持:CentOS 6+,Debian 7+,Ubuntu 12+
虚拟技术:OpenVZ 以外的,比如 KVM、Xen、VMware 等
内存要求:≥128M

关于本脚本

1、本脚本已在Hostwinds上的 VPS 全部测试通过。
2、当脚本检测到 VPS 的虚拟方式为 OpenVZ 时,会提示错误,并自动退出安装。
3、脚本运行完重启发现开不了机的,打开 VPS 后台控制面板的 VNC, 开机卡在 grub 引导, 手动选择内核即可。
4、由于是使用最新版系统内核,最好请勿在生产环境安装,以免产生不可预测之后果。

使用方法

使用root用户登录,运行以下命令:
  1. wget -N --no-check-certificate https://makeai.cn/centosbbr/bbr.sh && chmod +x bbr.sh && bash bbr.sh
复制代码
输入命令后,回车,会提示你按任意键继续安装。

提示:如果内核大于4.9就不用施行安装步骤了,直接就会自动设置完成。

重要提示:安装过程中,看着走不动其实是在下载东西,不要按任何键,否则最后会安装不成功。  安装按完成后会提示你输入Y确认,输入Y回车即可,回车后会自动断开链接,等一分钟,在打开代理看下速度会明显快很多。如果你在安装过程中按了回车键,最后手动重启下服务器也可以。

重启完成后,进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下命令:
  1. uname -r
复制代码
查看内核版本,含有 4.1x 就表示 OK 了
  1. sysctl net.ipv4.tcp_available_congestion_control
复制代码
返回值一般为:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
  1. sysctl net.ipv4.tcp_congestion_control
复制代码
返回值一般为:
net.ipv4.tcp_congestion_control = bbr
  1. sysctl net.core.default_qdisc
复制代码
返回值一般为:
net.core.default_qdisc = fq
  1. lsmod | grep bbr
复制代码
返回值有 tcp_bbr 模块即说明bbr已启动。

内核升级方法

如果是 CentOS 系统,执行如下命令即可升级内核:
  1. yum --enablerepo=elrepo-kernel -y install kernel-ml kernel-ml-devel
复制代码
CentOS 6 的话,执行命令:
  1. sed -i 's/^default=.*/default=0/g' /boot/grub/grub.conf
复制代码
CentOS 7 的话,执行命令:
  1. grub2-set-default 0
复制代码
如果是 Debian/Ubuntu 系统,则需要手动下载最新版内核来安装升级。
这里下载最新版的内核 deb 安装包。
如果系统是 64 位,则下载 amd64 的 linux-image 中含有 generic 这个 deb 包;
如果系统是 32 位,则下载 i386 的 linux-image 中含有 generic 这个 deb 包;
安装的命令如下(以最新版的 64 位 4.12.4 举例而已,请替换为下载好的 deb 包):
  1. dpkg -i linux-image-4.12.4-041204-generic_4.12.4-041204.201707271932_amd64.deb
复制代码
安装完成后,再执行命令:
  1. /usr/sbin/update-grub
复制代码
最后,重启 VPS 即可。

特别说明

1、如果你使用的是 Google Cloud Platform (GCP)更换内核,有时会遇到重启后,整个磁盘变为只读的情况。只需执行以下命令即可恢复:
  1. mount -o remount rw /
复制代码
2、如果你使用的是 Linode ,那么无需更换内核,只需修改配置即可开启 BBR:
  1. sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf
  2. sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf
  3. echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
  4. echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
  5. sysctl -p
复制代码

使用道具 举报 只看该作者 回复
发表于 2017-10-20 10:40:09 | 显示全部楼层
安装成功
使用道具 举报 回复
发表于 2018-2-25 17:40:36 | 显示全部楼层
安装失败centos6执行后没有反应

用centos7  发表于 2018-4-15 18:13
使用道具 举报 回复 支持 反对
发表于 2018-4-15 16:41:15 | 显示全部楼层
如何运行命令

输入代码回车就行  发表于 2018-4-15 18:18
使用道具 举报 回复 支持 反对
发表于 2018-4-18 17:27:12 | 显示全部楼层
CentOS 7 x64为啥装不上
使用道具 举报 回复 支持 反对
发表于 2018-5-9 21:23:57 | 显示全部楼层
不会升级内核  完全看不懂系列....
使用道具 举报 回复 支持 反对
发表于 2018-5-9 23:47:01 | 显示全部楼层
dxq123321 发表于 2018-5-9 21:23
不会升级内核  完全看不懂系列....

不需要升级啊,安装的就是最新版内核,出错是你最后一步多按了,最后一步是让输入Y重启才生效,你直接回车了,就不会生效,所以手动重启下VPS就可以了。
使用道具 举报 回复 支持 反对
发表于 2018-5-10 22:37:11 | 显示全部楼层
dary 发表于 2018-5-9 23:47
不需要升级啊,安装的就是最新版内核,出错是你最后一步多按了,最后一步是让输入Y重启才生效,你直接回 ...

如果是 Debian/Ubuntu 系统,则需要手动下载最新版内核来安装升级。
这句话是不是要我升级内核。我的系统就是Debian的系统  
使用道具 举报 回复 支持 反对
发表于 2018-5-10 22:40:48 | 显示全部楼层
dxq123321 发表于 2018-5-10 22:37
如果是 Debian/Ubuntu 系统,则需要手动下载最新版内核来安装升级。
这句话是不是要我升级内核。我的系统 ...

debian安装的也是最新版的啊,是以后出新版了在升级,你可以直接用论坛里面那个专门用于debian系统的安装BBR脚本https://www.bbaaz.com/thread-17-1-1.html
使用道具 举报 回复 支持 反对
发表于 2018-5-11 21:45:04 | 显示全部楼层
我昨天装好BBR了 速度也快 但是今天又慢下来了什么原因呢 ?
使用道具 举报 回复 支持 反对
1234下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

论坛须知,要严格遵守

①会员对自己的言论承担责任

②禁止发布损害国家利益和名誉信息

③禁止发布散播不实信息

④禁止发布淫秽、恐怖信息

一经发现初次警告二次封号

情节严重者移交公安机关处理

小黑屋|BBaaZ  

Copyright © 2017 BBaaZ All Rights Reserved.

Powered by Discuz! X3.2

快速回复 返回顶部 返回列表