乐云主机笔记

  • 首页
  • 主机优惠
  • 学习记录
  • 新手教程
  • 自用主机
  • 资源下载
  • 网赚项目
  • 其他
  • pingtest

  1. 首页
  2. 学习记录
  3. 正文

OpenVZ架构VPS安装BBR的三种方法【UML/LKL(91yun)/LKL(Rinetd)】

2017年11月5日 1299点热度 0人点赞 0条评论
最近OpenVZ安装BBR可谓火气火热。可乐一直没写教程,今天就把我所见到的做成集合写成文章吧。建议使用Rinetd

一、UML

本方法来自:https://www.91yun.co/archives/5345

1、一键运行脚本:

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版

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

装完 ssr 和 bbr 就已经运行了,如果你不想改密码和端口的话就可以直接用。。默认配置在下面。
2、进入 uml

screen -x 或者在目录下运行

bash run.sh status用户名: root , 密码: root

具体可见原文地址。

二、LKL(91yun)

原文地址:https://www.91yun.co/archives/6281

安装 LKL 一键包命令

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

如何判断是否安装成功

ping 10.0.0.2

三、rinetd

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

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

2、修改权限:

chmod +x rinetd

3、修改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

4、设置开机启动

vi /etc/systemd/system/rinetd.service
[Unit]
Description=rinetd
[Service]
ExecStart=/root/rinetd -f -c /root/rinetd.conf raw venet0:0
Restart=always 
[Install]
WantedBy=multi-user.target

5、最后执行:

systemctl enable rinetd.service && systemctl start rinetd.service




四、集成魔改BBR版的LKL(扩软)

更新了 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

需要配置的有如下几个选项:

1.需要加速的端口,即的 SS 端口。加速开启之后,流量会先经过 BBR 处理,之后再发送给后端的 SS。

2.可能需要配置 “公网接口名称”,即你服务器上具有公网 IP 的接口名称。搬瓦工 OpenVZ 上默认都是 venet0,但是有朋友可能需要安装在其他服务器上,所以我加入了此选项。

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

1

2

systemctl disable firewalld

systemctl stop firewalld

如需卸载,请使用:

1

./ovz-bbr-installer.sh uninstall

错误说明

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

多端口加速

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

1

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

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

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

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

1

systemctl {start|stop|restart} haproxy-lkl

1

service haproxy-lkl {start|stop|restart}

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

1

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

更新 glibc

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

1

2

3

4

5

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

然后安装:

1

2

3

4

5

# 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

如果以上步骤无法更新,可以手动编译更新(来自网友的方法)

1

2

3

4

5

6

7

8

9

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

检查一下:

1

2

3

4

5

6

# 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 已经启动。

然后检查 iptables 规则

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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,里边有相应的端口规则。

五、南琴浪版rinetd

# Debian && Ubuntu
#单网卡
wget https://raw.githubusercontent.com/nanqinlang-tcp/tcp_nanqinlang/master/Rinetd/bash/tcp_nanqinlang-rinetd-debian+ubuntu.sh
bash tcp_nanqinlang-rinetd-debian+ubuntu.sh
#多网卡
wget https://raw.githubusercontent.com/nanqinlang-tcp/tcp_nanqinlang/master/Rinetd/bash/tcp_nanqinlang-rinetd-debian+ubuntu-multiNIC.sh
bash tcp_nanqinlang-rinetd-debian+ubuntu-multiNIC.sh

# CentOS
# 单网卡
wget https://raw.githubusercontent.com/nanqinlang-tcp/tcp_nanqinlang/master/Rinetd/bash/tcp_nanqinlang-rinetd-centos.sh
bash tcp_nanqinlang-rinetd-centos.sh

# 多网卡
wget https://raw.githubusercontent.com/nanqinlang-tcp/tcp_nanqinlang/master/Rinetd/bash/tcp_nanqinlang-rinetd-centos-multiNIC.sh
bash tcp_nanqinlang-rinetd-centos-multiNIC.sh

############## 2018-03-24 13:00 更新 ##################
文档已发布:
https://sometimesnaive.org/article/linux/bash/tcp_nanqinlang-rinetd

南琴浪魔改 BBR - LKL

# Debian 8+
# 64 bit
# ldd > = 2.14
# tun/tap enabled
wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0/tcp_nanqinlang-rinetd-debianorubuntu.sh
bash tcp_nanqinlang-rinetd-debianorubuntu.sh
# CentOS 7
# 64 bit
# ldd > = 2.14
# tun/tap enabled
wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0/tcp_nanqinlang-rinetd-centos.sh
bash tcp_nanqinlang-rinetd-centos.sh

此命令用于安装 LKL。

在 /home/tcp_nanqinlang 进行安装,所以安装完成后不要动这个文件夹了(除非你想修改端口)。

安装过程中,会提示你选择单个端口或端口段输入,具体已在运行脚本的提示中有说明,这里不再赘述。

安装完成后,会开启 LKL。以后重启机器也会随开机自启。

以后若需要修改转发端口,请将 /home/tcp_nanqinlang/haproxy.cfg 中的端口号和 /home/tcp_nanqinlang/redirect.sh 中的端口号改为你想要的端口或端口段,修改完成后重启服务器。

使用前请注意自己的 iptables 相关设置。

检查 LKL 运行状态

此命令用于检查 LKL 运行与否,可通过返回的提示判断。

卸载 LKL

运行此命令会卸载 haproxy、删除 /home/tcp_nanqinlang、移除 rc.local 开机自启项。稍后请自行移除 iptables 相关规则。

标签: 暂无
最后更新:2018年6月5日

letvps

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

分类
  • 主机优惠
  • 其他
  • 域名优惠
  • 学习记录
  • 新手教程
  • 网赚项目
  • 脚本源码
  • 自用主机
  • 资源下载
书签
  • AdvinServers.com
  • 猫云云计算

COPYRIGHT © 2021 Letcloud.cn. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

粤ICP备15031609号-3