原文来自:https://github.com/iMeiji/shadowsocks_install/wiki/%E5%BC%80%E5%90%AFTCP-BBR%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6%E7%AE%97%E6%B3%95

BBR 目的是要尽量跑满带宽, 并且尽量不要有排队的情况, 效果并不比速锐差

Linux kernel 4.9+ 已支持 tcp_bbr 下面简单讲述基于KVM架构VPS如何开启

附:
OpenVZ 架构VPS开启BBR (容易导致判定滥用ban机,慎用!)

Debian/Ubuntu TCP BBR 魔改版 (不支持4.13.*及更新的内核)

Debian 8+ / Ubuntu 14

Ubuntu 16.04

安装 Hardware Enablement Stack (HWE),自动更新内核

apt install --install-recommends linux-generic-hwe-16.04
  • 删除旧内核(可选) apt autoremove

CentOS 6

  • 下载更换内核
    最新内核查看这里

    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
    yum --enablerepo=elrepo-kernel install kernel-ml -y
  • 查看内核是否安装成功

    rpm -qa | grep kernel
  • 删除旧内核(可选)

    rpm -ev 旧内核
  • 更新 grub 系统引导文件并重启

    sed -i 's:default=.*:default=0:g' /etc/grub.conf
    reboot

    开不了机的打开 vps 后台控制面板的 vnc, 开机卡在 grub 引导, 只需要手动选择内核就可以了

安装完成后不要忘记修改 /boot/grub/menu.lst 和 /etc/grub.conf,将这两个文件中旧内核的启动项删除即可避免无法重启的问题。

  • 更新到最新版内核 yum --enablerepo=elrepo-kernel update -y reboot

CentOS 7

  • 下载更换内核
    最新内核查看这里

    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
    yum --enablerepo=elrepo-kernel install kernel-ml -y
  • 查看内核是否安装成功

    rpm -qa | grep kernel
  • 删除旧内核(可选)

    rpm -ev 旧内核
  • 更新 grub 系统引导文件并重启

    egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
    grub2-set-default 0 # default 0 表示第一个内核设置为默认运行, 选择最新内核就对了
    reboot
  • 注意,某些服务商(如 Digital Ocean)可能需要首先将 VPS 配置为可自定义内核,然后 grub2 的配置才会生效。

重新启动后,如果会出现 “read-only file system” 的错误,root账户下执行 mount -o remount rw / 即可

  • 更新到最新版内核

方法同 CentOS 6

开启bbr

开机后 uname -r 看看是不是内核 >= 4.9

执行 lsmod | grep bbr,如果结果中没有 tcp_bbr 的话就先执行

modprobe tcp_bbr
echo "tcp_bbr" >> /etc/modules-load.d/modules.conf

执行

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

保存生效
sysctl -p

执行

sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

如果结果都有 bbr, 则证明你的内核已开启 bbr

执行 lsmod | grep bbr, 看到有 tcp_bbr 模块即说明 bbr 已启动

最新文章

  1. 为WLW开发Latex公式插件
  2. mysql获取一个表中的下一个自增(id)值的方法
  3. windows 7下qtcreator里QWT文件的pro配置
  4. git diff patch
  5. TeamViewer连接Windows8.1系统黑屏解决方案
  6. oracle学习----逻辑读
  7. javascript - C++, Qt, QtWebKit: How to create an html rendering window so that your application would get callbacks from JS calls? - Stack Overflow
  8. 基础算法-查找:线性索引查找(II)
  9. kingso - / - Taocode
  10. 【安德鲁斯】基于脚本的数据库"增量更新",如果不改变,每次更新java代码、!
  11. NSUserDefaults API简单的介绍和使用英文文件
  12. mysql数据库参数innodb_buffer_pool_size和max_connections
  13. centos7.6编译安装php7.2.11及redis/memcached/rabbitmq/openssl/curl等常见扩展
  14. 机器学习之--KNN算法简单实现
  15. YARN集群的mapreduce测试(三)
  16. POJ 3189 Steady Cow Assignment 【二分】+【多重匹配】
  17. Parallel Programming for FPGAs 学习笔记(1)
  18. Android HttpURLConnection.connect找不到源 HttpURLConnection连接失败 HttpURLConnection.connect IO异常 解决办法
  19. Tomcat笔记:Tomcat的执行流程解析
  20. 官方推荐的MySQL参数设置值

热门文章

  1. 传统数据仓库项目的优化手段 (针对 Oracle+DataStage )
  2. IOS 摇一摇的方法
  3. 大小端,"字节序"
  4. Android(java)学习笔记20:UDP协议发送数据
  5. python:进程操作
  6. NYOJ298 点的变换 【矩阵乘法经典】
  7. SpringMVC学习记录六——异常定义和上传图片
  8. spring异常+自定义以及使用
  9. HDU1214 圆桌会议(找规律,数学)
  10. js标准对象