首页 » 网络技术 » 使用kcptun给shadowsocks加速100%可用

使用kcptun给shadowsocks加速100%可用

 

开篇说明:本篇文章是结合网络多篇文章综合出来的结果,主要参考了《厘米天空》,《扩软博客》,《k162》,以及简书的一篇文章;

所以综合以上几位的博客内容写出本篇文章,目的是让更多的人都能实验成功;

正文开始:

本篇文章服务端搬瓦工VPS Centos6.6 32位;客户端windows7 64位;

之前好多人都是在用FS(FinalSpeed)做udp加速,但是现在作者已经停止维护,并推出了收费版的Xsocks(http://www.tcpspeed.com),当然之前用过FS的都知道效果很不错,所以如果经济能力允许的话就支持下收费的项目吧;

当然本篇文章是用kcptun替代FS;

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

其实总结来说,个人觉得就通过UDP的方式来实现访问看视频的加速,原来是使用TCP访问,需要进行双方确认,所以访问的速度变快了,流量也用的多了;补充下TCP和UDP的区别(个人理解),大家都知道TCP的三次握手,在建立TCP连接时,保障传输安全要先进行三次的握手(三次握手白话来说就是:A问B:在吗,B回答:在有事么,A问B:我可以和你唠嗑么,B收到回复A:可以唠吧,然后A对B进行唠嗑了……),UDP协议则是不需要问在不在,直接就开唠,这样相信大家就能理解了。

Kcptun下载地址:https://github.com/xtaci/kcptun/releases/tag/v20160922 截至本篇文章发稿时作者的最后一次更新时间20160922

注:我这里用的是centos6 32位的版本,所以我下载的是kcptun-linux-386-20160922.tar.gz(服务端的版本是32的就下32的,64就下64的),我的客户端(就是我现在上网的电脑)是windows7 64位的版本,所以我下载的是kcptun-windows-amd64-20160922.tar.gz,根据你当前的客户端下载,当然你64位的客户端下载32位的版本也可以,反之不可以;

Kcptun客户端配置:

用Xshell或者Putty登陆服务器,下载Kcptun:

#mkdir /root/kcptun

#cd /root/kcptun

#wget https://github.com/xtaci/kcptun/releases/download/v20160922/kcptun-linux-386-20160922.tar.gz

#tar -zxvf kcptun-linux-386-20160922.tar.gz

注意:我这里下载的是kcptun-linux-386-20160922.tar.gz,根据你当前的版本选择!

附:64位包wget https://github.com/xtaci/kcptun/releases/download/v20160922/kcptun-linux-amd64-20160922.tar.gz

创建启动服务:

#vi /root/kcptun/start-kcptun.sh

按i粘贴以下内容:

#!/bin/bash
cd /root/kcptun/
./server_linux_386 -l :2006 -t 23.83.229.171:7777 -key test -mtu 1400 -sndwnd 2048 -rcvwnd 2048 -mode fast2 > kcptun.log 2>&1 &
echo "Kcptun started"

按ESC,输入:x 即可

注意:

我这里是server_linux_386,根据你的情况更改;

23.83.229.171是你的VPS的IP,我这里没有写127.0.0.1,因为我发现写127.0.0.1部分的VPS不好使,导致后续失败,这里直接写你自己服务器的IP地址;

监听端口为2006,这个数字是你自己起的,7777为你当然的ss端口(也就是你之前ss连接的端口号),key为你的验证密钥,这里为test,可以自己写,其他参数不做介绍;

创建关闭服务:

#vi /root/kcptun/stop-kcptun.sh

按i粘贴以下内容:

killall server_linux_386
echo "Kcptun stoped"

按ESC,输入:x 即可

至此为止启动和关闭创建完成!

启动服务

为了确保之前的操作步骤都正确,所以我们要确认服务是否真的启动了!

用#ps aux命令来查看,正在运行的进程(下图为没启动start-kcptun.sh时的状态);

jincheng

输入以下命令启动

#sh /root/kcptun/start-kcptun.sh

启动后的状态

qidong

如上两张图所示,服务已经启动,至此服务端配置完毕!

 

服务端配置:

当前我的主机是windows7 64位的,于是我下载kcptun-windows-amd64-20160922

下载后解压到一个指定的文件夹内,在此文件夹内创建文本文件,内容如下:

Dim RunKcptun
Set fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
'获取文件路径
currentPath = fso.GetFile(Wscript.ScriptFullName).ParentFolder.Path & "\"
'软件运行参数
exeConfig = "client_windows_amd64.exe -l :12300 -r 23.83.229.171:2006 -key test -mtu 1400 -sndwnd 256 -rcvwnd 2048 -mode fast2 -dscp 46"
'日志文件
logFile = "kcptun.log"
'拼接命令行
cmdLine = "cmd /c " & currentPath & exeConfig & " > " & currentPath & logFile & " 2>&1"
'启动软件
WshShell.Run cmdLine, 0, False
'等待1秒
'WScript.Sleep 1000
'打印运行命令
'Wscript.echo cmdLine
Set WshShell = Nothing
Set fso = Nothing
'退出脚本
WScript.quit

保存退出,将此文本文件重命名为run.vbs,这个run.vbs就是客户端的启动程序;

注:这里的12300为你自己起的一个端口,这个12300和之前所有端口都没关系,不能和之前的端口号重复!!!2006是你之前的监听端口,key为之前设置的test!!!

在创建一个关闭程序:

新建文本文件,内容为:taskkill /f /im client_windows_amd64.exe 保存退出,重命名为stop.bat,这里的kcptun.log为日志文件

pz

接下来我们在设置下shadowsocks:

服务器IP为127.0.0.1

服务器端口为12300

密码为你的ss密码(和原来你用ss时候的密码一样)

双击run.vbs启动服务,服务启动后,打开任务管理器可在进程中看到此服务,即表示服务启动完成:

fw

设置客户端开机启动:#echo "sh /root/kcptun/start-kcptun.sh" >> /etc/rc.local

设置服务端开机启动:开始-所有程序-启动 将run.vbs快捷方式拖入进来即可!

加速前后对比图:

%e6%b2%a1%e5%8a%a0%e9%80%9fss

%e5%8a%a0%e9%80%9f%e5%90%8ess

下面是作者给的配置参数样例,适用大部分ADSL接入(非对称上下行)的参数(实验环境电信100MADSL)。其它带宽请按比例调整,比如50MADSL,把客户端的 -sndwnd -rcvwnd 减掉一半,服务端不变。

服务端:   -mtu 1400 -sndwnd 2048 -rcvwnd 2048 -mode fast2
客户端:   -mtu 1400 -sndwnd 256 -rcvwnd 2048 -mode fast2 -dscp 46

结语:本篇文章没有太多介绍所谓的参数含义,当然如果你想弄清楚这些参数的含义,如果你是从上到下按照本篇文章配置的还是失败,那么我建议你,检查下你的防火墙,版本号是否对应,服务是否正常已经启动了等等!

后续的话,可能会针对调优参数写一篇,另外之前写过一篇,ss多端口密码的配置,可以参考http://blog.whsir.com/post-274.html

读此篇文章前,你一定要之前配置过ss,如果之前你都没配置过ss的话,你在配置起来问题可能会很多。

另外,如果你在配置的过程中出现问题,或者发现我的文章有问题,可以给我留言!

 

附:我写了一个一键的小脚本,你可以直接在服务端上输入#wget http://blog.whsir.com/uploads/nginx.repo/kcptun-server.sh

然后#sh kcptun-server.sh即可,直接就一键配置完成了,前提是你一定要启动ss服务,这个脚本需要查找你的ss端口的,也就是说你开放的ss端口是7777,会自动查找到7777,此脚本适用于搬瓦工centos6,其他vps自行测试,服务端使用的是32位!

客户端直接下载:http://blog.whsir.com/uploads/nginx.repo/kcptun-windows64.rar

解压后把run.vbs里面的IP地址改成你的服务器IP和端口即可,写的比较匆忙,如果有问题请给我留言!!!

如需帮助请加群:$$

原文链接:使用kcptun给shadowsocks加速100%可用,转载请注明来源!

17