脚本: 魔改 BBR 一键安装脚本 for Debian / CentOS

全文转载自南琴浪 I 你们呐,naive ! 南琴梨の钦定丈夫

简介

  • 魔改 BBR 一键安装脚本
    tcp_nanqinlang.sh
    适用于 Debian 7+ / CentOS 6/7
  • BBR 当然是家喻户晓了,是出自谷歌员工之手的应用于 Linux 内核中的拥塞控制技术。关于拥塞控制技术,可以参看我的另一篇帖子 也谈TCP拥塞控制技术 与BBR的加速原理
  • 为了加速国内与目标服务器间的网络,让 BBR 发挥出更大(暴力)的实力,魔改就此诞生。

一键脚本

  • 需要使用此脚本,只需运行以下(请注意适用环境)
# Debian 7+
wget https://raw.githubusercontent.com/nanqinlang-tcp/tcp_nanqinlang/master/Debian/tcp_nanqinlang_3.0.sh &&
bash tcp_nanqinlang_3.0.sh
# CentOS 6/7
wget https://raw.githubusercontent.com/nanqinlang-tcp/tcp_nanqinlang/master/CentOS/tcp_nanqinlang_1.1.sh &&
bash tcp_nanqinlang_1.1.sh

使用简介

  • 出现四个选项供以选择

安装内核

  • 用于安装内核

内核安装完成

  • 确认内核更换完成后,重启你的 vps
    重启开机后,再次运行此脚本,选择第二项: 安装并开启算法

安装并开启算法

  • 用于编译并启用魔改 BBR 算法
  • 运行这个命令后,会提示选择魔改方案:温和模式(gentle mode) 或 暴力模式(violent mode)
    温和模式采用较小的数值,更注重 TCP 的公平友好;暴力模式则采用较大数值,增强竞争性。

选择魔改方案

启用魔改算法成功

检查运行状态

  • 用于检查 tcp_nanqinlang 是否已被 加载 (installed) 和 启用 (running)

卸载

  • 不会删除已安装的内核,仅 移除 sysctl.conf 的 tcp_nanqinlang 设置项
    然后重启机器后,算法才会停止运行

动作明细

  • 脚本的实质是指令和判断的集合
    这部分,来具体说明下,这篇帖子所述脚本,在被运行后,在系统中进行了哪些操作:
    (- 还有这种操作?)
    (- 没错,这是最新操作。)

Debian 7+

Debian 7+ 的脚本包括如下动作:

  • 安装内核
    下载内核安装包至 /home/tcp_nanqinlang
    系统中只会留下新安装的系统,之前装有的内核都会被卸载
    安装的内核版本由你指定,且不应低于 4.9.3
    指定要安装的内核版本时,若输入为空,则会安装内核 v4.10.10。若不确定应输入哪个版本号,直接回车即可
    运行此命令后,系统中只会留下你指定版本的内核,其它内核版本均将被移除

输入你想安装的内核版本

  • 此命令完成后,系统中会装有 linux-image-版本号-lowlatency linux-headers-版本号-all linux-headers-版本号-lowlatency 三个内核
    当指定安装内核版本为 v4.10.2 时,只会安装 image 内核 脚本更新至 v3.0 已移除此特性,若需要使用请使用 v2.9.1 版本
    当指定安装内核版本为 v4.13.x 时,会使用新版本内核适配的源码
  • 启用魔改算法
    /etc/sysctl.conf 中添加项: tcp_congestion_control=nanqinlang

CentOS 6/7

CentOS 6/7 的脚本,套路和 Debian 上的那个大致相当,主要在于以下区别:

  • 安装内核
    下载内核安装包至 /home/tcp_nanqinlang
    安装内核版本 v4.13.8(main line)
    不会询问你需要安装哪个版本号的内核
    此命令完成后,系统中会装有 linux-4.13.8 linux-devel-4.13.8 linux-headers-4.13.8 三个内核
    当这个命令完成后,和上面 Debian 版的脚本不同,系统中依旧会留有其它版本的内核,这些留有的其它版本的内核,会在执行第二个选项“安装并启用算法”后被移除
    请注意,“安装并启用算法”选项一定要在执行完成第一个选项“安装内核”并重启 vps 后才能执行
  • 启用魔改算法
    /etc/sysctl.conf 中添加项: tcp_congestion_control=nanqinlang

魔改概要

# 以 暴力模式 为例
pacing = 6 / 3
BBR_UNIT = * 6 / 3
rtt_sec = 5
rtt_max = 40
rtt_ms = 100
cycle_len + 7

补充一下

  • 运行脚本时,请使用 bash 命令
  • 对于 Debian 版的脚本,“安装内核”选项可以任意指定要安装的内核版本,可升可降
  • 卸载命令不会改动您的内核
  • 编译算法时如有报错请私戳我
  • 魔改: 暴力"魔"(膜),不可取 (逃~)
阅读剩余
THE END