新年折腾 BBR
人是一种很奇怪的东西,以前家里科学上网速度很慢的时候,只要能打开就很满意了。
现在换了联通,Google 明明已经秒开了,却又开始不满足现状了。
恰巧最近看到了各种 KCP, BBR 技术的介绍,就想给自己的梯子折腾折腾了。
KCP 介绍
KCP 是开源社区的一个新轮子,看 commit 记录是从 2014 年开始开发的。算是一个很新的东西了。
KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。
项目地址:https://github.com/skywind3000/kcp
更多的内容就不详细介绍了,项目主页写得非常详细了。
该项目只是提供了 KCP 的核心算法,而没有对应的应用。如果要用起来的话,可以利用如下两个项目:
kcptun: A Simple UDP Tunnel Based On KCP
项目地址:https://github.com/xtaci/kcptun
和锐速之类的软件一样,可以在底层使用 SS,然后再用 KCP 通道加速。
v2ray: 自称是 SS 的替代者
内置 KCP 协议,需要自己搭建,不依赖额外的组建。
KCP 相关的东西就不多介绍了,上面提到的各种产品都体验过。东西都很新,所以其实都还不成熟。
而且最大的问题是,没有好用的客户端,从终端启动也是挺麻烦的。
而且实测也并没有比 SS 快多少,所以就放弃了。
Linux 4.9 BBR 拥堵算法介绍
为什么它能为你的 SS 提速?因为之前的 TCP 拥堵算法都是基于丢包的,丢包多了它就认为带宽不够了。
而我们伟大的长城正好利用了这个特性,最终达到了慢却又不是完全不可用的状态。
知乎上有人解答的非常好,一下子就看懂了。
传送门:https://www.zhihu.com/question/53559433
第一次看到 Linux 4.9 我就吓尿了,我之前的 VPS 才 2.6 啊…
之前一直在用 bandwagonhost 高性价比机器,每年不到 100,机器速度也非常不多。唯一的缺点就是它是基于 OpenVZ 架构的。
意味着不能自己更换 Linux 内核。也就是说,继续用 bandwagonhost 的话就无法启用 Linux 4.9 了。
另外,同样很新为什么我更愿意用这个?因为它只是修改了服务器的内核,相关的工具包括所有的客户端都不需要做任何修改。因此部署起来方便,以后不用了也方便。
寻找好机器
既然 bandwagonhost 无法支持,那么第一步就是要找一台好机器了。网上搜寻一番后,发现 vultr 还不错。
- 每月 $5,可按小时收费
- 支持 API 调用,可以在不需要的时候关闭机器节约成本
- 全球各地都有机房,试了一下日本机房速度还不错
- KVM 架构,可以自己换内核
利用此链接注册,首次充值可多得 $20。
升级内核,启用 BBR
简单介绍一下 Ubuntu x64 下操作方式:
# 下载并安装内核
cd /tmp/
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-headers-4.9.0-040900_4.9.0-040900.201612111631_all.deb
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-headers-4.9.0-040900-generic_4.9.0-040900.201612111631_amd64.deb
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-image-4.9.0-040900-generic_4.9.0-040900.201612111631_amd64.deb
sudo dpkg -i *.deb
# 重启
reboot
# 查看是否安装成功
uname -r
# 启用 BBR 拥堵控制算法
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
# 查看是否启用成功,如果出现 BBR 就代表成功
sysctl net.ipv4.tcp_available_congestion_control
整个过程非常简单,其他系统可参考这篇文章:传送门
本作品由 Dozer 创作,采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。