skip to content
仙人掌主题

使用docker开启BBR突破宽带限速

/ 2 min read

使用docker开启BBR突破宽带限速

转自绿联云论坛

BBR开启对专业人员来说是很简单的操作,但每次系统升级后都被重置就很不爽。

虽然我提了在控制面板中提供BBR开启的功能,但官方一周多了还没有回应。求人还不如求己,我自己来。

想到docker是以root权限运行,正好满足修改配置的权限要求。
好处是不用开启SSH和客户端连上去修改了,在绿联手机APP中启动docker就能改

1. 打开docker
2. 项目->创建项目
3. 项目名->bbr

services:
bbr:
image: alpine:latest
privileged: true
network_mode: host
command: >
sh -c "
sysctl -w net.core.default_qdisc=fq;
sysctl -w net.ipv4.tcp_congestion_control=bbr;
date -R;
"
restart: no

注意
1. 这里设置的参数是临时的,重启后就没了。所以,每次重启后到docker中手动开启即可
2. 此docker只是为了执行命令,执行完就退出停止了,这是正常现象,你只需要到日志中查看修改是否成功即可

参考文档

NAS跨运营商限速解决办法
https://club.ugnas.com/forum.php?mod=viewthread&tid=522
建议增加bbr拥塞控制算法开关
https://club.ugnas.com/forum.php?mod=viewthread&tid=1763

补充
再提供一个可以来回切换的版本,专业用户可以部署这个

Terminal window
services:
bbr:
image: alpine:latest
privileged: true
network_mode: host
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
command:
- sh
- -c
- |
CURRENT_CC=$$(sysctl -n net.ipv4.tcp_congestion_control);
echo "======================"
echo "当前拥塞控制算法: $$CURRENT_CC, 准备切换"
if [ "$$CURRENT_CC" = "bbr" ]; then
sysctl -w net.core.default_qdisc=pfifo_fast
sysctl -w net.ipv4.tcp_congestion_control=cubic
else
sysctl -w net.core.default_qdisc=fq
sysctl -w net.ipv4.tcp_congestion_control=bbr
fi
echo "最新拥塞控制算法: "
sysctl net.core.default_qdisc
sysctl net.ipv4.tcp_congestion_control
date -R
restart: no