镜像域名: doub.bid 提供给无翻墙能力的人使用,请大家互相通知~~ 有能力的建议访问 doub,io!
「学翻墙,需要先会翻墙,才能学习翻墙。」逗比交流群:Telegram

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

Shell脚本 Toyo 91评论
文章目录
[显示]
本文最后更新于 2017年3月22日 18:50 可能会因为没有更新而失效。如已失效或需要修正,请留言!

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


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

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

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

BBR 简单介绍

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

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

原始的TCP流量传输技术,时间比较长,技术太老了,TCP流量管理很乱,我们把 TCP流量比喻成 公路上的汽车流量,而TCP传输隧道就是 公路,那么:

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

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

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

系统要求

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.9

安装步骤

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

su

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

wget -N --no-check-certificate https://softs.pw/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

下载并运行脚本后,会自动检测并开始安装。

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

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

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

[信息]  VPS 重启中...

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

bash bbr.sh start

然后就会自动开启BBR。

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

使用方法

# 启动BBR,更换/升级内核并重启后,需要执行这个开启BBR!
bash bbr.sh start

# 关闭BBR
bash bbr.sh stop

# 查看BBR状态
bash bbr.sh status

# 升级BBR
bash bbr.sh
# 因为BBR是集成于内核中的,只是内核中的一部分,所以不一定要更新最新的内核,因为内核升级不一定是BBR升级。
注意:关闭BBR,需要重启VPS,所以脚本会提醒是否立即重启VPS。

卸载BBR

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

