文章目录
- BBR是GOOGLE推出的拥塞控制算法,核心大体为:遇到丢包时,不单纯考虑“丢包率”这一个变量来控制速率,这种算法目前相比于Cubix协议能更好地提升传输速率。
- 自带的内核版本是Linux 4.9及以上的系统已经内置BBR但默认为关闭状态。 最新版本诸如Ubuntu 19.04等已经默认开启BBR,不再需要手动开启。 但是诸如 CentOS 8.0+, Debian 9.5+, Ubuntu 18.04/18.10+ 等近几年的需要通过以下命令开启: echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl -p 重启之后: lsmod | grep bbr 若类似下图所示,即开启成功:
- 目前 CentOS 6.0/7.0, Debian 8, Ubuntu 16.04/16.10 等再老一点的系统建议为升级至最新版,如果实在不想升级,可以升级Linux内核版本,参考秋水逸冰的脚本: wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh 安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。 重启之后: lsmod | grep bbr 若类似下图所示,即开启成功:
- 1. 可以不安装BBR吗? 可以不开启,但是大多数情况下建议开启。针对国内腾讯云/阿里云等1Mbps小宽带则可以不开启。 2. 国内的服务器有必要开启BBR吗? 绝大多数情况不需要,实测腾讯云5M固定宽带开启BBR后通过HTTPS下载文件最高速度无法达到带宽的理论最大值,关闭后则可以达到理论最大值(512kb/s)。 3. BBR对UDP协议是否有用? 无用。BBR只针对TCP进行加速,对UDP不奏效。但是即将面世的基于UDP的HTTP3会采用BBR算法。 4. BBR是否需要用户端的支持? 否,BBR是单边加速算法,仅在服务器端安装即可成功加速。 5. 开启了BBR还是很慢怎么办? 首先检查BBR是否开启。 若已经开启,那说明:①你的服务器带宽质量真的很差,或者②你自己的带宽质量差,或者③网络极度拥堵。建议进行控制变量法排除问题。 6. OpenVZ可以开启BBR么? 首先,类似于KVM、HyperV及VMWare的那种可以自定义内核的虚拟机才可以开启BBR,如果你的VPS是基于OpenVZ架构的,可能无法直接开启BBR,需要通过别的方法才能启动BBR;如果是基于XEN架构的VPS,请先确定是否可以自定义内核,因为有些Xen架构的VPS是不允许自定义内核的,通过这个命令可以看到内核版本:uname -r,若小于4.9,则无法开启。 7. 如何停止/关闭/暂停/卸载/删除BBR? 配置了BBR之后,如果不想要了需要卸载的话,可以删除/etc/sysctl.conf上面添加的net.core.default_qdisc=fq和net.ipv4.tcp_congestion_control=bbr,然后重启。 具体操作大体如下: vim /etc/sysctl.conf 让光标移到对应的行,按dd(dd即为vim命令的删除整行) 再按:wq(别漏了冒号,这个是vim的保存命令) 8. BBR是否会多消耗服务器流量? 会,但是消耗的流量微乎其微,大约占到正常流量的5%左右。 9. 还有别的方法可以再加速吗? 有,还可以在开启BBR的同时启动TCP Fast Open: echo "net.ipv4.tcp_fastopen=3" >> /etc/sysctl.conf && sysctl -p 其中参数3的含义:1 开启客户端,2 开启服务端,3 都开启。 10. IPv6怎么开启BBR? BBR默认同时开启IPv4和IPv6的算法,无需另外开启IPv6。
- 一文解释清楚GOOGLE BBR拥塞控制算法原理 IPv6 如何开启 BBR 和 TCP Fast Open Debian 9开启Google BBR 题图创意参考自:How to Boost Linux Server Internet Speed with TCP BBR
针对AWS/GCP等海外云服务器不稳定之状况,需要开启GOOGLE的BBR TCP拥塞控制协议以迅速加快互联网访问。经实际测验(2019年11月21日下午16点),AWS的Japan东京D区通过BBR加速后可以实现25KB/s的下载速度迅速提升至500KB/s。
BBR是GOOGLE推出的拥塞控制算法,核心大体为:遇到丢包时,不单纯考虑“丢包率”这一个变量来控制速率,这种算法目前相比于Cubix协议能更好地提升传输速率。
自带的内核版本是Linux 4.9及以上的系统已经内置BBR但默认为关闭状态。
最新版本诸如Ubuntu 19.04等已经默认开启BBR,不再需要手动开启。
但是诸如 CentOS 8.0+, Debian 9.5+, Ubuntu 18.04/18.10+ 等近几年的需要通过以下命令开启:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
重启之后:
lsmod | grep bbr
若类似下图所示,即开启成功:

