脚本: 魔改 BBR 一键安装脚本 for Debian&CentOS6/7

全文转载自 南琴浪博客
2017.10.28 更新:初始版本
2017.10.30 更新:作者升级了版本号,修改一键脚本
2017.10.31 更新:CentOS暂时有BUG,已删除
2017.11.05 更新:CentOS已更新

简介

  • 魔改 BBR 一键安装脚本
    tcp_nanqinlang.sh
    适用于 Debian 7+ / CentOS 6/7

  • BBR 当然是家喻户晓了,是出自谷歌员工之手的应用于 Linux 内核中的拥塞控制技术。关于拥塞控制技术,可以参看我的另一篇帖子 也谈TCP拥塞控制技术 与BBR的加速原理

  • 为了加速国内与目标服务器间的网络,让 BBR 发挥出更大(暴力)的实力,魔改就此诞生。

一键脚本

  • 需要使用此脚本,只需运行以下(请注意适用环境)
# Debian 7+
wget -N --no-check-certificate https://github.com/nanqinlang-tcp/tcp_nanqinlang/releases/download/3.0.1/tcp_nanqinlang_3.0.1.sh
bash tcp_nanqinlang_3.0.1.sh
  • CentOS 版,尚处于测试版,请勿在重要环境下使用
# CentOS 6/7
# devel !
wget -N --no-check-certificate https://raw.githubusercontent.com/nanqinlang-tcp/tcp_nanqinlang/devel/CentOS/tcp_nanqinlang_1.1.3.sh
bash tcp_nanqinlang_1.1.3.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 上的那个大致相当,主要在于以下区别:

CentOS 的脚本,套路和上面 Debian 的大致相当,主要在于以下区别:

  • 不会询问安装版本号,直接安装内核版本 v4.12.10
  • 内核安装完成后,系统中会装有 linux-4.12.10 linux-devel-4.12.10 linux-headers-4.12.10 三个内核
  • 内核安装完成后,系统中依旧会留有旧版本的 linux-x.xx.xx-ml 内核,这些残留的内核,会在执行第二个选项 “安装并启用算法” 后被移除
  • 请注意,“安装并启用算法”选项一定要在执行完成第一个选项“安装内核”并重启 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 版的脚本,“安装内核”选项可以任意指定要安装的内核版本,可升可降
  • 卸载命令不会改动您的内核
  • 编译算法时如有报错请私戳我
  • 魔改: 暴力"魔"(膜),不可取 (逃~