Debian更换内核教程 —— 4.10.x(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.pw” 之类的错误

这是无法解析我的域名,多半是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年02月27日,版本 v1.0.9

1.新增 支持内核 4.1x.x 后的版本

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


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

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

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

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

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(91)个小伙伴在吐槽
  1. 非常感谢偷油的一键脚本,有一事请教! 我才申请的google一年的vps,最基础的debian版本,能否直接用这个脚本? 非常感谢!
    meisqq2017-03-23 07:43 (20小时前)回复
    • 可以,不过需要第一步去 先切换为 root用户,否则会各种权限不足,安装失败。
      Toyo2017-03-23 12:14 (16小时前)回复
      • 非常感谢,已经搞定! 不过有个问题,只要重启VPS,就要重新启动SSSERVER。 有没有自启动的脚本? 看了几个教程,运行命令 sudo vim /etc/rc.local 编辑自启动配置文件。加入代码 怎么加?在哪里加? 加完了之后怎么退出?按键盘没有反应 我是小白,不好意思!
        meisqq2017-03-23 12:38 (16小时前)回复
  2. 不知道是什么原因,vultr安装使用都很顺利,但是换成linode之后,使用ubuntu和debian都是安装内核成功,最后一步提示:检测到 BBR 已开启但未正常启动,请检查 !
    Akring2017-03-03 13:42 回复
    • linode,我记得是可以后台直接更换4.9.x内核的,反正需要在后台调整什么才行。
      Toyo2017-03-03 19:58 回复
  3. 安装运行之后提示 “检测到BBR已开启,但未正常启动,请检查!”,请问这个要怎么破呀?
    julian2017-03-03 09:55 回复
    • 这个说明你更换内核后,开启了BBR,但是BBR没有运行或无法运行。
      尝试手动开启:https://doub.io/wlzy-15/
      如果还不行,那么说明系统和内核不兼容。
      Toyo2017-03-03 12:55 回复
  4. 用秋水的脚本最新内核是4.10,用你的脚本检测最新还是4.9啊
    jaz2017-02-26 23:12 回复
    • 已经更新脚本支持 4.1x.x,之所以只检测到 4.9,是因为当时 4.10还是测试版,所以只检测到 4.9版本。这几天没看,没留意到 4.10正式版出来了。
      Toyo2017-02-27 10:35 回复
  5. Info: TCP BBR has been successfully installed. nothing to do... 站长,我的vps抽风之后我重启,然后查看bbr显示这样,是已经启动的意思么,vps重启之后ss和bbr需要不需要重新启动呢?
    大人看的片叫大片2017-02-20 15:46 回复
    • 你用的不是我的脚本。
      这句话的意思是BBR正常开启。
      BBR是集成于内核的,VPS启动时,会随内核一起启动,只要开启后就不用管了。
      Toyo2017-02-20 17:04 回复
  6. 据说openvz可以上bbr了
    ku ro ki to m ko2017-02-17 23:12 回复
    • 一、步骤麻烦,错误率很高。
      二、既然是卖OpenVZ的IDC,那就不喜欢让你在OpenVZ的VPS上面安装这个,大部分IDC发现后会封VPS的。
      三、我手里OpneVZ的机器很少,早就不买这种低价超售鸡了。
      Toyo2017-02-18 01:22 回复
      • 可以,反正我对openvz无感
        kurokitomoko2017-02-18 18:56 回复
  7. [信息] 检测内核最新版本中... [信息] 当前内核最新版本为 : 4.9.9 [信息] 检测到 内核版本 已满足要求,继续... sysctl: cannot stat /proc/sys/net/ipv4/tcp_available_congestion_control: No such file or directory sysctl: cannot stat /proc/sys/net/core/default_qdisc: No such file or directory sysctl: cannot stat /proc/sys/net/ipv4/tcp_congestion_control: No such file or directory sysctl: cannot stat /proc/sys/net/ipv4/tcp_available_congestion_control: No such file or directory [错误] BBR 启动失败,请检查 ! ------------------------------------------------------------ 博主,求解,是什么问题
    whythatme2017-02-11 13:49 回复
    • 你是,更换内核并重启后,输入 bash bbr.sh start 后提示的这个?
      Toyo2017-02-11 14:11 回复
      • 是的,输入这个start命令后,就报错了
        doubiNIHAO2017-02-11 14:12 回复
        • dpkg -l|grep linux-image | awk '{print $2}'
          # 看一下当前内核是否有 4.9.9,如果有就手动开启试试,看看有没有报错
          echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
          echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
          sysctl -p
          # 如果还是报错,那可能还是内核安装有问题或者兼容性问题了,那我就不清楚了,建议重装其他系统测试。
          
          Toyo2017-02-11 15:11 回复
          • 有4.9.9,但是【sysctl -p】后报错:sysctl: cannot stat /proc/sys/net/core/default_qdisc: No such file or directory sysctl: cannot stat /proc/sys/net/ipv4/tcp_congestion_control: No such file or directory sysctl: cannot stat /proc/sys/net/core/default_qdisc: No such file or directory sysctl: cannot stat /proc/sys/net/ipv4/tcp_congestion_control: No such file or director ---------------------------------------------- 看来要换系统了,谢啦
            doubiNIHAO2017-02-11 15:17 回复
          • 真心搞不定,各种问题都有,希望博主可以写个樱花使用TCP BBR的教程,安装了SSR,但是加速不会添加,内核升级也搞不定,现在速度超级慢超级慢。
            doubiNIHAO2017-02-11 16:33 回复
            • 樱花Docker?算了,Docker是有诸多限制的,特别是樱花免费的Docker。
              Toyo2017-02-11 17:31 回复
              • 但是我看到有人说成功了,只是我怎么弄都不行,樱花应该是可以开启BBR的,推上还有人TCP也成功了,只是藏着不肯说,博主有空不妨试试啊
                doubiNIHAO2017-02-11 17:44 回复
                • 樱花Docker没劲,太烦,懒得玩。
                  Toyo2017-02-11 17:57
              • 不过他们都在说,最近docker很火啊,博主也该尝尝鲜啦,樱花拿来练手很不错
                doubiNIHAO2017-02-11 17:59 回复
  8. Connecting to softs.pw (softs.pw)|69.12.67.44|:443... connected. rectified Debian 8 x64安装的时候就提示上面这样,然后不动了,为什么呢,逗比大哥。
    pigshizhu2017-02-11 01:23 回复
    • 这个啊,链接到逗比云卡住了。。。可能是逗比云抽风了,也可能是你的VPS抽风,这个说不清,我测试正常。
      Toyo2017-02-11 03:35 回复
  9. toyo,我的内核版本当前是4.9.3-040903-generic,运行bash bbr.sh还是没有升级内核,不知道是不是你脚本的问题。 还有,问一下,内核版本对加速效果有没有影响,有没有必要升级到最新内核。
    Chasing2017-02-08 15:04 回复
    • 请升级脚本为最新的,在运行脚本!
      BBR只是集成于内核中的一个软件工具,内核更新不一定是BBR更新。
      Toyo2017-02-08 15:17 回复
  10. 请问connection refused是什么情况,第一次安装失败了,第二次在安装的时候就failed了,直接连不上了
    NickPaul2017-02-06 23:19 回复
    • 什么鬼,详细说明。
      Toyo2017-02-07 00:48 回复
  11. 脚本提示i686不支持,于是手动更换了4.9.6-i386内核,再运行脚本还是提示i686不支持,为什么呢?
    MOYO2017-01-30 01:52 回复
    • 内核官方没有提供i686的内核,所以我的脚本检测到内核是i686就不会执行。
      Toyo2017-01-30 09:24 回复
  12. 支持开机自启动吗
    Antairez2017-01-24 13:32 回复
    • 不需要开机自启动啊,BBR是集成在内核里的,如果你不关闭并重启VPS,除非更换内核,否则他不会自己关闭的,开机的时候也是自动跟随内核启动。
      Toyo2017-01-24 13:58 回复
      • 我重启服务器后,执行bash bbr.sh status,提示BBR没有启动 似乎还需要手动执行bash bbr.sh start才行?
        轻扬2017-02-13 17:40 回复
        • 当然啊,重启后还需要手动开启才算启动,教程里写了,脚本里也提示了,没看到?
          Toyo2017-02-13 18:51 回复
  13. 可以和kcptun一起使用吗?
    虞山飘渺峰2017-01-23 12:08 回复
    • KCPTUN是吧TCP转成KCP通过UDP的方法发出去,而BBR只加速TCP流量,所以不会叠加。
      Toyo2017-01-23 13:42 回复
  14. 回上一句话,不是稀奇,是我的机不行,又没有报错,就想知道是不是别人有成功的案例
    jmyz_04552017-01-21 20:49 回复
  15. lotserver 官方不支持 4.4 以上 Linux 内核 http://download.appexnetworks.com.cn/ls.do?m=availables 1、这意味着 bbr 和 lotserver 只能二选一?博主有办法么? 2、没钱测试,博主有测试过哪种技术快一点吗?
    jmyz_04552017-01-20 17:45 回复
    • lotserver和锐速,还有任何其他的 TCP单边优化技术,都不支持 最新的内核,因为内核版本更新太快了,这些TCP优化软件 根本没必要跟那么紧,毕竟最新的内核新功能也意味着会有新BUG,不适合生产环境。
      所以没有办法 同时使用 BBR 和 lotserver/锐速 。
      具体哪个好,自己测试,我观察不同机房和线路都不一样,简单的来说,锐速快的BBR慢,锐速慢的BBR快,具体哪个好,还是自己测试为准,别人的始终是别人的。
      Toyo2017-01-20 17:51 回复
      • 用了 BBR 再用 hybla/htcp 算法作用大吗?
        jmyz_04552017-01-20 18:31 回复
        • 有点重复了,没什么效果。
          Toyo2017-01-20 19:57 回复
          • 日本 Vultr Centos7 用最新内核+BBR脚本,开 SSR 不行呢,一点错没报,但就是连不上,好奇怪
            jmyz_04552017-01-20 20:49 回复
            • 防火墙,具体centos我也不清楚,我很少用,我主要是debian/ubuntu。
              Toyo2017-01-20 21:21 回复
              • 你的 Ubuntu 可以BBR+SSR来用? 听说国内的阿里云自带锐速?但是我的深圳ecs搜不到 lotserver 相关服务
                jmyz_04552017-01-20 21:25 回复
                • BBR+SSR怎么了?这又不是一类软件,又没有冲突,很稀奇吗?
                  国内阿里云是否自带锐速我不知道,就算有,也是在母鸡进程里,而不是在你小鸡进程里。
                  Toyo2017-01-21 12:17
        • BBR 和 hybla/htcp都是冲突的 三者你只能选一个。不过,当然是选bbr。
          JohnYang19972017-02-14 21:18 回复
  16. bash bbr.sh 这个好像没用,要从装一次才能更新
    jack2017-01-17 17:00 回复
    • 更新内核,当然要重新下载 最新的脚本,然后执行 bash bbr.sh ,脚本没有自动检测内核最新版本的功能,每次更新内核都要重新下载脚本。
      Toyo2017-01-17 20:15 回复
      • 好的,谢谢解答!
        jack2017-01-18 17:42 回复
  17. debian 7.0 X64,和博主一样的系统,从4.9.3更新到4.9.4之后VPS就启动不了了,SSH没有反映,还莫名在15分钟内消耗了15G以上的流量。。。好害怕违反TOS被删号。。
    aoby2017-01-16 20:57 回复
    • 4.9.4我并没有做测试,只是看内核更新了,就加上了。
      Toyo2017-01-16 23:26 回复
1 2