0.前言

在 Windows11 22H2 之后, 也可以为 TCP 开启 BBR2 的拥塞控制算法了 — 尽管有一些小小的问题需要处理。

1.开启 BBR2

使用管理员权限 Powershell 执行以下指令查看系统当前的控制算法:

Get-NetTCPSetting | Select SettingName, CongestionProvider

输出

SettingName      CongestionProvider
-----------      ------------------
Automatic
InternetCustom   CUBIC
DatacenterCustom CUBIC
Compat           NewReno
Datacenter       CUBIC
Internet         CUBIC

可以看到都是 CUBIC, 中间还混了个 NewReno.

使用管理员权限 Powershell 执行以下指令切换至 BBR2 模式, 并重启电脑.

netsh int tcp set supplemental Template=InternetCustom   CongestionProvider=bbr2
netsh int tcp set supplemental Template=DatacenterCustom CongestionProvider=bbr2
netsh int tcp set supplemental Template=Compat           CongestionProvider=bbr2
netsh int tcp set supplemental Template=Internet         CongestionProvider=bbr2
netsh int tcp set supplemental Template=Datacenter       CongestionProvider=bbr2

即可开启 BBR2.

2.小 Bug 修复

因为当前的 BBR2 尚未完善对环回接口大分段(Large MTU)的处理, 会导致本地 TCP 握手或数据收发出现阻塞或超时. 因此, 要先关闭环回接口大分段(Large MTU).

使用管理员权限 Powershell 执行以下指令

netsh interface ip show global

输出

常规全局参数
---------------------------------------------
...
环回大 Mtu                  : enabled
...

可以看到, 这个 "环回大 MTU" 是 enable. 需要关闭, 是 disable 也可以执行一遍命令.

使用管理员权限 Powershell 执行以下指令

netsh int ipv4 set global loopbacklargemtu=disable
netsh int ipv6 set global loopbacklargemtu=disable

确保变为 disable 即可.

3.恢复

根据上面的默认值执行代码即可:

netsh int tcp set supplemental Template=InternetCustom   CongestionProvider=CUBIC
netsh int tcp set supplemental Template=DatacenterCustom CongestionProvider=CUBIC
netsh int tcp set supplemental Template=Compat           CongestionProvider=NewReno
netsh int tcp set supplemental Template=Internet         CongestionProvider=CUBIC
netsh int tcp set supplemental Template=Datacenter       CongestionProvider=CUBIC

文章转载自 Esing 的小站

最后修改:2026 年 02 月 20 日
如果觉得我的文章对你有用,请随意赞赏