检查VPS的TUN是否开启(OpenVZ虚拟化的服务器很可能默认关闭)。

cat /dev/net/tun

如果TUN开启的话返回是:

cat: /dev/net/tun: File descriptor in bad state

1.Rinetd模式(不需要开启TUN/TAP)

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
#如果提示only support OpenVZ !,则使用下面这个脚本
wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0-nocheckvirt/tcp_nanqinlang-rinetd-debianorubuntu-nocheckvirt.sh
bash tcp_nanqinlang-rinetd-debianorubuntu-nocheckvirt.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
#如果提示only support OpenVZ !,则使用下面这个脚本
wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0-nocheckvirt/tcp_nanqinlang-rinetd-debianorubuntu-nocheckvirt-multiNIC.sh
bash tcp_nanqinlang-rinetd-debianorubuntu-nocheckvirt-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
#如果提示only support OpenVZ !,则使用下面这个脚本
wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0-nocheckvirt/tcp_nanqinlang-rinetd-centos-nocheckvirt.sh
bash tcp_nanqinlang-rinetd-centos-nocheckvirt.sh

#多网卡
wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0/tcp_nanqinlang-rinetd-centos.sh
bash tcp_nanqinlang-rinetd-centos.sh
#如果提示only support OpenVZ !,则使用下面这个脚本
wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0-nocheckvirt/tcp_nanqinlang-rinetd-debianorubuntu-nocheckvirt-multiNIC.sh
bash tcp_nanqinlang-rinetd-debianorubuntu-nocheckvirt-multiNIC.sh

2.lkl模式(需要开启TUN/TAP)
BBR魔改版
Debian/Ubuntu:

wget https://github.com/tcp-nanqinlang/lkl-haproxy/releases/download/1.1.1/tcp_nanqinlang-haproxy-debian.sh
bash tcp_nanqinlang-haproxy-debian.sh

CentOS:

wget https://github.com/tcp-nanqinlang/lkl-haproxy/releases/download/1.1.1/tcp_nanqinlang-haproxy-centos.sh
bash tcp_nanqinlang-haproxy-centos.sh

BBR-plus

wget --no-cache -O lkl-haproxy.sh https://github.com/mzz2017/lkl-haproxy/raw/master/lkl-haproxy.sh && bash lkl-haproxy.sh

以下内容引用自Moerat博客:https://www.moerats.com/archives/111/
说明:此前用的一直是91yun大神制作的openvz的BBR一键包,今天看到扩软博主也制作了个openvz的BBR一键包,就转过来了。不过对于VPS,还是建议选择KVM架构,可玩性高,推荐款性价比高的VPS:搬瓦工VPS。

更新:
[2017.07.24]
更新了liblkl-hijack.so并打上了最近网上很火的“魔改版”BBR补丁,同时更新了haproxy。老版本的朋友可以重新下载安装脚本再安装一遍,需要先停止当前的服务。

使用方法
已测试通过的系统:Ubuntu 14.04 x64、Ubuntu 16.04 x64、CentOS 6 x64、CentOS 7 x64只支持64位系统,要求glibc版本2.14以上。

wget --no-check-certificate https://raw.githubusercontent.com/kuoruan/shell-scripts/master/ovz-bbr/ovz-bbr-installer.sh
chmod +x ovz-bbr-installer.sh
./ovz-bbr-installer.sh

注意:安装失败的话,可能后台没有开启TUN/TAP。

需要配置的有如下几个选项:
1、需要加速的端口,即的55端口。加速开启之后,流量会先经过BBR处理,之后再发送给后端的55。
2、可能需要配置 “公网接口名称”,即你服务器上具有公网IP的接口名称。搬瓦工OpenVZ上默认都是venet0,但是有朋友可能需要安装在其他服务器上,所以我加入了此选项。

注意:在有firewalld的服务器上安装的时候,firewalld会干扰iptables的规则,造成网络不通(现在具体原因未知,谁有解决方案可以提示一下)。所以在装有firewalld的服务器上需要先退出firewalld:

systemctl stop firewalld
systemctl stop firewalld

如需卸载,请使用:

./ovz-bbr-installer.sh uninstall

错误说明
有些机器一切正常,但是加速失败。从网友的反馈来看,可能需要将55的监听地址从vps IP改到127.0.0.1或者 0.0.0.0,具体未测试,加速失败的朋友可以试一试。

多端口加速
安装的时候只配置了一个加速端口,但是你可以配置多端口加速,配置方法非常简单。修改文件

vi /usr/local/haproxy-lkl/etc/port-rules

在文件里添加需要加速的端口,每行一条,可以配置单个端口或者端口范围,以#开头的行将被忽略。 例如:8800或者8800-8810配置完成之后,只需要重启haproxy-lkl即可。

注:最初版本的实现是需要再开一个新端口,后来经人提醒,我又看了一下HAproxy的配置说明,可以直接代理后端端口,不必再开新端口。请注意,使用该方法后,如果HAproxy进程异常退出,会造成无法连接原有端口。所以,请确保在退出 HAproxy时是通过命令正常退出的,在退出时会自动清理原有的防火墙规则。

使用systemctl或者service命令来启动、停止和重启HAporxy-lkl:

systemctl {start|stop|restart} haproxy-lkl
service haproxy-lkl {start|stop|restart}

/usr/local/haproxy-lkl/etc/haproxy.cfg这个文件是通过port-rules自动生成的,每次启动都会重新生成,所以直接修改它的配置没用。 如果想要自定义配置,请修改启动文件:

/usr/local/haproxy-lkl/sbin/haproxy-lkl

更新glibc
1、CentOS 6更新glibc,首先下载如下几个文件:

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

2、然后安装:

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

3、如果以上步骤无法更新,可以手动编译更新

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

4、检查一下:

# 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.
已经升级到glibc 2.15了。

判断BBR已正常工作
判断bbr是否正常启动可以尝试ping 10.0.0.2,如果能通,说明bbr已经启动。

Last modification:March 21, 2023
If you think my article is useful to you, please feel free to appreciate