Windows下BBRv2开启和验证
Windows BBR适用版本。
Windows 11 22H2 以上 支持 TCP BBR 拥塞控制,具体系统版本是从10.0.22621版本开始,而Windows Server 2025也支持此功能。
注意:BBR只会加速上行TCP流量。
Windows查看当前TCP拥塞控制(Powershell 管理员界面)
PS C:\Users\admin> Get-NetTCPSetting | Select SettingName, CongestionProvider
SettingName CongestionProvider
----------- ------------------
Automatic
InternetCustom CUBIC
DatacenterCustom CUBIC
Compat NewReno
Datacenter CUBIC
Internet CUBIC
Windows修改为BBRv2 (使用Powershell 管理员权限)
netsh int tcp set supplemental Template=Internet CongestionProvider=bbr2
netsh int tcp set supplemental Template=Datacenter CongestionProvider=bbr2
netsh int tcp set supplemental Template=Compat CongestionProvider=bbr2
netsh int tcp set supplemental Template=DatacenterCustom CongestionProvider=bbr2
netsh int tcp set supplemental Template=InternetCustom CongestionProvider=bbr2
Windows验证BBR
PS C:\Users\admin> Get-NetTCPSetting | Select SettingName, CongestionProvider
SettingName CongestionProvider
----------- ------------------
Automatic
InternetCustom BBR2
DatacenterCustom BBR2
Compat BBR2
Datacenter BBR2
Internet BBR2
Windows切换为默认拥塞控制 (因为可能会造成本地 TCP 连接无法使用,比如导致Hyper-V不能连接)
netsh int tcp set supplemental Template=Internet CongestionProvider=cubic
netsh int tcp set supplemental Template=Datacenter CongestionProvider=cubic
netsh int tcp set supplemental Template=Compat CongestionProvider=newreno
netsh int tcp set supplemental Template=DatacenterCustom CongestionProvider=cubic
netsh int tcp set supplemental Template=InternetCustom CongestionProvider=cubic
Debian系列更新内核开启BBRv3 (包括Ubuntu)
安装 Xanmod 内核 - 使用南京大学镜像站
wget -qO - https://dl.xanmod.org/archive.key | sudo gpg --dearmor -vo /etc/apt/keyrings/xanmod-archive-keyring.gpg
# 从 XanMod 官方网站下载 GPG 公钥,并转换成二进制格式,保存到系统的 keyrings 目录中
echo 'deb [signed-by=/etc/apt/keyrings/xanmod-archive-keyring.gpg] https://mirror.nju.edu.cn/xanmod releases main' | sudo tee /etc/apt/sources.list.d/xanmod-release.list
# 将 XanMod 软件源添加到系统的 APT 软件源列表中,并指定使用刚才导入的公钥进行验证
sudo apt update && sudo apt install linux-xanmod-x64v3
# 更新软件包索引列表,并安装 xanmod 官方提供的 x64v3 架构的 Linux 内核包
systemctl reboot
# 重启,使用新内核,默认会开启BBRv3
RHEL8-10系列开启BBRv1 (包括Rocky)
# 将 BBR 设置为系统默认的 TCP 拥塞控制算法,追加写入 /etc/sysctl.conf 文件(需要 root 权限)
echo "net.ipv4.tcp_congestion_control = bbr" | sudo tee -a /etc/sysctl.conf
# 将流量调度算法设置为 fq(Fair Queueing),是开启 BBR 推荐的默认队列调度器,同样追加写入配置文件
echo "net.core.default_qdisc = fq" | sudo tee -a /etc/sysctl.conf
# 立即应用 /etc/sysctl.conf 中所有配置,使修改生效
sudo sysctl -p
# 查看当前生效的 TCP 拥塞控制算法,确认是否是 bbr
sysctl net.ipv4.tcp_congestion_control
PS:Debian系列如果内核大于4.9 也可以用上述办法不更新内核不重启开启BBRv1
FreeBSD开启 BBR
# 使用 sysrc 命令将 tcp_rack 和 tcp_bbr 内核模块添加到启动时自动加载列表中
# 这样系统启动时会自动加载这两个 TCP 拥塞控制相关的模块
sysrc kld_list+="tcp_rack tcp_bbr"
# 将配置写入 /etc/sysctl.conf 文件,设置 TCP 默认使用的拥塞控制算法为 bbr
# 该设置在系统启动时由 sysctl 读取并应用
echo 'net.inet.tcp.functions_default=bbr' >> /etc/sysctl.conf
# 重启系统,让内核模块加载并应用新的 sysctl 配置
reboot
# 系统启动后,查看当前默认的 TCP 拥塞控制算法,确认是否成功开启 BBR
sysctl net.inet.tcp.functions_default