新手才用一键脚本,硬核就该手动操作。
本文简单介绍了在 Ubuntu 16.04 上手动更换内核为最新 LTS 版本,且开启 BBR 的过程。
本教程不适用于 OpenVZ 架构的 VPS,如果您无法判断 VPS 的架构,请关闭页面并寻求一键脚本的帮助。
准备工作
先执行uname -r
查看系统当前的内核版本,如果高于 4.9 可以跳过更换内核直接开启 BBR
首先去 Linux 内核官网查看内核版本。
推荐使用最新的longterm
版本,在图中对应的是 4.14.65 版本。
然后去 Ubuntu 的内核网站上找到对应的目录。
本文以amd64
进行举例,对应 64 位系统。
可以看到,里面一共包含 7 个deb
文件,但我们只需要其中的 4 个。先下载第一个文件,后面 6 个文件分别是generic
和lowlatency
版本的headers
、image
和modules
,只需要选取generic
版本下载即可。
其中linux-headers-4.14.65-041465-generic_4.14.65-041465.201808181033_amd64.deb
依赖libssl1.1
,这个包在 Ubuntu 18.04 的源里才有,Ubuntu 16.04 里是没有的。
但我们可以直接去官网下载这个包的安装包文件,当前版本是1.1.0g-2ubuntu4.1
,文件名是libssl1.1_1.1.0g-2ubuntu4.1_amd64.deb
。
更换内核
现在我们一共有 5 个deb
文件,它们的安装顺序为:
- linux-headers-4.14.65-041465_4.14.65-041465.201808181033_all.deb
- libssl1.1_1.1.0g-2ubuntu4.1_amd64.deb
- linux-headers-4.14.65-041465-generic_4.14.65-041465.201808181033_amd64.deb
- linux-image-unsigned-4.14.65-041465-generic_4.14.65-041465.201808181033_amd64.deb
- linux-modules-4.14.65-041465-generic_4.14.65-041465.201808181033_amd64.deb
安装方式是sudo dpkg -i 文件名
。
安装完内核后,sudo update-grab
更新一下GRUB
就可以重启了。
重启之后再次uname -r
查看内核版本号,应该可以看到已经变成了4.14.65-041465-generic
。
为了防止出现/boot
目录因为内核过多爆满导致以后内核安装失败,执行sudo purge-old-kernels
清理旧内核,然后再次重启。
开启 BBR
使用vi
或者nano
向/etc/sysctl.conf
写入以下两行。
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
执行sudo sysctl -p
之后生效。
现在验证 BBR 是否已成功开启。
- 执行
lsmod | grep bbr
,结果中会出现tcp_bbr
。 - 执行
sysctl net.ipv4.tcp_available_congestion_control
和sysctl net.ipv4.tcp_congestion_control
,结果中都会出现bbr
。
证明BBR
已经成功开启。
本教程在我所有服务器均可成功更换内核并开启 BBR,如果您在执行过程中出现任何问题请自行谷歌报错信息。