还有谁不知道我的网站域名更换为 doub.io 了?这都快两个月了,还有人不知道,一取消 301重定向,立马就找不到了!
逗比交流群: 531201358 / Telegram

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

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

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


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

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

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

系统要求

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

安装步骤

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

su -root

输入并回车后,会提示让你输入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,需要重启VPS,所以脚本会提醒是否立即重启VPS。

因为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年01月27日,版本 v1.0.8

1.新增 自动检测最新内核版本功能

—— 不需要每次内核一更新,脚本也要更新了,自动检测代码来自泰迪的BBR脚本:https://teddysun.com/489.html

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


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

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

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

赞 (27)
发表我的评论
取消评论
表情

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(79)个小伙伴在吐槽
  1. 据说openvz可以上bbr了
    ku ro ki to m ko2017-02-17 23:12 (3天前)回复
    • 一、步骤麻烦,错误率很高。
      二、既然是卖OpenVZ的IDC,那就不喜欢让你在OpenVZ的VPS上面安装这个,大部分IDC发现后会封VPS的。
      三、我手里OpneVZ的机器很少,早就不买这种低价超售鸡了。
      Toyo2017-02-18 01:22 (2天前)回复
      • 可以,反正我对openvz无感
        kurokitomoko2017-02-18 18:56 (2天前)回复
  2. [信息] 检测内核最新版本中... [信息] 当前内核最新版本为 : 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 回复
  3. 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 回复
  4. toyo,我的内核版本当前是4.9.3-040903-generic,运行bash bbr.sh还是没有升级内核,不知道是不是你脚本的问题。 还有,问一下,内核版本对加速效果有没有影响,有没有必要升级到最新内核。
    Chasing2017-02-08 15:04 回复
    • 请升级脚本为最新的,在运行脚本!
      BBR只是集成于内核中的一个软件工具,内核更新不一定是BBR更新。
      Toyo2017-02-08 15:17 回复
  5. 请问connection refused是什么情况,第一次安装失败了,第二次在安装的时候就failed了,直接连不上了
    NickPaul2017-02-06 23:19 回复
    • 什么鬼,详细说明。
      Toyo2017-02-07 00:48 回复
  6. 脚本提示i686不支持,于是手动更换了4.9.6-i386内核,再运行脚本还是提示i686不支持,为什么呢?
    MOYO2017-01-30 01:52 回复
    • 内核官方没有提供i686的内核,所以我的脚本检测到内核是i686就不会执行。
      Toyo2017-01-30 09:24 回复
  7. 支持开机自启动吗
    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 (7天前)回复
        • 当然啊,重启后还需要手动开启才算启动,教程里写了,脚本里也提示了,没看到?
          Toyo2017-02-13 18:51 (7天前)回复
  8. 可以和kcptun一起使用吗?
    虞山飘渺峰2017-01-23 12:08 回复
    • KCPTUN是吧TCP转成KCP通过UDP的方法发出去,而BBR只加速TCP流量,所以不会叠加。
      Toyo2017-01-23 13:42 回复
  9. 回上一句话,不是稀奇,是我的机不行,又没有报错,就想知道是不是别人有成功的案例
    jmyz_04552017-01-21 20:49 回复
  10. 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 (6天前)回复
  11. bash bbr.sh 这个好像没用,要从装一次才能更新
    jack2017-01-17 17:00 回复
    • 更新内核,当然要重新下载 最新的脚本,然后执行 bash bbr.sh ,脚本没有自动检测内核最新版本的功能,每次更新内核都要重新下载脚本。
      Toyo2017-01-17 20:15 回复
      • 好的,谢谢解答!
        jack2017-01-18 17:42 回复
  12. 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