镜像域名: doub.bid 提供给无翻墙能力的人使用~ 有能力的建议访问主域名(注意把"点"改为".") doub点io
投稿文章 | 广告投放 | Telegram 群组 / 公告频道

比锐速还强的 TCP拥塞控制技术 —— TCP-BBR 测试及开启教程

网络资源 Toyo 56评论
文章目录
[显示]
本文最后更新于 2017年6月11日 02:36 可能会因为没有更新而失效。如已失效或需要修正,请留言!

这几天BBR很火的样子,我就半夜测试一下。BBR和锐速都属于TCP拥塞控制技术,虽然这类技术互联网上面不少,不过我都不是很了解。

本文章仅为我个人的测试,各地区测试情况不一样,而且BBR还处于开发初期并且开源,而锐速则已经停止开发了。


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

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

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

BBR 简单介绍

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

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

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

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

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

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

启动步骤

首先是教程,本人喜欢Debian,所以我先使用 Debian 7 / 8 x64 系统来做测试。Ubuntu随后考虑加上。

每一个步骤,我都会加上VPS中执行后的提示,本教程以64位为例。但是各个系统可能会存在差异,所以仅为参考。

在 2016-12-05 21:00 更新的 4.9.0-rc8 内核已经支持了TCP-BBR,最新内核看这里

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

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

sudo su

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


uname -m

使用这个命令会返回你的系统位数,如果是 x86_64 那就是64位,如果是 i386 或 386 那就是32位,如果是 i686 或 686,那么不支持

下载内核文件(64位系统)

wget -O linux-image-4.10.1-amd64.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-image-4.10.1-041001-generic_4.10.1-041001.201702260735_amd64.deb

下载内核文件(32位系统)

wget -O linux-image-4.10.1-i386.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-image-4.10.1-041001-generic_4.10.1-041001.201702260735_i386.deb

点击展开 查看VPS提示

安装内核(64位)

dpkg -i linux-image-4.10.1-amd64.deb

安装内核(32位)

dpkg -i linux-image-4.10.1-i386.deb

点击展开 查看VPS提示

列出并删除旧内核

列出VPS 除了刚才安装的内核以外的 所有内核名称:

注意:这个代码是排除了刚才安装的内核,所以不会显示刚才安装的那个内核。删除了多余的内核后,就会什么都不显示!
dpkg -l|grep linux-image | awk '{print $2}' | grep -v 'linux-image-[4-9].[0-9]*.'
root@bbr1:~# dpkg -l|grep linux-image | awk '{print $2}' | grep -v 'linux-image-[4-9].[0-9]*.'
linux-image-3.16.0-4-amd64
linux-image-amd64

我使用的VPS是 3.16.0-4-amd64 内核的,所以删除这两个内核: linux-image-3.16.0-4-amd64、linux-image-amd64

删除旧内核:

apt-get purge 旧内核名称
# !!!!示例!!!!
# 比如我是有这两个内核,所以我把这两个删掉,不要照着我的这个步骤做,自己换成你VPS的内核名称!!!
apt-get purge linux-image-3.16.0-4-amd64
apt-get purge linux-image-amd64
# !!!!示例!!!!

删除旧内核的过程中会提示你是否继续,选择 Y ,然后还会提示你是否终止删除内核的行为,选择 NO

点击展开 查看VPS提示

更新 grub 系统引导文件并重启VPS

# 更新系统引导文件
update-grub
# 重启VPS,执行后SSH链接会断开,等十几秒再重新连接继续执行下面的启动命令。
reboot
# VPS提示

root@bbr1:~# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.10.1-040900rc8-generic
Found initrd image: /boot/initrd.img-4.10.1-040900rc8-generic
done

开启bbr

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

执行这个保存生效更改。

sysctl -p
# VPS提示

root@bbr1:~# sysctl -p
net.ipv6.conf.all.accept_ra = 2
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

关闭bbr

sed -i '/net\.core\.default_qdisc=fq/d' /etc/sysctl.conf && sed -i '/net\.ipv4\.tcp_congestion_control=bbr/d' /etc/sysctl.conf
sysctl -p

执行完上面的代码,就使用reboot重启VPS后才能关闭bbr,重启后再用下面的查看bbr状态代码,查看是否关闭了。

reboot

查看bbr是否开启

