BBR+BBR魔改+Lotsever(锐速)一键脚本 for Centos/Debian/Ubuntu
--------更新
--------安装
--------使用说明
--------关于如何关闭BBR
Kcptun
--------手动安装
--------脚本安装
--------客户端
OpenVZ救星:FinalSpeed
--------搭建
--------客户端的使用

FinalSpeed、NetSpeed、KCPTun这三种工具,抢占宽带、破坏平衡比较严重,所以在使用的时候一些IDC(就是卖你VPS的商家)可能会封你的VPS或账号

BBR+BBR魔改+Lotsever(锐速)一键脚本 for Centos/Debian/Ubuntu

什么是BBR?
(Bottleneck Bandwidth and RTT),类似于锐速的单边加速工具,而且免费使用,不存在破解问题。 这是由谷歌提供的新的TCP拥塞控制算法,其目的就是要尽量跑满带宽,并且尽量不要有排队的情况。目前Linux Kernel 4.9 RC已加入了该算法,所以只要升级内核,即可享用。
简而言之BBR和锐速会让你的服务器连接更快

我在网上收集了一些大佬准备好的一键脚本和素材,包含了CentOS和Ubuntu,也有各种魔改爆改,在此整理汇总以方便使用,感谢开发者们和Google BBR开源项目,使用上我觉得前两个足以满足需求.本文暂时只搬运第一个作为例子.
更多参考:
BBR+BBR魔改+Lotsever(锐速)一键脚本 for Centos/Debian/Ubuntu
[VPS+SSR+锐速(BBR魔改版)实现超级加速]
魔改BBR一键安装脚本 for Debian/CentOS
OpenVZ平台魔改BBR一键脚本之Rinetd方式
超级暴力版魔改BBR一键脚本 for Debian
一键安装最新内核并开启 BBR 脚本

说明:对于CentOS系统的BBR魔改之前搬运过南琴浪大佬的脚本,无奈出现了BUG,导致CentOS安装还存在着问题,前几天友链博主千影,也写出了一个魔改BBR脚本,脚本包含BBR+BBR魔改版+Lotsever(锐速),同时支持Centos、Debian、Ubuntu系统,很方便,也很强大。
脚本出自:https://www.94ish.me/1635.html

更新

【2018年3月3日】
新增南琴浪的暴力魔改BBR,使速度更加暴力,实际效果因线路而定。

安装

支持系统:Centos 6+/Debian 8+/Ubuntu 14+。
注意:该脚本在Vultr各个系统均测试通过,如果期间有出现任何问题,可向原作者反映帮助改善。
运行以下命令:

wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

Ubuntu 18.04魔改BBR暂时有点问题,可使用以下命令安装:

wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh"
apt install make gcc -y
sed -i 's#/usr/bin/gcc-4.9#/usr/bin/gcc#g' '/root/tcp.sh'
chmod +x tcp.sh && ./tcp.sh

如果还有更多系统安装有误的,可以及时反馈。

使用说明

使用脚本后会出现如下选项:
选项
根据自己需求操作,重启后再使用./tcp.sh命令接着操作。

如果在删除内核环节出现这样一张图
内核
注意选择NO,然后根据提示重启系统。

关于如何关闭BBR

因为有的时候bbr反倒会负优化服务器网络所以要关闭,大部分脚本都自带了关闭选项如果没有参考如下:
原文
1、使用root用户登录,运行以下命令:

vim /etc/sysctl.conf

2、删除或注释掉其中的两行:

#net.core.default_qdisc = fq           用#注释掉
#net.ipv4.tcp_congestion_control = bbr 用#注释掉

3、执行命令:

sysctl -p

最后重启服务器生效!

Kcptun

前提是Kcptun不能用于SSR,它会使SSR的混淆失效,所以更适用于加速SS,如果是为SS加速则先搭建好SS

