为了迎接19大,镜像域名 doub.bid 取消解析、逗比云 softs.fun 取消国内访问(请挂代理访问)。
投稿文章 | 广告投放 | Telegram 群组 / 公告频道

『原创』Debian/Ubuntu TCP拥塞控制技术 ——TCP-BBR 一键安装脚本

Shell脚本 Toyo 137评论
本文最后更新于 2017年9月6日 00:18 可能会因为没有更新而失效。如已失效或需要修正,请留言!

这几天很火的BBR,我研究了一下,写了一个一键脚本,适合新手使用。


手动安装方法:比锐速还强的 TCP拥塞控制技术 —— TCP-BBR 测试及开启教程

注意:TCP-BBR和锐速一样,不支持Openvz,查看本教程之前,请先确定你的VPS的虚拟化技术!

注意:本教程涉及到VPS更换内核,所以如果步骤错误,或者VPS不兼容最新的内核,会导致无法开机等错误,请勿用于生产环境!!!!

BBR 简单介绍

BBR 是一个由谷歌社区开发的 TCP拥塞控制技术,目前处于开发初期,但是前景很棒,大家可以持续关注,同时BBR是集成与Linux最新版本的内核中的。

具体什么是TCP拥塞控制技术,详细的我也不懂,我就用通俗一点的话解释一下,不一定准确,看一看理解一下就好了。

原始的TCP流量传输,已经不能适应现在的互联网了,我们把 TCP流量比喻成 公路上的汽车流量,而TCP传输隧道就是 公路,那么:

在原始的TCP流量传输中,一条十字路口公路,很多车流量,但是却没有红绿灯和交警,导致大家左挤右挤的堵车了,这就是没有合理的管理导致的。

而BBR和锐速等TCP流量控制技术,就是红绿灯+交警,他们就是在无人管理的十字路口,去合理指挥分配车流量,然后最大化的利用车流量,保证路面畅通。

大概就是这样解释了,有什么错误请指出。

BBR官方项目地址:https://github.com/google/bbr

系统要求

Debian / Ubuntu 14.04 +

CentOS用户请使用这个脚本:CentOS/Debian/Ubuntu系统 TCP-BBR 一键安装脚本

本脚本只在 Debian 7 / Debian 8 / Ubuntu 14.04 / Ubuntu 16.04 (均 x64位) 这几个系统中测试过脚本可以正常运行(Vultr)!

强烈推荐 Debian 7 x64,这个是我一直使用的系统,我的脚本在这个系统上面出错率最低。

至于为什么不支持 CentOS 等系统,主要是我不怎么用其他的系统,就不做支持了。

脚本版本

Ver: 1.0.17

脚本已知BUG,当遇到内核版本为 X.XX 格式的时候(例如 4.12这样),会因为下载站上面的文件名(4.12)和安装后的内核版本(4.12.0)不同,而导致提示内核不是最新版本啥的,不用管这个,无视即可,不影响使用。

安装步骤

更换内核需要ROOT权限,所以如果你是普通用户 的话,需要ROOT账号权限,如果你是ROOT账号,那就忽略这个步骤

sudo su

输入并回车后,会提示让你输入当前账号的密码,输入并回车后就可以继续下面的步骤了。

wget -N --no-check-certificate https://softs.fun/Bash/bbr.sh && chmod +x bbr.sh && bash bbr.sh

备用下载地址(上面的链接无法下载,就用这个):

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/bbr.sh && chmod +x bbr.sh && bash bbr.sh

下载并运行脚本后,会自动检测并开始安装,首先会提示你输入要下载的内核版本,可以安装自定义版本的内核,也可以直接回车安装最新版本的内核内核版本获取)!

