开篇说明:本篇文章是结合网络多篇文章综合出来的结果,主要参考了《厘米天空》,《扩软博客》,《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时的状态);
输入以下命令启动
#sh /root/kcptun/start-kcptun.sh
启动后的状态
如上两张图所示,服务已经启动,至此服务端配置完毕!
服务端配置:
当前我的主机是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为日志文件
接下来我们在设置下shadowsocks:
服务器IP为127.0.0.1
服务器端口为12300
密码为你的ss密码(和原来你用ss时候的密码一样)
双击run.vbs启动服务,服务启动后,打开任务管理器可在进程中看到此服务,即表示服务启动完成:
设置客户端开机启动:#echo "sh /root/kcptun/start-kcptun.sh" >> /etc/rc.local
设置服务端开机启动:开始-所有程序-启动 将run.vbs快捷方式拖入进来即可!
加速前后对比图:
下面是作者给的配置参数样例,适用大部分ADSL接入(非对称上下行)的参数(实验环境电信100MADSL)。其它带宽请按比例调整,比如50MADSL,把客户端的 -sndwnd -rcvwnd 减掉一半,服务端不变。
服务端: -mtu 1400 -sndwnd 2048 -rcvwnd 2048 -mode fast2
客户端: -mtu 1400 -sndwnd 256 -rcvwnd 2048 -mode fast2 -dscp 46
结语:本篇文章没有太多介绍所谓的参数含义,当然如果你想弄清楚这些参数的含义,如果你是从上到下按照本篇文章配置的还是失败,那么我建议你,检查下你的防火墙,版本号是否对应,服务是否正常已经启动了等等!
后续的话,可能会针对调优参数写一篇,另外之前写过一篇,ss多端口密码的配置,可以参考https://blog.whsir.com/post-274.html
读此篇文章前,你一定要之前配置过ss,如果之前你都没配置过ss的话,你在配置起来问题可能会很多。
另外,如果你在配置的过程中出现问题,或者发现我的文章有问题,可以给我留言!
附:我写了一个一键的小脚本,你可以直接在服务端上输入#wget https://blog.whsir.com/uploads/nginx.repo/kcptun-server.sh
然后#sh kcptun-server.sh即可,直接就一键配置完成了,前提是你一定要启动ss服务,这个脚本需要查找你的ss端口的,也就是说你开放的ss端口是7777,会自动查找到7777,此脚本适用于搬瓦工centos6,其他vps自行测试,服务端使用的是32位!
客户端直接下载:https://blog.whsir.com/uploads/nginx.repo/kcptun-windows64.rar
解压后把run.vbs里面的IP地址改成你的服务器IP和端口即可,写的比较匆忙,如果有问题请给我留言!!!
原文链接:使用kcptun给shadowsocks加速100%可用,转载请注明来源!
感谢博主!!昨天折腾了一晚没弄好,刚刚看了你的文章现在终于弄好了!
不过博主你说的客户端和服务端应该打错了吧:
设置客户端开机启动:#echo "sh /root/kcptun/start-kcptun.sh" >> /etc/rc.local
设置服务端开机启动:开始-所有程序-启动 将run.vbs快捷方式拖入进来即可!
应该改成这样吧:
设置服务器 :开机启动:#echo "sh /root/kcptun/start-kcptun.sh" >> /etc/rc.local
设置客户机开机启动:开始-所有程序-启动 将run.vbs快捷方式拖入进来即可!
请问博主测速的那个软件是什么呢??
在youtube的视频上右键详细统计信息
博主 有个问题
我的是搬瓦工的VPS(支持ipv6的) 按照教程装了kcptun 安装的时候加速的ip地址试过127.0.0.1和我VPS的ipv6地址 但是用kcptun_gclient连接的时候 KCP服务器地址写的是我VPS的ipv6地址,我的网络是ipv6-only(屏蔽dns未拨号的校园网) 但是为何无法使用kcptun 它不断提示stream opened, session normally closed, stream closed。如果我KCP写的是我VPS的ipv4地址 则必须要登录校园网 而且走流量。很奇怪
不好意思,kcptun我还没试过在ipv6加速
为什么。。。一步一步的来,看了好几遍,已经找不到可能出错的地方了。。。还是翻不过去。。。u2和google都打不开...这是为什么
不使用kcp加速时能否正常上google
感谢博主,终于弄懂了 !!
请问下android端的Shadowsocks如何设置,我设置了半天都不行
你可以搜一下其他人写的安卓端配置,外面有很多
好像是服务器版本太旧的原因,请问如何更新服务器版本
博主,觉得这个文章两面的动画效果不错,点赞
为什么每次重启电脑后用不了,然后我手动把服务端客户端全部重启还是不好,然后莫名其妙过一段时间又可以了
你这种问题,没遇到过
卢松松博客大全进来的,网站内容还不错,支持下博主大大,哈哈
您好,您的网站做的很不错,很漂亮,我已经收藏了,方便我随时访问.
楼主的这个博客网站貌似 CPU 占用率非常高啊
并没有啊
唉.........智商有限,在试了N个GUI以后跟着博主的vbs脚本把问题解决了233333感谢
感谢分享
感谢博主,终于弄好了!!!