2016年6月15日星期三

搬瓦工VPS/OPENVZ加速工具KCPTUN


之前介绍过finalspeed,在搬瓦工这类openvz架构的vps上为小伙伴加速艾斯艾斯起到了很好的效果。不过作者宣布FS项目暂停维护后,大家使用起来也不是那么方便了。今天无意间在扩软博客看到这款finalspeed的最佳替代品kcptun,涨知识了,尝试了一下结果发现加速效果很明显,而且内存占用很小。以下内容经过实践转载而来,已经在搬瓦工和sentris的便宜货上试过,720p很流畅。

Kcptun介绍

Kcptun 是一个非常简单和快速的,基于 KCP 协议的 UDP 隧道,它可以将 TCP 流转换为 KCP+UDP 流。而 KCP 是一个快速可靠协议,能以比 TCP 浪费10%-20%的带宽的代价,换取平均速度提高 30%-40%,且最大延迟降低三倍的传输效果。
Kcptun 是 KCP 协议的一个简单应用,可以用于任意 TCP 网络程序的传输承载,以提高网络流畅度,降低掉线情况。由于 Kcptun 使用 Go 语言编写,内存占用低,而且适用于所有平台,甚至 Arm 平台。
Kcptun 工作示意图:
Kcptun 项目地址:https://github.com/xtaci/kcptun
Kcp-server 是在 Kcptun 的基础上,添加了配置文件的支持,并简化了安装过程。本教程不探讨 Kcp-server 的使用,着重介绍 Kcptun 的配置。

部署Kcptun

本教程以 CentOS 6.5 64位为例。
首先下载 Kcptun,可以到 GitHub 上获取最新版:https://github.com/xtaci/kcptun/releases
用 Xshell 或者 Putty 登陆服务器,下载 Kcptun 的预编译版:
mkdir kcptun
cd kcptun
wget https://github.com/xtaci/kcptun/releases/download/v20160613/kcptun-linux-amd64-20160613.tar.gz
tar -zxf kcptun-linux-amd64-20160613.tar.gz
注意:请根据你的系统下载对应版本。32位系统下载 kcptun-linux-386-*.tar.gz,64位系统下载 kcptun-linux-amd64-*.tar.gz
解压之后有两个文件:client_linux_amd64 和 server_linux_amd64,一个用于服务器,一个用于客户端。
这个项目目前还没有 init 脚本,也还不支持配置文件,于是我写了两个简单的 sh 脚本,用于启动和关闭服务端。请在服务端程序相同目录下新建两个文件 start.sh 和 stop.sh。
创建 start.sh
vi start.sh
写入以下内容:
./server_linux_amd64 -l ":29900" -t "127.0.0.1:8388" --key "test" --mode "fast2" > kcptun.log 2>&1 &
server_linux_amd64 对应服务端文件名,请对应修改。
解释一下参数:-l 表示 Kcptun 的服务端监听端口,用于接收外部请求和发送数据,默认 29900;-t 表示要加速的地址,我这里设置的是我服务器的 Shadow*socks 端口8388;–key 是 Kcptun 的验证密钥,服务端和本地必须一致才能通过验证,请自行设置;–mode 为加速模式,默认 fast。
响应速度:
fast3 > [fast2] > fast > normal > default
有效载荷比:
default > normal > fast > [fast2] > fast3
中间mode参数比较均衡,总之就是越快越浪费带宽,推荐模式 fast2
其他参数,请使用 ./server_linux_amd64 -h 查看,更深层次的参数调整需要理解 KCP 协议。
创建 stop.sh
vi stop.sh
写入以下内容:
PID=`ps -ef | grep server_linux_amd64 | grep -v grep | awk '{print $2}'`
if [[ "" != "$PID" ]]; then
echo "killing $PID"
kill -9 $PIDfi

然后可以启动服务端:
sh start.sh
kcptun.log 为日志信息。
停止服务端请使用:
sh stop.sh
配置客户端
以本地 Windows 64位系统为例,首先下载 Kcptun 的 Windows 版本。
我这里先新建一个文件夹,命名为 Kcptun,然后下载:
https://github.com/xtaci/kcptun/releases/download/v20160613/kcptun-windows-amd64-20160613.tar.gz
备用下载地址
解压到文件夹下。
由于 Kcptun 是控制台程序,所以我选择使用 vbs 脚本,来达到后台运行的目的:
新建 run.bat
start /b client_windows_amd64.exe -l ":2000" -r "10.10.10.10:29900" --key "test" --mode "fast2" > kcptun.log 2>&1
本地监听端口为 2000;vps服务器 IP 地址 10.10.10.10 端口 29900;验证密钥和服务端一致。
如果要测试的话,现在运行run.bat然后在S-S客户端里设置好就行了。
后台运行的话新建 run.vbs
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run ("run.bat"), 0, False
Set WshShell = Nothing

新建 stop.bat
taskkill /im client_windows_amd64.exe
然后双击 run.vbs 运行程序,使用 stop.bat 来停止程序,kcptun.log 为输出的日志信息。

Shadowsocks 客户端配置

在客户端中新建服务器:
  • 服务器 IP 填写本机:127.0.0.1
  • 服务器端口填写:2000
正确填写你的 Shadowsocks 密码,加密方式,协议和混淆方式。
切换到该服务器上,测试是否正确运行。

速度实测

本人在sentris的128M内存vps上测试了看youtube视频能稳定在2000左右,720p流畅。最主要的是vps上内存和CPU占用率非常低,这点完爆finalspeed了。
本文参考链接:https://blog.kuoruan.com/102.html
厘米总结:如果你资金有限,只能买openvz架构的vps,那么我首先推荐你搬瓦工,技术稳定性是低端vps的业界标杆,后台机房随便切换,后台一键S-S很方便。搬瓦工等openvz类vps目前有效的加速方案就是kcptun、finalspeednet_speeder这三种,前两种需要配合客户端,最后一种不需要客户端但是效果最不明显。如果你能接受5美元一月更好的vps,那么vultr、DO是你不错的选择。

本文出自:http://www.cmsky.com/kcptun/



0 评论:

发表评论