请输入 要下载安装的Linux内核版本(BBR) [ 格式: x.xx.xx ,例如: 4.10.12 ]
 [注意]内核版本列表请去这里获取:[ http://kernel.ubuntu.com/~kernel-ppa/mainline/ ]
(默认回车,自动获取最新版本):4.10.10

注意:在Debian系统中,删除旧内核时,会提示你是否终止删除内核的行为(如下图),这个需要你选择 <No> (键盘方向键 选择,回车键 确认)。

如果没有出错,内核更换完毕后,会提示是否立即重启VPS,直接回车或者输入 Y

需要重启VPS后,才能开启BBR,是否现在重启 ? [Y/n] : y
[注意]  重启VPS后,请重新运行脚本查看BBR是否加载成功 bash bbr.sh status

[信息]  VPS 重启中...

等待十几秒,VPS启动后,重新通过SSH连接VPS,进入 bbr.sh 脚本的目录,然后执行下面这个命令查看BBR是否加载成功。

bash bbr.sh status

然后就会自动开启BBR。

如果重启VPS后,无法连接,说明内核安装或与系统存在兼容性问题,无法正常启动,代表你的VPS当前系统无法使用BBR,请更换其他系统!

使用方法

# 启动BBR
bash bbr.sh start

# 关闭BBR
bash bbr.sh stop

# 查看BBR状态
bash bbr.sh status
注意:关闭BBR,需要重启VPS,所以脚本会提醒是否立即重启VPS。

升级BBR

bash bbr.sh
# 重新执行脚本会检测最新内核和当前内核,对比版本

因为BBR只是内核中的一段功能代码,所以内核更新不一定是BBR更新,就像Win10中IE的位置一样,Win10更新不代表是为了更新IE,所以是否要更新内核要看BBR官方源码有没有更新了。

BBR官方项目地址:https://github.com/google/bbr

注意BBR源码最后更新时间,如果比你的内核新,那么你可以更新内核,反之无需更新。

卸载BBR

BBR集成于内核中,所以卸载BBR=更换内核,教程:

Debian/Ubuntu 内核降级教程 —— 降低(BBR)为支持锐速的内核版本

其他说明

注意:TCP-BBR必须是 2016-12-05 21:00 更新的 4.9.0-rc8 内核及以后的版本 才能开启,而锐速并不支持这个最新的内核版本,所以TCP-BBR和锐速是不可能共存的。

裸SS / 锐速+SS / BBR+SS简单速度对比,仅供参考,看这里

更换内核后重启服务器无法启动 的问题

如果重启VPS后,无法连接,说明内核安装有问题 或 内核与系统存在兼容性问题,无法正常启动。

这代表你的VPS当前系统不支持最新的内核版本,无法开启BBR,请更换其他系统尝试!

提示 wget: unknown host “softs.fun” 之类的错误

这是无法解析我的域名,多半是DNS的问题,请更换DNS为谷歌DNS。

echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf

提示 wget: command not found 的错误

这是你的系统精简的太干净了,wget都没有安装,所以需要安装wget。

# Debian/Ubuntu 系统:
apt-get install -y wget

更新日志

2017年09月06日,版本 v1.0.17

1.修复 在内核版本为 X.XX.0 的时候,检测BBR更新会提示更新的问题(很早就有的BUG,一直忘记修复,这是因为内核仓库版本号为 4.13 而安装后内核版本为 4.13.0 导致不一致,所以才会不停循环提示更新)。

点击展开 查看更多更新日志


如果有什么BUG,请联系我或者在下面评论留言!

允许转载,但是请注明源链接,谢谢!

转载请超链接注明:逗比根据地 » 『原创』Debian/Ubuntu TCP拥塞控制技术 ——TCP-BBR 一键安装脚本
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

赞 (41)or打赏
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(137)个小伙伴在吐槽
  1. Ubuntu 16.04 LTS 从4.4内核升级会导致无法开机。仅反馈一下自己的案例供参考
    kevin3352002017-10-20 10:35 (4天前)回复
  2. 在terminal里面显示bbr已经启动了,但是仍然不能正常的翻墙,求大佬解答。 注:debian 7 x64 KVM 内核版本4.13.5 具体信息、: [信息] 检测内核最新版本中... [信息] 当前内核最新版本为 : 4.13.5 [信息] 检测到 当前内核版本[4.13.5] 已满足要求,继续... [信息] 检测到 BBR 已开启 ! [信息] 检测到 BBR 已开启并已正常启动 但是就是无法正常的翻墙!!,感觉一脸懵逼
    blackcloud23332017-10-08 21:41 回复
    • 能不能翻墙和BBR没关系,BBR只是优化TCP速度的。
      Toyo2017-10-08 23:25 回复
  3. 表示安装BBR之后 速度变慢了。怎么破? :lol:
    thee2017-10-07 01:45 回复
  4. 成功安装BBR。请问使用BBR和锐速后速度会叠加吗?
    thee2017-10-07 01:39 回复
    • BBR要求内核为4.9以后版本,集成于内核中,而锐速不支持4.9以后的版本,无法共存。就算想办法共存了,也会出问题。自己想象一个十字路口,两种 红绿灯和交警,各自指挥方式和风格不同,最后会导致什么。
      Toyo2017-10-07 12:21 回复
  5. Found linux image: /boot/vmlinuz-4.12.10-041210-generic Found initrd image: /boot/initrd.img-4.12.10-041210-generic Found linux image: /boot/vmlinuz-3.2.0-4-amd64 Found initrd image: /boot/initrd.img-3.2.0-4-amd64 Segmentation fault Message from [email protected] at Sep 3 06:12:08 ... kernel:[ 218.692815] general protection fault: 0000 [#1] SMP Message from [email protected] at Sep 3 06:12:08 ... kernel:[ 218.696014] Stack: Message from [email protected] at Sep 3 06:12:08 ... kernel:[ 218.696014] Call Trace: Message from [email protected] at Sep 3 06:12:08 ... kernel:[ 218.696014] Code: 83 c4 18 5b 5d 41 5c 41 5d 41 5e 41 5f c3 49 8b 7f 10 e8 67 51 04 00 eb d9 48 8b 47 10 48 8b 50 28 48 85 d2 75 05 48 83 c0 30 c3 e2 55 48 89 d5 53 48 89 f3 41 52 48 8b 7f 68 e8 d9 ff ff ff 每次安装到这里就putty就断线,再次连接安装就报内核错误,请问是什么原因呢?当前内核最新版本为 : 4.12.10
    小白2017-09-03 10:16 回复
    • 你的系统不支持更换内核,尝试更换其他系统,或者资讯IDC客服。
      Toyo2017-09-03 10:23 回复
      • 更换成Ubuntu 14.04 x64后安装成功,谢谢!
        小白2017-09-03 10:41 回复
  6. 安装第一步就是
     /boot/vmlinuz-4.12.6-041206-generic
    Generating grub.cfg ...
    Found linux image: /boot/vmlinuz-4.12.6-041206-generic
    Found initrd image: /boot/initrd.img-4.12.6-041206-generic
    Found linux image: /boot/vmlinuz-3.2.0-4-amd64
    Found initrd image: /boot/initrd.img-3.2.0-4-amd64
    Segmentation fault
    
    Message from [email protected] at Aug 15 08:07:55 ...
     kernel:[  158.822899] general protection fault: 0000 [#1] SMP
    
    Message from [email protected] at Aug 15 08:07:55 ...
     kernel:[  158.824017] Stack:
    
    Message from [email protected] at Aug 15 08:07:55 ...
     kernel:[  158.824017] Call Trace:
    
    Message from [email protected] at Aug 15 08:07:55 ...
     kernel:[  158.824017] Code: 83 c4 18 5b 5d 41 5c 41 5d 41 5e 41 5f c3 49 8b 7f 10 e8 67 51 04 00 eb d9 48 8b 47 10 48 8b 50 28 48 85 d2 75 05 48 83 c0 30 c3  e2 55 48 89 d5 53 48 89 f3 41 52 48 8b 7f 68 e8 d9 ff ff ff
    
    用的你推荐的系统,重装几遍系统一样问题,只能装锐速。始终装不了bbr
    永远的问题2017-08-16 00:30 回复
    • 应该是系统不支持或者其他方面有限制。
      Toyo2017-08-16 00:38 回复
  7. Linodes的VPS好像用不了这个一键脚本啊,一直提示[错误] 检测到 BBR 已开启但未正常启动,请检查 !
    兔姬菌2017-08-13 10:16 回复
    • Linode 更换内核似乎需要在后台调整什么才行。
      Toyo2017-08-13 10:50 回复
    • 进Linode管理页面按edit 看到内核选GRUB 2 保存后reboot下,再执行bash bbr.sh status。亲测 :mrgreen:
      orzsix2017-08-17 00:09 回复
1 2