====== 轻松在 FreeBSD 14.1+ 启用 BBR 功能 ====== 从 14.1 开始 tcphpts, tcp_rack, tcp_bbr 都已经默认编译为模块, 需要用直接加载就可以了, 不需要重新编译内核. ==== 加载模块 ==== kldload tcphpts kldload tcp_bbr ==== 系统启动自动加载模块 ==== 可以在 /etc/rc.conf 加入以下内容 kld_list="tcphpts tcp_bbr" ==== 检查模块加载成功 ==== 运行以下命令, 看到有 BBR 一行, 并且有使用情况 sysctl net.inet.tcp.functions_available ==== 切换 TCP 默认实现方式为 BBR ==== 运行以下命令 sysctl net.inet.tcp.functions_default=bbr ==== 使应用使用 BBR ==== 默认在切换前启动的应用并不会使用到切换后的 bbr, 一种方法是重启应用, 一种是设置 sysctl net.inet.tcp.functions_inherit_listen_socket_stack=0 ==== 系统启动时自动设置 sysctl ==== 添加以下内容至 /etc/sysctl.conf 或 /etc/sysctl.conf.local net.inet.tcp.functions_default=bbr net.inet.tcp.functions_inherit_listen_socket_stack=0 20241205: 关闭 net.inet.tcp.bbr.measure.use_google 后, 大多数情况不会出现断流, 极小概率在某个系统出现极低速(该问题是接收端其他bug导致) net.inet.tcp.bbr.measure.use_google=0 {{tag>freebsd bbr rack}}