执行下面命令,如果结果中有bbr,即证明你的内核已开启bbr。

sysctl net.ipv4.tcp_available_congestion_control

执行下面命令,看到有 tcp_bbr 模块,即说明bbr已启动

lsmod | grep bbr
# VPS提示
root@bbr1:~# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno

# ================================================

root@bbr1:~# lsmod | grep bbr
tcp_bbr                20480  0 

卸载BBR

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

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

裸 SS/锐速+SS/BBR+SS 速度对比

本人的测试环境是:晚上23:00点,联通运营商,美国渣渣VPS。

各个地区和运营商都存在差别,我的测试 速度对比仅供参考。谷歌网盘单线程下载测速地址:100MB

因为是半夜测试的,再加上用的美国垃圾小鸡,所以 裸SS 速度感人。

使用 锐速+SS 后,单线程下载测速,翻了十倍,Youtube 也能看 1080P流畅 了。

换成 BBR+SS 后,单线程又在 锐速+SS 的基础上翻了一倍,Youtube 速度有上升了一个档次 1440P 倒是勉强,1080P可以随便拖拉了。

虽然 Youtube 的数值不是很准,但是还是有点用的,数值太低同样也代表速度不行。

总其以上,锐速(ServerSpeed)的技术已经成熟、定型,加速效果还是不错的,但是不再更新和维护了。

而 TCP-BBR 属于新生的技术,处于开发初期,买没有完善成熟,未来的潜力相信还好更好。

所以总的来说:非折腾党,还是建议先使用锐速观望 TCP-BBR 一段时间,这是最稳妥的办法。

裸 SS

锐速+SS

BBR+SS

本文章安装步骤来自:https://github.com/iMeiji/shadowsocks_install/wiki/开启TCP-BBR拥塞控制算法