目前 CentOS 6.0/7.0, Debian 8, Ubuntu 16.04/16.10 等再老一点的系统建议为升级至最新版,如果实在不想升级,可以升级Linux内核版本,参考秋水逸冰的脚本:
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。
重启之后:
lsmod | grep bbr
若类似下图所示,即开启成功:

1. 可以不安装BBR吗?
可以不开启,但是大多数情况下建议开启。针对国内腾讯云/阿里云等1Mbps小宽带则可以不开启。
2. 国内的服务器有必要开启BBR吗?
绝大多数情况不需要,实测腾讯云5M固定宽带开启BBR后通过HTTPS下载文件最高速度无法达到带宽的理论最大值,关闭后则可以达到理论最大值(512kb/s)。
3. BBR对UDP协议是否有用?
无用。BBR只针对TCP进行加速,对UDP不奏效。但是即将面世的基于UDP的HTTP3会采用BBR算法。
4. BBR是否需要用户端的支持?
否,BBR是单边加速算法,仅在服务器端安装即可成功加速。
5. 开启了BBR还是很慢怎么办?
首先检查BBR是否开启。
若已经开启,那说明:①你的服务器带宽质量真的很差,或者②你自己的带宽质量差,或者③网络极度拥堵。建议进行控制变量法排除问题。
6. OpenVZ可以开启BBR么?
首先,类似于KVM、HyperV及VMWare的那种可以自定义内核的虚拟机才可以开启BBR,如果你的VPS是基于OpenVZ架构的,可能无法直接开启BBR,需要通过别的方法才能启动BBR;如果是基于XEN架构的VPS,请先确定是否可以自定义内核,因为有些Xen架构的VPS是不允许自定义内核的,通过这个命令可以看到内核版本:uname -r,若小于4.9,则无法开启。
7. 如何停止/关闭/暂停/卸载/删除BBR?
配置了BBR之后,如果不想要了需要卸载的话,可以删除/etc/sysctl.conf上面添加的net.core.default_qdisc=fq和net.ipv4.tcp_congestion_control=bbr,然后重启。
具体操作大体如下:
vim /etc/sysctl.conf
让光标移到对应的行,按dd(dd即为vim命令的删除整行)
再按:wq(别漏了冒号,这个是vim的保存命令)
8. BBR是否会多消耗服务器流量?
会,但是消耗的流量微乎其微,大约占到正常流量的5%左右。
9. 还有别的方法可以再加速吗?
有,还可以在开启BBR的同时启动TCP Fast Open:
echo "net.ipv4.tcp_fastopen=3" >> /etc/sysctl.conf && sysctl -p
其中参数3的含义:1 开启客户端,2 开启服务端,3 都开启。
10. IPv6怎么开启BBR?
BBR默认同时开启IPv4和IPv6的算法,无需另外开启IPv6。
可以不开启,但是大多数情况下建议开启。针对国内腾讯云/阿里云等1Mbps小宽带则可以不开启。
绝大多数情况不需要,实测腾讯云5M固定宽带开启BBR后通过HTTPS下载文件最高速度无法达到带宽的理论最大值,关闭后则可以达到理论最大值(512kb/s)。
无用。BBR只针对TCP进行加速,对UDP不奏效。但是即将面世的基于UDP的HTTP3会采用BBR算法。
否,BBR是单边加速算法,仅在服务器端安装即可成功加速。
首先检查BBR是否开启。
若已经开启,那说明:①你的服务器带宽质量真的很差,或者②你自己的带宽质量差,或者③网络极度拥堵。建议进行控制变量法排除问题。
首先,类似于KVM、HyperV及VMWare的那种可以自定义内核的虚拟机才可以开启BBR,如果你的VPS是基于OpenVZ架构的,可能无法直接开启BBR,需要通过别的方法才能启动BBR;如果是基于XEN架构的VPS,请先确定是否可以自定义内核,因为有些Xen架构的VPS是不允许自定义内核的,通过这个命令可以看到内核版本:uname -r,若小于4.9,则无法开启。
配置了BBR之后,如果不想要了需要卸载的话,可以删除/etc/sysctl.conf上面添加的net.core.default_qdisc=fq和net.ipv4.tcp_congestion_control=bbr,然后重启。
具体操作大体如下:
vim /etc/sysctl.conf
让光标移到对应的行,按dd(dd即为vim命令的删除整行)
再按:wq(别漏了冒号,这个是vim的保存命令)
会,但是消耗的流量微乎其微,大约占到正常流量的5%左右。
有,还可以在开启BBR的同时启动TCP Fast Open:
echo "net.ipv4.tcp_fastopen=3" >> /etc/sysctl.conf && sysctl -p
其中参数3的含义:1 开启客户端,2 开启服务端,3 都开启。
BBR默认同时开启IPv4和IPv6的算法,无需另外开启IPv6。
沙发 🙂