什么是Kcptun
逗逼根据地(摘):Kcptun 是一个非常简单和快速的,基于 KCP 协议的 UDP 隧道,它可以将 TCP 流转换为 KCP+UDP 流。而 KCP 是一个快速可靠协议,能以比 TCP 浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。
Kcptun 是 KCP 协议的一个简单应用,可以用于任意 TCP 网络程序的传输承载,以提高网络流畅度,降低掉线情况。由于 Kcptun 使用 Go 语言编写,内存占用低(经测试,在64M内存服务器上稳定运行),而且适用于所有平台,甚至 Arm 平台。
kcptun
KCP 协议:https://github.com/skywind3000/kcp
Kcptun 项目地址:https://github.com/xtaci/kcptun

手动安装

摘自逗逼根据地
本教程使用的是 Debian 64x 系统。

下载KCPTun,并解压:

注意:下面的KCPTun文件下载可能不是最新的地址,最新文件的下载地址看这里:Github-kcptun-releases,直接替换第三行 wget 后面链接的版本号就行了。

注意:KCPTun不分系统版本,只分主系统和位数,比如 64x 就选择 kcptun-linux-amd64-XXX.tar.gz ,32x 就选择 kcptun-linux-386-XXX.tar.gz ,Centos/Debian/Ubuntu都一样。

mkdir /root/kcptun
# 新建一个文件夹
cd /root/kcptun
# 进入刚才新建的文件夹
wget https://github.com/xtaci/kcptun/releases/download/v20161222/kcptun-linux-amd64-20161222.tar.gz
# 下载最新的 kcptun-linux-amd64 文件
tar -zxvf kcptun-linux-amd64-20161222.tar.gz
# 解压刚才下载的文件

解压之后会发现只有两个文件: client_linux_amd64server_linux_amd64,第一个是是客户端文件(linux的客户端),第二个是服务端文件。

目前KCPTun已经加入了配置文件设定,但没有任何启动脚本,所以需要新建一些脚本。

创建 start.sh:

vi /root/kcptun/start.sh

写入以下内容:

#!/bin/bash
cd /root/kcptun/
./server_linux_amd64 -c /root/kcptun/server-config.json 2>&1 &
echo "Kcptun started."

server_linux_amd64 对应服务端文件名,请对应修改。
创建配置文件:

vi /root/kcptun/server-config.json

写入以下内容:

{
 "listen": ":2333",
 "target": "127.0.0.1:8388",
 "key": "dou-bi.co",
 "crypt": "aes-192",
 "mode": "fast2",
 "mtu": 1350,
 "sndwnd": 1024,
 "rcvwnd": 1024,
 "datashard": 70,
 "parityshard": 30,
 "dscp": 46,
 "nocomp": false,
 "acknodelay": false,
 "nodelay": 0,
 "interval": 40,
 "resend": 0,
 "nc": 0,
 "sockbuf": 4194304,
 "keepalive": 10,
 "log": "/root/kcptun/kcptun.log"
}
  • listen 表示 Kcptun 的服务端监听端口,用于接收外部请求和发送数据,默认 2333
  • target 表示要加速的地址,由于 Kcptun 和 Shadowsocks 在同一服务器,地址填写 127.0.0.1(不需要改,这是指本机IP,除非你有多个IP),而 8388 为 Shadowsocks 服务端监听端口
  • key 是 Kcptun 的验证密钥,上面的启动脚本参数默认加上了-key dou-bi.co如果不需要可以删掉,服务端和本地必须一致才能通过验证,请自行设置;
  • mode 为加速模式,默认 fast2
  • crypt 为加密方式,默认 aes-192
  • nocomp 为压缩传输,默认 false 表示开启压缩传输。

其他参数可以参考项目主页的介绍。

下面是引用官方介绍:

响应速度:

fast3 > [fast2] > fast > normal > default

有效载荷比:

default > normal > fast > [fast2] > fast3

中间 mode 参数比较均衡,总之就是越快越浪费带宽,推荐模式 fast2。

其他参数,请使用 ./server_linux_amd64 -h 查看,更深层次的参数调整需要理解 KCP 协议,并通过“隐藏参数”调整。

作者推荐配置参数:

适用大部分ADSL接入(非对称上下行)的参数(实验环境电信100M ADSL)。
其它带宽请按比例调整,比如 50M ADSL,把 -sndwnd -rcvwnd 减掉一半。