转载请超链接注明:逗比根据地 » 比锐速还强的 TCP拥塞控制技术 —— TCP-BBR 测试及开启教程
责任声明:本站一切资源均原创或收集自互联网,仅作交流学习之用,请勿用作商业!如造成任何后果,本站概不负责!

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

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(56)个小伙伴在吐槽
  1. https://suiyuanjian.com/139.html 我写了个ssr+bbr一键脚本,可以多多交流嘛~
    随缘箭2017-06-10 18:06 回复
  2. 执行lsmod | grep bbr 后 出现tcp_bbr 20480 0(请问这两个数字什么意思,和速度有关吗?)
    nobut2017-05-21 17:17 回复
  3. debian7,686,下载安装4.10的内核也能开启BBR
    哈哈2017-05-11 01:26 回复
  4. REboot 後 就沒法開機 也ping不到 請問是什麼因數 有辦法解決嗎?
    QQ222017-04-22 21:43 回复
    • 注意:本教程涉及到VPS更换内核,所以如果步骤错误,或者VPS不兼容最新的内核,会导致无法开机等错误,请勿用于生产环境!
      
      解决办法,重装系统。
      Toyo2017-04-22 22:34 回复
  5. 逗逼,请回我一下,我装了bbr后速度反而变慢了,这是怎么回事啊?好尴尬
    Aaron2017-03-29 20:03 回复
    • 那可能,BBR不适合你的VPS或者你的网络。
      Toyo2017-03-29 20:41 回复
  6. bbr确实没有吹得那么厉害.
    南琴浪2017-03-16 17:26 回复
  7. 这个要看运气,我用了一下BBR,又换回锐速了。锐速是很暴力的加速,因此效果非常明显,BBR有效果,但是不明显。不过从稳定性上来说,比锐速要好一些。
    loren2017-03-10 17:34 回复
  8. 我的 virmach 启用了感觉一点效果都没有。。。
    老杨2017-02-13 17:09 回复
    • 我是买了virmach直接上bbr,所以没有对比,感觉现在直接看720P都很流畅啊。
      n2017-03-05 17:26 回复
      • 我也用的virmach,用了BBR效果碉堡,Y2B直接上4K了。。。
        vir2017-04-06 10:04 回复
  9. 四川电信用digitalocean的阿姆斯特丹节点,使用BBR+kcptun,youtube一般能在10000kbps以上 :razz:
    mokuo2017-01-31 16:54 回复
    • BBR和KCP并不能互相叠加,KCP是吧TCP封装为KCP通过UDP传输,而BBR只会优化TCP。
      Toyo2017-01-31 17:08 回复
  10. 一定要purge旧的内核吗? 会不会机毁人亡?
    grey_form2017-01-19 02:55 回复
    • 不删除旧内核,你重启VPS后,系统可能会尝试把所有内核都启动,然后会就冲突,无法开机。
      这是必须的步骤,删除旧内核,新内核也可能会不兼容导致重启开机失败,这都是有可能发生的,所以不建议在生产环境下进行。
      Toyo2017-01-19 10:35 回复
      • ubuntu vps 不需要删除旧内核的, 因为默认情况重启后就会用最新内核来启动,旧内核删不删都无所谓, 保留的话可以在需要时重启用 grub 引导菜单选择旧内核启动(用 vnc 连 vps 控制台就能看到启动界面的 grub 引导菜单了)
        雪梨2017-05-12 20:36 回复
  11. 已经更新到4.9.2-040902-generic内核了
    DD2017-01-10 22:57 回复
    • 教程已经更新。
      Toyo2017-01-11 00:21 回复
  12. apt-get purge 旧内核名称 这个操作一直失败,最后换了apt-get --purge autoremove 才成功,不知道为什么
    DD2017-01-10 13:18 回复
  13. 这个bbr除了加速ss外,还有别的用途么?对网站本身有加速效果?
    禅猫2017-01-09 03:20 回复
    • BBR是监控网卡,加速任何经过网卡的TCP流量。
      不过BBR相对来说不适合大量短链接,会导致BBR炸掉,ss下载一个大文件,你可以理解为TCP长链接,而网站的话访客访问网站,出现的都是短链接,并不适合BBR,当然这只是理论,你也可以试试。
      Toyo2017-01-09 07:40 回复
      • 锐速是否适合网站使用? 如果都不适合的话(效果小到可以忽略),建站用openvz更划算一点?
        zero2017-01-13 23:38 回复
        • 其实大部分TCP拥塞控制技术 都是主要针对长连接的,短链接相对弱势,效果是有的,比如我网站就加了锐速,但是并不明显。
          openvz建站没问题,但是你要找个稳定超售较少的,简单的说就是 口碑好并且openvz不是特别便宜的那种,毕竟一分钱一分货,价格越低意味着超售越高。
          我比较推荐Ramnode我现在用的是Ramnode的KVM洛杉矶,去年以前是Openvz的个人感觉速度一般,但是很稳定,建站已经快两年了没有出现宕机等服务器故障。
          Toyo2017-01-14 00:26 回复
          • 赞同,openvz 很考验 rp,因为理论上 openvz 性能更高,但是遇上恶邻就会很吃亏。总的来说还是 kvm 或 xen 更稳妥。
            雪梨2017-05-12 20:38 回复
      • 还有 炸了是什么意思? 像锐速一样瞬间内存占用激增然后宕机?
        zero2017-01-13 23:42 回复
        • 任何一种TCP拥塞控制技术,在处理大量链接,特别是短链接(迅速的创建链接传输并关闭)的时候,都有这种问题,当然量要足够大,对内存使用可能会徒增,也可能直接蒙逼。
          Toyo2017-01-14 00:28 回复
          • 我尝试开迅雷模拟连接激增的情况,使用锐速512M内存直接占满宕机,BBR内存占用区别不大 不过针对这种短连接还有争议
            zero2017-01-14 10:22 回复
            • 是的,我也没学过这方面知识,这些都是看别人科普文章了解到的。
              Toyo2017-01-14 11:43 回复
  14. Dedian 32位能运行不,?128m小内存。 :razz: 专跑ss
    禅猫2017-01-08 02:49 回复
    • 128MB的内存足够了,主要是内核兼容性和系统兼容性问题。具体能不能还要试一试。
      Toyo2017-01-08 12:52 回复
    • 试成功了吗?同样配置
      longalong2017-02-16 17:55 回复
  15. 求帮助 :cry: :cry: 按照步骤一步一步来 在执行update-grub时候报错了 root@debian:~# update-grub Searching for GRUB installation directory ... No GRUB directory found. To create a template run 'mkdir /boot/grub' first. To install grub, install it manually or try the 'grub-install' command. ### Warning, grub-install is used to change your MBR. ###
    kamille2017-01-04 13:13 回复
  16. 海南电信,Vultr洛杉矶VPS,安装SSR+BBR,终于可以爽看youtube 1080p视频了。感动哭! :cry: 补充一个:删除内核apt-get purge linux-image-3.16.0-4-amd64之后,linux-image-amd64也跟着被删除了,执行apt-get purge linux-image-amd64会提示没有安装。我系统是Debian 8 x64。
    Yun2016-12-30 14:05 回复
  17. 移动4g连着,表示裸连秒杀加速 :sad: :sad:
    ss2016-12-28 21:34 回复
    • 我之前也发现广东移动 4g 下速度很快,但是广东电信宽带下就必须 bbr 才可用了。
      雪梨2017-05-12 20:43 回复
  18. 请问博主的ss除了开启BBR,还有做其他优化吗? ss libev服务端?
    小db2016-12-26 01:22 回复
    • 基本没什么了。
      Toyo2016-12-26 11:03 回复
  19. 昨天按照教程安装了bbr内核,结果开不了机了。virmach的kvm不支持这个内核还是怎么的
    aoby2016-12-24 20:49 回复
    • 说明内核安装失败或者不完整等等,所以无法启动内核。
      Toyo2016-12-24 21:05 回复
      • 所以能不能去掉“删除旧内核”步骤呢,因为旧内核并不影响重启后用最新内核启动, 而万一新内核启动不了,还能 vnc 连上 vps 控制台在 grub 引导菜单选择旧内核启动。
        雪梨2017-05-12 20:44 回复
  20. 谷歌是在生产环境部署后,才发表论文开源的,BBR属于比较成型的技术了
    yearliny2016-12-18 10:26 回复
  21. 似乎好像还是锐速厉害一点。。。测试了下,我 youtube 看视频还是锐速的给力一些
    BearX2016-12-17 21:46 回复
    • 加速效果,主要看VPS和路由和本地运营商,哪个好用用哪个,更何况BBR才刚刚开放测试而已。
      Toyo2016-12-17 21:53 回复
  22. 可以使用锐速一文的开启高级算法吗?
    大丁丁2016-12-16 22:54 回复
    • 什么鬼?锐速文章中的高级算法指的是,锐速的设置,而不是VPS的。你不安装锐速是没有的。锐速不支持 最新的4.9.0版本内核。
      Toyo2016-12-16 23:45 回复
  23. 不知道为什么,BBR在看视频时可以达到很理想的速度,但是看直播的时候却并不高,基本只有一倍或者0.5倍的速度提升,然后可能要手动设置高画质才会提高传输速度。
    SunZz2016-12-14 18:33 回复
  24. 小逗~请问一下,安装bbr之后,怎么禁用bbr呀,没装bbr之前没记得记录youtube下载情况,现在想对比一下
    小小逗2016-12-10 10:20 回复
    • 文章已经添加了关闭bbr的代码。
      Toyo2016-12-10 10:40 回复
  25. 以后怎么更新啊
    啊GFW你怎么还不倒2016-12-09 22:35 回复
    • 依赖于内核,更新需要更新内核。
      Toyo2016-12-10 00:24 回复
  26. 安装kcp Youtube 1080P>4000 安装BBR 3000Kbps 打错了 感觉慢
    阿里路呀2016-12-09 17:54 回复
  27. fj电信100M 上海出口 纽约5刀 kvm 高延迟高丢 安装kcp Youtube 1080P>4000 安装BBR 300Kbps BBR只是对建站 单边加速有用吧? 还是我姿势不对
    阿里路呀2016-12-09 17:53 回复
    • 无论是建站还是SS,都尽量用西海岸的美国服务器,东海岸的太远了,延迟和丢包感人。。。kcp和BBR和锐速完全不一样的原理,没有可比性,KCP需要消耗数倍的流量,并且对于运营商限速UDP的地区来说 还不如不用,而且KCP是双边的,拿着双边的和单边的比本来就不公平。。。
      Toyo2016-12-09 18:04 回复
  28. BBR就像打鸡血一样,整个坛子都变成 全球BBR交流论坛了。还是等稳定下来再看看吧。。
    雨落无声2016-12-09 09:47 回复
    • 感谢分享,我刚刚实测,移动速度晚上翻倍,联通看480P不卡了,进步太大了,昨天白天试锐速就不行了,移动还慢了感觉,看同一个视频文件
      你懂的2017-02-11 23:10 回复