BBR 单边TCP加速脚本汇总

TCP BBR是谷歌出品的TCP拥塞控制算法。BBR目的是要尽量跑满带宽,并且尽量不要有排队的情况。BBR可以起到单边加速TCP连接的效果。替代锐速再合适不过,毕竟免费。

Google提交到Linux主线并发表在ACM queue期刊上的TCP-BBR拥塞控制算法。继承了Google“先在生产环境上部署,再开源和发论文”的研究传统。TCP-BBR已经再YouTube服务器和Google跨数据中心的内部广域网(B4)上部署。由此可见出该算法的前途。

TCP-BBR的目标就是最大化利用网络上瓶颈链路的带宽。一条网络链路就像一条水管,要想最大化利用这条水管,最好的办法就是给这跟水管灌满水。
BBR解决了两个问题:

1、再有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路。

2、降低网络链路上的buffer占用率,从而降低延迟。非常适合慢速接入网络的用户。

项目地址:https://github.com/google/bbr

OVZ架构篇(推荐NanQinLang)

一、UML

一键运行脚本:

Alpine linux 小内存版: UML 的系统是 Alpine linux ,需要 64M 内存启动,主机最低 128M 内存

wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/uml/master/bbr/uml.sh && bash uml.sh

Centos 版: UML 的系统是 CentOS ,需要 256M 内存启动,主机建议最低 512M 内存

wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/uml/master/bbr/uml-centos.sh && bash uml-centos.sh

二、LKL(91Yun)

安装 LKL 一键包命令

wget -N --no-check-certificate https://github.com/91yun/uml/raw/master/lkl/install.sh && bash install.sh

判断是否安装成功

ping 10.0.0.2 #若能成功ping通,则为安装成功

三、Rinetd

下载rinetd二进制文件(原版bbr和修改版bbr二选一即可):

wget -N --no-check-certificate https://raw.githubusercontent.com/mixool/rinetd/master/rinetd

wget -N --no-check-certificate https://raw.githubusercontent.com/mixool/rinetd/master/rinetd_bbr_powered -O /root/rinetd

使用方法:

#修改权限:
chmod +x rinetd

#修改rinetd的配置文件rinetd.conf,添加监听地址:
vi rinetd.conf
# bindadress bindport connectaddress connectport
0.0.0.0 443 0.0.0.0 443
0.0.0.0 80 0.0.0.0 80
# 注:以上示例为为443和80端口进行BBR加速,若需加速其他端口请自行按照以上格式添加端口即可

#设置开机启动
vi /etc/systemd/system/rinetd.service
#将以下内容输入rineted.service
[Unit]
Description=rinetd
 
[Service]
ExecStart=/root/rinetd -f -c /root/rinetd.conf raw venet0:0
Restart=always
  
[Install]
WantedBy=multi-user.target


#最后执行:
systemctl enable rinetd.service && systemctl start rinetd.service

四、NanQinLang(只支持CentOS)

一键运行脚本:

wget -N --no-check-certificate https://github.com/tcp-nanqinlang/lkl-haproxy/releases/download/1.1.1/tcp_nanqinlang-haproxy-centos.sh && bash tcp_nanqinlang-haproxy-centos.sh

NanQinLang-Rinetd版本脚本:

# 单网卡
wget -N --no-check-certificate https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0/tcp_nanqinlang-rinetd-centos.sh && bash tcp_nanqinlang-rinetd-centos.sh
 
# 多网卡
wget -N --no-check-certificate https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0/tcp_nanqinlang-rinetd-centos-multiNIC.sh && bash tcp_nanqinlang-rinetd-centos-multiNIC.sh

KVM架构篇(推荐Teddysun系列脚本)

一、Doubi系列脚本

Debian 7 / Debian 8 / Ubuntu 14.04 / Ubuntu 16.04 一键脚本:

wget -N --no-check-certificate https://softs.fun/Bash/bbr.sh && chmod +x bbr.sh && bash bbr.sh

#备用脚本
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/bbr.sh && chmod +x bbr.sh && bash bbr.sh

CentOS 一键脚本:

wget -N --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && bash bbr.sh
#验证方法:
uname -r
#查看内核版本,含有 4.9.0 或者更新版本就表示 OK 了

sysctl net.ipv4.tcp_available_congestion_control
#返回值一般为:
net.ipv4.tcp_available_congestion_control = bbr cubic reno

sysctl net.ipv4.tcp_congestion_control
#返回值一般为:
net.ipv4.tcp_congestion_control = bbr

sysctl net.core.default_qdisc
#返回值一般为:
net.core.default_qdisc = fq

lsmod | grep bbr
#返回值有 tcp_bbr 模块即说明bbr已启动

二、Teddysun系列脚本

一键脚本:

wget -N --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
#验证方法:
uname -r
#查看内核版本,含有 4.9.0 或者更新版本就表示 OK 了

sysctl net.ipv4.tcp_available_congestion_control
#返回值一般为:
net.ipv4.tcp_available_congestion_control = bbr cubic reno

sysctl net.ipv4.tcp_congestion_control
#返回值一般为:
net.ipv4.tcp_congestion_control = bbr

sysctl net.core.default_qdisc
#返回值一般为:
net.core.default_qdisc = fq

lsmod | grep bbr
#返回值有 tcp_bbr 模块即说明bbr已启动

#特别说明
#如果你使用的是 Google Cloud Platform (GCP)更换内核,有时会遇到重启后,整个磁盘变为只读的情况。只需执行以下命令即可恢复:
mount -o remount rw /

三、NanQinLang系列脚本(只支持CentOS 64位)

一键脚本:

wget -N --no-check-certificate https://raw.githubusercontent.com/tcp-nanqinlang/general/master/General/CentOS/bash/tcp_nanqinlang-1.3.2.sh && bash tcp_nanqinlang-1.3.2.sh
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注

//Microd //Microd