[{"data":1,"prerenderedAt":447},["ShallowReactive",2],{"article-linux-enable-bbr":3,"article-siblings":402},{"id":4,"title":5,"body":6,"category":385,"cover":266,"date":386,"description":387,"extension":388,"meta":389,"navigation":390,"path":391,"readingMinutes":392,"seo":393,"stem":394,"tags":395,"updated":400,"__hash__":401},"articles\u002Farticles\u002Flinux-enable-bbr.md","Linux 开启 BBR 拥塞控制：原生配置与一键脚本两种做法",{"type":7,"value":8,"toc":374},"minimark",[9,18,21,26,29,40,46,49,52,93,96,99,158,165,169,172,177,208,213,225,230,261,272,277,284,288,291,304,307,325,328,334,340,346,349,370],[10,11,12,13,17],"p",{},"买了一台标称 1 Gbps 的 VPS，实测下载却只有几百 KB\u002Fs——这种情况很常见，而且不一定是带宽不够。跨洲链路天然带有较高的延迟和丢包，系统默认的 TCP 拥塞控制算法一旦“感觉”到丢包，就会急刹车，把发送速率压得很低。",[14,15,16],"strong",{},"BBR"," 就是为了解决这个问题而出现的。",[10,19,20],{},"本文按“先理解、再选择、后动手”的顺序，讲清楚怎样在 Linux 服务器上启用 BBR。",[22,23,25],"h2",{"id":24},"bbr-到底改变了什么","BBR 到底改变了什么",[10,27,28],{},"传统算法（例如 CUBIC）把“丢包”当作网络拥塞的信号：只要出现丢包，就大幅降低发送窗口，之后再慢慢回升。在丢包并不代表拥塞的长距离链路上，这种策略会白白浪费带宽。",[10,30,31,32,35,36,39],{},"BBR（Bottleneck Bandwidth and Round-trip propagation time）由 Google 提出，思路是主动测量链路的",[14,33,34],{},"瓶颈带宽","与",[14,37,38],{},"往返时延","，据此估算最合适的发送速率，而不是被动地等丢包再减速。因此在存在一定随机丢包的海外线路上，它往往能明显提高吞吐。",[41,42,43],"blockquote",{},[10,44,45],{},"BBR 优化的是“因丢包导致的不必要降速”。如果链路本身的物理带宽很小，或者被运营商限速，任何算法都无法突破上限。",[22,47,48],{"id":48},"先看看内核支持情况",[10,50,51],{},"BBR 从 Linux 4.9 内核开始内置。先确认当前内核版本和已启用的算法：",[53,54,59],"pre",{"className":55,"code":56,"language":57,"meta":58,"style":58},"language-bash shiki shiki-themes github-light","uname -r\nsysctl net.ipv4.tcp_congestion_control\nsysctl net.ipv4.tcp_available_congestion_control\n","bash","",[60,61,62,75,85],"code",{"__ignoreMap":58},[63,64,67,71],"span",{"class":65,"line":66},"line",1,[63,68,70],{"class":69},"s7eDp","uname",[63,72,74],{"class":73},"sYu0t"," -r\n",[63,76,78,81],{"class":65,"line":77},2,[63,79,80],{"class":69},"sysctl",[63,82,84],{"class":83},"sYBdl"," net.ipv4.tcp_congestion_control\n",[63,86,88,90],{"class":65,"line":87},3,[63,89,80],{"class":69},[63,91,92],{"class":83}," net.ipv4.tcp_available_congestion_control\n",[10,94,95],{},"当前主流发行版（Ubuntu 22.04 \u002F 24.04、Debian 11 \u002F 12 等）的内核都远高于 4.9，可以直接使用原生 BBR，不需要更换内核。",[22,97,98],{"id":98},"几个版本该怎么选",[100,101,102,118],"table",{},[103,104,105],"thead",{},[106,107,108,112,115],"tr",{},[109,110,111],"th",{},"方案",[109,113,114],{},"特点",[109,116,117],{},"适用场景",[119,120,121,136,147],"tbody",{},[106,122,123,127,130],{},[124,125,126],"td",{},"原生 BBR",[124,128,129],{},"稳定、兼容性最好，随内核维护",[124,131,132,133],{},"绝大多数服务器，",[14,134,135],{},"首选",[106,137,138,141,144],{},[124,139,140],{},"BBRplus",[124,142,143],{},"对传输机制做了修改，在极差的跨海链路上更激进",[124,145,146],{},"老系统或确有需要的场景",[106,148,149,152,155],{},[124,150,151],{},"BBR2 \u002F 其他魔改版",[124,153,154],{},"理论上限更高，但需要第三方内核，存在崩溃风险",[124,156,157],{},"实验与折腾，不建议生产使用",[10,159,160,161,164],{},"结论很简单：",[14,162,163],{},"能用原生就用原生","，把魔改内核留给确实有需求、也有能力救机器的人。",[22,166,168],{"id":167},"方法一原生-bbr推荐","方法一：原生 BBR（推荐）",[10,170,171],{},"内核不低于 4.9 时，三步即可完成。",[10,173,174],{},[14,175,176],{},"1. 写入系统参数",[53,178,180],{"className":55,"code":179,"language":57,"meta":58,"style":58},"echo \"net.core.default_qdisc=fq\" >> \u002Fetc\u002Fsysctl.conf\necho \"net.ipv4.tcp_congestion_control=bbr\" >> \u002Fetc\u002Fsysctl.conf\n",[60,181,182,197],{"__ignoreMap":58},[63,183,184,187,190,194],{"class":65,"line":66},[63,185,186],{"class":73},"echo",[63,188,189],{"class":83}," \"net.core.default_qdisc=fq\"",[63,191,193],{"class":192},"sD7c4"," >>",[63,195,196],{"class":83}," \u002Fetc\u002Fsysctl.conf\n",[63,198,199,201,204,206],{"class":65,"line":77},[63,200,186],{"class":73},[63,202,203],{"class":83}," \"net.ipv4.tcp_congestion_control=bbr\"",[63,205,193],{"class":192},[63,207,196],{"class":83},[10,209,210],{},[14,211,212],{},"2. 让配置立即生效",[53,214,216],{"className":55,"code":215,"language":57,"meta":58,"style":58},"sysctl -p\n",[60,217,218],{"__ignoreMap":58},[63,219,220,222],{"class":65,"line":66},[63,221,80],{"class":69},[63,223,224],{"class":73}," -p\n",[10,226,227],{},[14,228,229],{},"3. 验证结果",[53,231,233],{"className":55,"code":232,"language":57,"meta":58,"style":58},"sysctl net.ipv4.tcp_congestion_control\n# 期望输出：net.ipv4.tcp_congestion_control = bbr\nlsmod | grep bbr\n",[60,234,235,241,247],{"__ignoreMap":58},[63,236,237,239],{"class":65,"line":66},[63,238,80],{"class":69},[63,240,84],{"class":83},[63,242,243],{"class":65,"line":77},[63,244,246],{"class":245},"sAwPA","# 期望输出：net.ipv4.tcp_congestion_control = bbr\n",[63,248,249,252,255,258],{"class":65,"line":87},[63,250,251],{"class":69},"lsmod",[63,253,254],{"class":192}," |",[63,256,257],{"class":69}," grep",[63,259,260],{"class":83}," bbr\n",[10,262,263,264,267,268,271],{},"输出里出现 ",[60,265,266],{},"bbr","，就说明已经生效。注意重复执行第 1 步会往文件里追加重复行，不影响功能，但建议事后打开 ",[60,269,270],{},"\u002Fetc\u002Fsysctl.conf"," 清理一下。",[273,274,276],"h3",{"id":275},"为什么要同时设置-fq","为什么要同时设置 fq",[10,278,279,280,283],{},"BBR 依赖**公平队列（Fair Queuing，fq）**来控制数据包的发送间隔（pacing）。",[60,281,282],{},"net.core.default_qdisc=fq"," 这一行不能漏，否则 BBR 的节奏控制会打折扣。",[22,285,287],{"id":286},"方法二使用社区的一键脚本","方法二：使用社区的一键脚本",[10,289,290],{},"如果系统很老（比如 CentOS 7，内核低于 4.9），或者想试试 BBRplus，需要先更换内核，手工操作风险较大。社区里有一个流传很广的“四合一”脚本（项目名 Linux-NetSpeed）可以简化流程，大致步骤是：",[292,293,294,298,301],"ol",{},[295,296,297],"li",{},"下载并运行脚本，先选择“安装内核”（想试 BBRplus 就选对应内核）；",[295,299,300],{},"重启服务器；",[295,302,303],{},"重启后再次运行脚本，选择“开启加速”。",[10,305,306],{},"执行前请注意三点：",[308,309,310,316,322],"ul",{},[295,311,312,315],{},[14,313,314],{},"先做快照或备份","。更换内核是有风险的操作，一旦无法引导，只能靠云厂商的 VNC \u002F 救援模式。",[295,317,318,321],{},[14,319,320],{},"运行任何第三方脚本前，先读一遍源码","，确认它做了什么再执行。",[295,323,324],{},"能升级系统就别硬撑老系统：换成较新的 Ubuntu \u002F Debian，用原生 BBR 更省心。",[22,326,327],{"id":327},"常见问题",[10,329,330,333],{},[14,331,332],{},"开启 BBR 会被服务商认为滥用带宽吗？","\n不会。BBR 只是调整数据发送的节奏，属于正常的内核调优，主流云厂商的默认镜像里也已经在使用。",[10,335,336,339],{},[14,337,338],{},"开启后速度没有明显变化，是为什么？","\n先排查物理带宽上限、运营商限速（QoS）、对端服务器自身的出口限制。BBR 只能缓解“丢包导致的降速”，对本来就很窄的链路无能为力。",[10,341,342,345],{},[14,343,344],{},"BBRplus 会让系统不稳定吗？","\n在 CentOS 7 上确实有过更换内核后无法正常启动的案例。如果不是非用不可，建议使用新版 Ubuntu \u002F Debian 搭配原生 BBR。",[22,347,348],{"id":348},"小结",[308,350,351,357,364,367],{},[295,352,353,354,356],{},"内核 ≥ 4.9：直接写入两行 sysctl 参数，用 ",[60,355,80],{}," 验证即可；",[295,358,359,360,363],{},"同时启用 ",[60,361,362],{},"fq"," 队列，不要漏；",[295,365,366],{},"需要换内核的老系统，务必先备份，并审阅脚本；",[295,368,369],{},"BBR 不是万能药，它解决的是丢包造成的降速，不是带宽不足。",[371,372,373],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}",{"title":58,"searchDepth":77,"depth":77,"links":375},[376,377,378,379,382,383,384],{"id":24,"depth":77,"text":25},{"id":48,"depth":77,"text":48},{"id":98,"depth":77,"text":98},{"id":167,"depth":77,"text":168,"children":380},[381],{"id":275,"depth":87,"text":276},{"id":286,"depth":77,"text":287},{"id":327,"depth":77,"text":327},{"id":348,"depth":77,"text":348},"ops","2026-03-09","带宽明明很大，下载速度却上不去？多半是 TCP 拥塞控制算法拖了后腿。本文梳理 BBR 的原理、版本选择、原生开启步骤、脚本方案与常见问题。","md",{},true,"\u002Farticles\u002Flinux-enable-bbr",6,{"title":5,"description":387},"articles\u002Flinux-enable-bbr",[396,16,397,398,399],"Linux","TCP","网络优化","VPS",null,"mGJgCO6xc4rZwEOGpQEhgBEyXfPwbcDc3pvF30rK4mE",[403,407,410,414,418,419,423,427,431,435,439,443],{"path":404,"title":405,"date":406},"\u002Farticles\u002Fnew-site-cold-start-seo","新站冷启动：沙盒期怎么熬，第一批真实读者从哪里来","2026-06-23",{"path":408,"title":409,"date":406},"\u002Farticles\u002Fstatic-site-cloudflare-pages","把动态博客彻底静态化，零成本部署到 Cloudflare Pages",{"path":411,"title":412,"date":413},"\u002Farticles\u002Fsharktech-review","Sharktech 评测：自带 DDoS 清洗的老牌机房，值不值得买？","2026-06-08",{"path":415,"title":416,"date":417},"\u002Farticles\u002Fhostslick-review","HostSlick 2026 深度评测：荷兰电视塔机房里的德国主机商","2026-03-11",{"path":391,"title":5,"date":386},{"path":420,"title":421,"date":422},"\u002Farticles\u002Fcms-selection-guide","内容站与导航站怎么选 CMS：WordPress 方案全流程","2026-03-05",{"path":424,"title":425,"date":426},"\u002Farticles\u002Fknownsrv-review","KnownSRV 2026 评测：荷兰与卢森堡节点的 VPS、虚拟主机与独服","2026-02-06",{"path":428,"title":429,"date":430},"\u002Farticles\u002Fbuyvm-review","BuyVM（Frantech）2026 现状：卢森堡缺货之后，它还值得买吗？","2026-01-13",{"path":432,"title":433,"date":434},"\u002Farticles\u002Fihostart-review","iHostART 评测：罗马尼亚的低价大存储 VPS，适合做什么？","2025-09-13",{"path":436,"title":437,"date":438},"\u002Farticles\u002Forangewebsite-review","OrangeWebsite 评测：冰岛老牌主机商的性能、网络与使用建议","2024-12-21",{"path":440,"title":441,"date":442},"\u002Farticles\u002Falexhost-review","AlexHost 评测：摩尔多瓦自营机房，大带宽 VPS 与独立服务器","2024-05-09",{"path":444,"title":445,"date":446},"\u002Farticles\u002Fflokinet-review","FlokiNET 评测：冰岛机房的“贵价”主机，值不值这个价？","2024-03-08",1792993223478]