#加速度# 利用rinetd为OpenVZ实现BBR加速

之前的文章里提过关于BBR,说白了就是一个多发包实现加速的一个东东,一定程度上消耗了更多的流量,但是换取了更高的速度,非常适合海外VPS的加速。但是绝大多数的开通BBR功能都需要对系统内核进行操作,因此也仅限于KVM构架的VPS,对于OpenVZ构架,只能凭借一些其他方法,实现BBR的加速,具体实现方法很多,本文使用的是rinted的方式,该方式最早是linhua的LKL项目,后经过大家修改制作一键包完成的。

目前网络上的BBR分为两种,一种是原版的BBR,也就是Google自家的,另一种是所谓的修改版,也成为魔改版(后缀一般是bbr_powered)

简易安装:一键包安装

 curl https://raw.githubusercontent.com/linhua55/lkl_study/master/get-rinetd.sh | bash

运行脚本会提示输入要加速的端口,可按照自己的需求定制,如果需要增加更多端口,可手动修改/etc/rinetd-bbr.conf文件;另外,上面的安装包实现的是bbr内核,如果要使用修改版bbr,可以把上面脚本按照下面的红色部分进行修改(实际上就是井号注释的一个替换)

#!/bin/bash
# Usage:
#   curl https://raw.githubusercontent.com/linhua55/lkl_study/master/get-rinetd.sh | bash

export RINET_URL="https://github.com/linhua55/lkl_study/releases/download/v1.2/rinetd_bbr_powered"
# export RINET_URL="https://drive.google.com/uc?id=0B0D0hDHteoksVzZ4MG5hRkhqYlk"

if [ "$(id -u)" != "0" ]; then
    echo "ERROR: Please run as root"
    exit 1
fi

for CMD in curl iptables grep cut xargs systemctl ip awk
do
	if ! type -p ${CMD}; then
		echo -e "\e[1;31mtool ${CMD} is not installed, abort.\e[0m"
		exit 1
	fi
done

echo -e "1. Clean up rinetd-bbr"
systemctl disable rinetd-bbr.service
killall -9 rinetd-bbr
rm -rf /usr/bin/rinetd-bbr  /etc/rinetd-bbr.conf /etc/systemd/system/rinetd-bbr.service

echo "2. Download rinetd-bbr from $RINET_URL"
curl -L "${RINET_URL}" >/usr/bin/rinetd-bbr
chmod +x /usr/bin/rinetd-bbr

echo "3. Generate /etc/rinetd-bbr.conf"
read -p "Input ports you want to speed up: " PORTS </dev/tty
for d in $PORTS
do          
cat <> /etc/rinetd-bbr.conf
0.0.0.0 $d 0.0.0.0 $d 
EOF
done 

IFACE=$(ip -4 addr | awk '{if ($1 ~ /inet/ && $NF ~ /^[ve]/) {a=$NF}} END{print a}')

echo "4. Generate /etc/systemd/system/rinetd-bbr.service"
cat < /etc/systemd/system/rinetd-bbr.service
[Unit]
Description=rinetd with bbr
Documentation=https://github.com/linhua55/lkl_study

[Service]
ExecStart=/usr/bin/rinetd-bbr -f -c /etc/rinetd-bbr.conf raw ${IFACE}
Restart=always
User=root

[Install]
WantedBy=multi-user.target
EOF

echo "4. Enable rinetd-bbr Service"
systemctl enable rinetd-bbr.service

echo "5. Start rinetd-bbr Service"
systemctl start rinetd-bbr.service

if systemctl status rinetd-bbr >/dev/null; then
	echo "rinetd-bbr started."
	echo "$PORTS speed up completed."
	echo "vi /etc/rinetd-bbr.conf as needed."
	echo "killall -9 rinetd-bbr for restart."
else
	echo "rinetd-bbr failed."
fi

猜你 喜欢

关于作者: 微魔

小微魔,大智慧!

多条评论

发表回复

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