SERVER: -mtu 1400 -sndwnd 2048 -rcvwnd 2048 -mode fast2
CLIENT: -mtu 1400 -sndwnd 256 -rcvwnd 2048 -mode fast2 -dscp 46

注意:客户端和服务端的参数 -sndwnd 2048 -rcvwnd 2048 这两个值不要大于你的本地宽带,否则流量消耗会浪费好几倍,100M就是2048,50M就是1024。这两个值可以逐渐调小,但是不能比本地的实际宽带大!
注意:产生大量重传时,一定是窗口偏大了

创建 stop.sh:

vi /root/kcptun/stop.sh

写入以下内容:

#!/bin/bash
PID=`ps -ef | grep server_linux_amd64 | grep -v grep | awk '{print $2}'`
if [ "" != "$PID" ]; then
 echo "killing $PID"
 kill -9 $PID
else
 echo "Kcptun not running!"
fi

注意:这里的 server_linux_amd64 ,自行替换为你的 服务端名称,64位的系统就是示例的这个,如果是32位的则是 server_linux_386

创建 restart.sh:

vi /root/kcptun/restart.sh

写入以下内容:

#!/bin/bash
cd /root/kcptun/
echo "Stopping Kcptun..."
bash stop.sh
bash start.sh
echo "Kcptun started."

给上面创建的脚本添加执行权限:

chmod +x /root/kcptun/*.sh

启动服务端:

sh /root/kcptun/start.sh

日志文件在:/root/kcptun/kcptun.log
监听日志信息:

tail -f /root/kcptun/kcptun.log

停止服务端:

sh /root/kcptun/stop.sh

重启服务端:

sh /root/kcptun/restart.sh

添加开机启动
Centos系统:

chmod +x /etc/rc.d/rc.local && echo "sh /root/kcptun/start.sh" >> /etc/rc.d/rc.local

Ubuntu/Debian系统:

chmod +x /etc/rc.local && echo "sh /root/kcptun/start.sh" >> /etc/rc.local

升级服务端
重复一开始的步骤,下载最新版本的压缩包然后解压覆盖源文件,记得先 停止KCPTUN运行再覆盖。

cd /root/kcptun
# 进入新建的文件夹
wget https://github.com/xtaci/kcptun/releases/download/v20161222/kcptun-linux-amd64-20161222.tar.gz
# 下载最新的 kcptun-linux-amd64 文件
tar -zxvf kcptun-linux-amd64-20161222.tar.gz
# 解压刚才下载的文件

故障排除

  • 客户端和服务器端皆无 stream opened信息。
    连接客户端程序的端口设置错误。
  • 客户端有 stream opened信息,服务器端没有。
    连接服务器的端口设置错误,或者被防火墙拦截。
  • 客户端服务器皆有 stream opened信息,但无法通信。
    上层软件的设定错误。
    注意:日志信息在你的客户端或者服务端同目录下的 kcptun.log 中。

KcpTun有个缺点,就是实际流量消耗 最少是 你使用量的两倍!如果参数调整有问题,可能会浪费十几倍的流量,而加速幅度也并不会上升多少。
出现这个情况有几种可能:

  • ISP 对UDP丢包极高,例如50%
  • 服务器,客户端本身的带宽较低,可以适当调低sndwnd /rcvwnd
  • 可以尝试 -dscp 46参数降低丢包率。

希望你们注意一下这个问题,可能搞不好就被 IDC 以滥用网络的名义给封VPS了。

参考资料:https://github.com/xtaci/kcptun ; https://blog.kuoruan.com/102.html

脚本安装

摘自Visoon's Blog

wget --no-check-certificate https://github.com/kuoruan/shell-scripts/raw/master/kcptun/kcptun.sh
chmod +x ./kcptun.sh
./kcptun.sh

1.设置 Kcptun 的服务端端口:

请输入 Kcptun Server 端口 [1-65535]:
(默认: 29900):

请输入一个未被占用的端口,Kcptun 运行时将使用此端口。
2.设置加速的 IP:

请输入需要加速的地址:
(默认: 127.0.0.1):

一般填入你服务器的IP。如果你想使用 IPv6,请直接填写 IPv6 地址,不需要加 [],脚本会自动添加。
3.设置需要加速的端口:

请输入需要加速的端口 [1-65535]:
(默认: 12948):

填入上面获取到的加速端口。
程序会检查当前是不是有程序占用着此端口,如果你的 Shadowsocks 没在运行,或者没有软件使用此端口,会弹出如下提示:
当前没有软件使用此端口, 确定加速此端口?(y/n)
如果你确认 Shadowsocks 运行时会使用此端口,那么输入 “y” 回车即可。
4.设置 Kcptun 密码:

请输入 Kcptun 密码:
(如果不想使用密码请留空):

这就是说,你可以为 Kcptun 单独设置一个密码,防止被他人恶意使用。这个密码和 SS 的密码没有半毛钱关系,请不要把它们混淆了。
再提一句,Kcptun 和 Shadowsocks 没有任何关系,请不要脑补它们之间存在任何联系,Kcptun 你可以理解为一款网络加速软件,只不过它是通过将 TCP 协议转换为 UDP 协议,然后再通过大量的发送数据包,浪费了带宽以换取网速的提升。它能加速所有以 TCP 协议传输数据的软件,不单单是 Shadowsocks。
回到上面的密码设置问题,如果你这里选择直接回车,也就是代表你不自定义密码。但是 Kcptun 有一个默认的密码,这个密码是: it's a secrect 。
5.禁用压缩

是否禁用数据压缩?
(默认: 不禁用) [y/n]:

(不启用会更快)
Kcptun 默认是启用压缩的。如果你这里设置为 y,也就是配置为 nocomp:true,那么就是禁用压缩。
许多朋友这里设置的是保持默认(启用压缩),而偏偏在软件之中设置为禁用压缩,当然就连不上咯。
其他配置项不用我说了,如果你了解它是干什么的,可以自定义配置。如果不知道,那么直接回车使用默认参数。
但是,使用默认参数,是有可能浪费大量流量的,如果你想减少流量使用,你需要会调节参数:
先将 client rcvwnd 和 server sndwnd 调到一个较小值;
同时在两端逐步增大 client rcvwnd 和 server sndwnd ;
尝试下载,观察如果带宽利用率(服务器+客户端两端都要观察)接近物理带宽则停止,否则跳转到第二步。
任何事物都是有两面性的,选择了速度,就只有放弃流量。
各参数详细信息请查看:https://github.com/xtaci/kcptun

如果安装成功,应该能看到如下输出信息:

恭喜, Kcptun 服务端配置完毕!

正在获取当前安装的 Kcptun 版本...

服务器IP:  10.10.10.10
端口:  29900
加速地址: 127.0.0.1:8388
密码: 123456
加密方式 Crypt:  salsa20

当前安装的 Kcptun 版本为: v20160922

推荐的客户端配置为:

{
"localaddr": ":8388",
"remoteaddr": "10.10.10.10:29900",
"key": "123456",
"crypt": "salsa20",
"mode": "fast",
"mtu": 1350,
"sndwnd": 1024,
"rcvwnd": 1024,
"datashard": 10,
"parityshard": 3,
"dscp": 0,
"conn": 1,
"autoexpire": 60,
"nocomp": false
}
手机端参数可以使用:
*******

其他参数请自行计算或设置, 详细信息可以查看: https://github.com/xtaci/kcptun

Kcptun 安装目录: /usr/share/kcptun
Kcptun 日志文件目录: /var/log/kcptun/

请将以上的提示信息复制保存下来,后面配置客户端会用到这些提示信息。
注意:服务端的 sndwnd 对应的是客户端的 recwnd,所以请不要问我为什么输出的客户端参数和你配置的服务端参数是反的。
安装之后,Kcptun 服务交由 Supervisor 管理。
Supervisor 相关命令:

service supervisord {start|stop|restart|status}

Kcptun 相关命令:

supervisorctl {start|stop|restart|status} kcptun

Supervisor 启动的时候会同时启动 Kcptun,运行 kcptun 相关命令时先确保 Supervisor 已启动。

客户端

客户端地址:https://github.com/xtaci/kcptun/releases
手机上的SS需要在配置界面下方开启KCP:
android
把搭建完成后显示的那一串参数放进来就可以
Windows上如下图
Win
注:本地侦听端口是你搬瓦工后台影梭的端口,端口才是你自己设置的Kcptun的端口,kcp服务器地址为你搬瓦工的地址。
其它软件如何利用Kcptun加速
安装在电脑上的某些需要加速的软件,只需将服务器IP改为127.0.0.1,端口与前文"localaddr"项保持一致,其它密码及加密项不需更改,连接成功后就可以使用Kcptun加速了。

Mac上新版 ShadowsocksX-NG 貌似已经集成了 KcpTun Client,可以直接使用,下载地址
手动安装可以参考Max Sky的博客

OpenVZ救星:FinalSpeed

这个几乎用不到,作者已经开始收费并删除了免费使用的代码,但是还是记录一下最后的免费版

搭建

这里使用91yun的脚本,Github地址,github 里也有服务器端和客户端的文件。大家有需求可以自行去下载。

安装:

wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/finalspeed/master/install_fs.sh && bash install_fs.sh

一键卸载代码

wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/finalspeed/master/install_fs.sh && bash install_fs.sh uninstall

finalspeed 操作命令

启动: /etc/init.d/finalspeed start

停止命令: /etc/init.d/finalspeed stop

状态命令(查看日志): /etc/init.d/finalspeed status

finalspeed 安装路径

安装路径: /fs/

日志路径: /fs/server.log

客户端的使用

参考91yun博客
FinalSpeed 客户端 Windows 版
下载地址 :
finalspeed_install1.0.exe

finalspeed_install1.2.exe

如果大家觉的 1.2 的不稳定可以换回 1.0 的使用

FinalSpeed 客户 端 Java 版 , 支持 OS X,Linux
下载地址 :
finalspeed_client1.0.zip
系统需安装 java 运行环境 ,Linux 还需安装 libpcap.
Ubuntu,Debian 安装 libpcap: apt-get -y install libpcap-dev
Centos 安装 libpcap: yum -y install libpcap

安装 : 下载解压 .
运行 : 打开终端 , 假设 finalspeed_client.jar 所在路径为 /fsclient , 先切换到该路径 cd /fsclient ,
然后执行 sudo java -jar finalspeed_client.jar , 前面加 sudo, 因为必须以 root 权限运行 , 如果没有 root 权限 , 会无法启用 tcp 协议 .

  1. 服务器必须同时部署 FinalSpeed 服务端才能进行加速 .
  2. 客户端必须准确设置物理带宽 , 最终加速的速度不会超过所设置的带宽值 , 如果设置值高于实际带宽会造成丢包 , 导致速度变慢 .
  3. 客户端首选 tcp 协议 , 如果 udp 不稳定 , 请切换到 tcp.
  4. 若服务器为 openvz 架构 , 客户端只能选择 udp 协议 , 其他架构同时支持 tcp 和 udp 协议 .
    5.windows 客户端使用 tcp 协议时不兼容锐速 , 停止锐速后可以正常运行 .
    6.FinalSpeed 不提供加密功能 , 如有安全需求 , 不要直接加速明文协议 .

加速 ssh 教程
假设服务器 IP 为 10.10.10.10,finalspeed 端口为默认 150,ssh 端口为 22.

  1. 运行 FinalSpeed 客户端 , 填写服务器地址 10.10.10.10 .
    q
  2. 点击添加 , 增加加速端口 , 加速端口为 ssh 的监听端口 22, 本地端口任意 , 这里是 1000 .
    w
  3. 运行 ssh 客户端 , 增加连接 , 主机为 127.0.0.1, 端口号为加速端口对应的本地端口 , 这里是 1000, 设置如下 .
    e
  4. 设置完成后 , 输入 ssh 账号 , 密码 , 成功连接 ,FinalSpeed 状态栏会出现 ” 连接服务器成功 ” 提示 .

版权声明:本文为原创文章,版权归Joe所有,转载请注明出处.

本文链接:https://www.j000e.com/linux/bbrlotserver.html
知识共享许可协议
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

Last modification:January 14th, 2020 at 02:06 pm
If you think my article is useful to you, please feel free to appreciate