本文最后更新于 2019年4月19日17:37:24 如已有问题需要修正,请留言!
Google BBR
是一个TCP
加速优化工具,类似于锐速,可用于优化TCP
连接,最近Google
开源了其TCP BBR
拥塞控制算法,并提交到了Linux
内核,根据实地测试,在部署了最新版内核并开启了TCP BBR
的机器上,网速甚至可以提升好几个数量级,所以最近一下就火起来了。
一、KVM一键开启 BBR 脚本
使用环境
虚拟化:KVM、Xen等,除了OpenVZ基本都行
系统:CentOS 6+,Debian 7+,Ubuntu 12+
内存:128MB以上
方法
使用root登陆VPS,输入下面命令:
yum -y install wget wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh chmod +x bbr.sh ./bbr.sh
完成后,提示重启,输入y并重启VPS。
重启后,验证是否成功安装,输入:
uname -r
查看内核版本,含有 4.10 就表示 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已启动。
二、OVZ开启 Haproxy-BBR 脚本
1、来自扩软博客的Haproxy-BBR 脚本
已测试通过的系统: Ubuntu 14.04 x64、Ubuntu 16.04 x64、CentOS 6 x64、CentOS 7 x64 只支持 64 位系统,要求 glibc 版本 2.14 以上(若版本过低,请查看文章末尾的升级教程)。
该脚本需要服务器开启 TUN
安装:
wget https://raw.githubusercontent.com/kuoruan/shell-scripts/master/ovz-bbr/ovz-bbr-installer.sh chmod +x ovz-bbr-installer.sh ./ovz-bbr-installer.sh
需要配置的选项:
- 端口,即你用到的端口。开启后,流量先经过 BBR 处理,然后发送给指定端口。
- 可能需要配置“公网接口名称”,即你服务器上具有公网 IP 的接口名称。下面继续介绍一些使用方法以及问题排除。
在有 firewalld 的服务器上安装的时候,firewalld 会干扰 iptables 的规则,造成网络不通(现在具体原因未知,谁有解决方案可以提示一下)。所以在装有 firewalld 的服务器上需要先退出 firewalld:
systemctl disable firewalld systemctl stop firewalld
其他使用说明
卸载:
./ovz-bbr-installer.sh uninstall
多端口配置:
安装的时候只配置了一个加速端口,但是你可以配置多端口加速,配置方法非常简单。 修改文件
vim /usr/local/haproxy-lkl/etc/port-rules
在文件里添加需要加速的端口,每行一条,可以配置单个端口或者端口范围,以 # 开头的行将被忽略。 例如:8800 或者 8800-8810 配置完成之后,只需要重启 haproxy-lkl 即可。
启动、停止、重启 HAproxy-lkl:
systemctl start haproxy-lkl systemctl stop haproxy-lkl systemctl restart haproxy-lkl 或者: service haproxy-lkl start service haproxy-lkl stop service haproxy-lkl restart
如果想自定义配置(新手请忽略):
/usr/local/haproxy-lkl/sbin/haproxy-lkl
多端口加速
安装的时候只配置了一个加速端口,但是你可以配置多端口加速,配置方法非常简单。 修改文件
# vi /usr/local/haproxy-lkl/etc/port-rules
2、来自南琴浪的Haproxy-BBR 脚本
Debian 8+/CentOS 7 64bit该脚本需要服务器开启 TUN
开始安装
适用于Debian 8+
环境:
wget https://github.com/tcp-nanqinlang/lkl-haproxy/releases/download/1.1.1/tcp_nanqinlang-haproxy-debian.sh bash tcp_nanqinlang-haproxy-debian.sh
适用于Centos7
环境:
wget https://github.com/tcp-nanqinlang/lkl-haproxy/releases/download/1.1.1/tcp_nanqinlang-haproxy-centos.sh bash tcp_nanqinlang-haproxy-centos.sh
使用说明
安装 lkl-haproxyd
此命令用于安装 lkl-haproxy。
在/home/tcp_nanqinlang进行安装,所以安装完成后不要动这个文件夹了(除非你想修改端口)。
安装过程中,会提示你选择单个端口或端口段输入
安装完成后,会开启 lkl-haproxy。以后重启机器也会随开机自启。
lkl-haproxyd端口修改
以后若需要修改转发端口,请将/home/tcp_nanqinlang/haproxy.cfg中的端口号和 /home/tcp_nanqinlang/redirect.sh
中的端口号改为你想要的端口或端口段,修改完成后重启服务器。使用前请注意自己的 iptables 相关设置。
检查 lkl-haproxy 运行状态
此命令用于检查 lkl-haproxy 运行与否,可通过返回的提示判断。
卸载 lkl-haproxy
运行此命令会卸载 haproxy、删除 /home/tcp_nanqinlang、移除 rc.local 开机自启项。稍后请自行移除 iptables 相关规则。
3、判断 BBR 是否工作
判断 bbr 是否正常启动可以尝试 ping 10.0.0.2,如果能通,说明 bbr 已经启动。
检查一下 iptables 规则:
iptables -t nat -nL Chain PREROUTING (policy ACCEPT) target prot opt source destination LKL_IN all -- 0.0.0.0/0 0.0.0.0/0 Chain POSTROUTING (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain LKL_IN (1 references) target prot opt source destination DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8989 to:10.0.0.2
里边会看到多了一张链表 LKL_IN,里边有相应的端口规则。
三、OVZ开启Rinetd-BBR
要求如下
OpenVZ 64 bit
Ram >> 64M
该脚本无须服务器开启 TUN
Debian or Ubuntu
适用于单网卡(单 IP)
服务器:
wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0/tcp_nanqinlang-rinetd-debianorubuntu.sh bash tcp_nanqinlang-rinetd-debianorubuntu.sh
适用于 多网卡(单 IP)
服务器,会为所有网卡(所有 IP)提供加速:
wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0/tcp_nanqinlang-rinetd-debianorubuntu-multiNIC.sh bash tcp_nanqinlang-rinetd-debianorubuntu-multiNIC.sh
CentOS 7
和上面一样,也分 单网卡 和 多网卡 版本:
# 单网卡 wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0/tcp_nanqinlang-rinetd-centos.sh bash tcp_nanqinlang-rinetd-centos.sh # 多网卡 wget 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
使用说明
以下进行脚本使用说明:
安装 lkl-rinetd
此命令用于安装 lkl-rinetd。
在 /home/tcp_nanqinlang进行安装,所以安装完成后不要动这个文件夹了(除需修改端口)。
安装过程中,会提示输入端口号。多个端口号用空格隔开。不支持端口段。
安装完成后,会开启 lkl-rinetd。以后重启机器也会随开机自启。
使用前请注意自己的 iptables 相关设置。
lkl-rinetd端口修改
编辑/home/tcp_nanqinlang下的相关config文件,接着运行.sh文件
检查 lkl-rinetd 运行状态
此命令用于检查 lkl-rinetd 运行与否,可通过返回的提示判断。
卸载 lkl-rinetd
运行此命令会删除 /home/tcp_nanqinlang 、移除 rc.local 对应开机自启项和清空 iptables raw 表。属于完整卸载,不会有残留。且卸载后无需重启。
三、KVM魔改BBR/Lotsever(锐速)一键脚本
支持系统
虚拟化:KVM、Xen等,除了OpenVZ基本都行
系统:Centos 6+ / Debian 7+ / Ubuntu 14+BBR魔改版不支持Debian 8
安装
wget -N --no-check-certificate "https://github.com/cx9208/Linux-NetSpeed/raw/master/tcp.sh" chmod +x tcp.sh ./tcp.sh
本脚本为高度集成一键脚本,请按照相关提示依次进行。
如果在删除内核环节出现这样一张图产品注意选择NO:
补充:更新 glibc
如果 glibc 版本过低,可以进行更新。
CentOS 6:
wget http://ftp.redsleeve.org/pub/steam/glibc-2.15-60.el6.x86_64.rpm \ http://ftp.redsleeve.org/pub/steam/glibc-common-2.15-60.el6.x86_64.rpm \ http://ftp.redsleeve.org/pub/steam/glibc-devel-2.15-60.el6.x86_64.rpm \ http://ftp.redsleeve.org/pub/steam/glibc-headers-2.15-60.el6.x86_64.rpm \ http://ftp.redsleeve.org/pub/steam/nscd-2.15-60.el6.x86_64.rpm rpm -Uvh glibc-2.15-60.el6.x86_64.rpm \ glibc-common-2.15-60.el6.x86_64.rpm \ glibc-devel-2.15-60.el6.x86_64.rpm \ glibc-headers-2.15-60.el6.x86_64.rpm \ nscd-2.15-60.el6.x86_64.rpm
如果无法更新,手动编译:
wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gz tar -zxf glibc-2.15.tar.gz tar -zxf glibc-ports-2.15.tar.gz mv glibc-ports-2.15 glibc-2.15/ports mkdir glibc-build-2.15 cd glibc-build-2.15 ../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin make all && make install
检查一下:
ldd --version ldd (GNU libc) 2.15 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper.
声明:参考“OpenVZ平台Google BBR一键安装脚本”、“一键安装最新内核并开启 BBR 脚本”、“南琴浪GitHub”、“Linux网络优化加速一键脚本”,测试后发布,内容与本人无关。
0 条评论