运行sysctl net.ipv4.tcp_congestion_control可直接查看当前生效的拥塞控制算法,输出如net.ipv4.tcp_congestion_control = bbr即表示BBR已生效;若为空、报错或无值,则配置无效,系统将回退至不可控fallback;还需用sysctl net.ipv4.tcp_available_congestion_control确认bbr在可用列表中,并通过ss -ti检查具体连接是否显示ca: bbr以验证真实运行状态。

直接查看当前生效的拥塞控制算法
运行命令查看内核当前实际使用的拥塞控制算法,这是最快速、最权威的确认方式。
sysctl net.ipv4.tcp_congestion_control
输出格式为 net.ipv4.tcp_congestion_control = cubic 或 net.ipv4.tcp_congestion_control = bbr,等号右侧即为【当前真正生效的算法名称】。若返回空值、报错或显示为 net.ipv4.tcp_congestion_control = (后面无内容),说明系统未正确配置默认算法,TCP将回退到编译时内置的 fallback(通常是 cubic,但行为不可控)。
验证该算法是否被系统支持
仅看当前设置还不够——得确认这个算法确实在内核中可用,而非写错名字或模块未加载。
执行以下命令:
sysctl net.ipv4.tcp_available_congestion_control
输出类似 net.ipv4.tcp_available_congestion_control = reno cubic bbr,表示这三个算法当前可选。如果输出中不含 bbr,即使你写了 bbr 到配置文件,它也无法生效;此时需检查内核版本是否 ≥ 4.9、tcp_bbr 模块是否已加载(lsmod | grep tcp_bbr),或确认内核是否编译了 BBR 支持。
通过活跃连接反向确认真实使用的算法
前两步查的是“全局默认”,但这不等于每个 TCP 连接都在用它。某些连接可能在建立时被应用层强制指定,或因兼容性降级。要抓取真实流量中的算法,必须查具体连接。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
第一步:找一个正在传输的 TCP 连接,例如访问某网站后的连接:
ss -tni 'dport = :443' | head -n 1
第二步:从上一步输出中提取连接的 inode 号(字段名为 ino),再用它查详细信息:
ss -ti 'ino@$(ss -tni "dport = :443" | awk 'NR==2 {print $NF}' | cut -d',' -f1)'
更稳妥的手动方式是:先运行 ss -tni 'dport = :443',复制其中一行的完整源地址+端口(如 192.168.1.100:54321),再执行:
ss -ti src 192.168.1.100:54321
观察输出中是否有 ca: bbr、ca: cubic 或 ca: reno 字样——【这才是该连接此刻真实运行的拥塞控制算法】。没有 ca: 行,说明该连接尚未进入拥塞控制决策阶段(如刚建连),需等待数据传输开始后再查。

















