笔录

大海很美,
可船还是想靠岸

kcptun加速SS实战-亲测100%加速成功

kcptun为何物?

Kcptun 是一个非常简单和快速的,基于 KCP 协议的 UDP 隧道,它可以将 TCP 流转换为 KCP+UDP 流。而 KCP 是一个快速可靠协议,能以比 TCP 浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。

Kcptun 是 KCP 协议的一个简单应用,可以用于任意 TCP 网络程序的传输承载,以提高网络流畅度,降低掉线情况。由于 Kcptun 使用 Go 语言编写,内存占用低(经测试,在64M内存服务器上稳定运行),而且适用于所有平台,甚至 Arm 平台。

Kcptun相关项目地址:
https://github.com/xtaci/kcptun/
https://github.com/shadowsocks/kcptun/releases
https://github.com/dfdragon/kcptun_gclient/releases

KCP协议简介

KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP。 连时钟都需要外部传递进来,内部不会有任何一次系统调用。

整个协议只有 ikcp.h, ikcp.c两个源文件,可以方便的集成到用户自己的协议栈中。也许你实现了一个P2P,或者某个基于 UDP的协议,而缺乏一套完善的ARQ可靠协议实现,那么简单的拷贝这两个文件到现有项目中,稍微编写两行代码,即可使用。

技术特性

TCP是为流量设计的(每秒内可以传输多少KB的数据),讲究的是充分利用带宽。而 KCP是为流速设计的(单个数据包从一端发送到一端需要多少时间),以10%-20%带宽浪费的代价换取了比 TCP快30%-40%的传输速度。TCP信道是一条流速很慢,但每秒流量很大的大运河,而KCP是水流湍急的小激流。KCP有正常模式和快速模式两种,通过以下策略达到提高流速的结果:

相关项目地址:

https://github.com/skywind3000/kcp
https://link.jianshu.com/?t=https://github.com/dfdragon/kcptun_gclient/releases

废话不多少,下面开始配置实战环境如下:废话不多少,下面开始配置实战环境如下:

SS-服务器: CentOS Linux release 7.5.1804 (Core) x64
连接客户端:windows 10 pro x64

加速原理图

11.png

一、下载Kcptun服务端

#下载地址:https://github.com/xtaci/kcptun/releases
#注意:我这里下载的是kcptun-linux-amd64-20181114.tar.gz,根据你当前的系统环境选择!
#进入SS服务器
#注意:当前我是在CentOS操作系统下。

mkdir /root/kcptun
cd /root/kcptun
wget https://github.com/xtaci/kcptun/releases/download/v20181114/kcptun-linux-amd64-20181114.tar.gz
tar -zxvf kcptun-linux-amd64-20181114.tar.gz

22.png

SS服务器只需要运行server_linux_amd64

1.创建启动脚本

vim /root/kcptun/kcptun.sh

2.粘贴以下内容

#!/bin/bash
cd /root/kcptun/
./server_linux_amd64 -l :6666 -t xx.xx.xx.xx:8080 -key test -mtu 1400 -sndwnd 2048 -rcvwnd 2048 -mode fast2 > kcptun.log 2>&1 &
echo "开始运行Kcptun"

3.解释下:

-l :6666              //监听本地端口,待会我们从windows 10 x64 客户端需要连接此端口。
xx.xx.xx.xx:8080         //当前SS服务器部署好的SS连接IP与端口
key test               //为Kcptun你的验证密钥,这里为test,可以自己写,其他参数先不做介绍,可自行--help

4.关闭服务

killall server_linux_amd64
5.启动Kcptun
sh /root/kcptun/kcptun.sh

5.启动Kcptun

sh /root/kcptun/kcptun.sh

6.查看端口是否起来

[root@host2 kcptun]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      678/sshd            
tcp6       0      0 :::8080                 :::*                    LISTEN      3874/python         
tcp6       0      0 :::22                   :::*                    LISTEN      678/sshd            
udp        0      0 127.0.0.1:323           0.0.0.0:*                           456/chronyd         
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1224/dhclient       
udp        0      0 0.0.0.0:40307           0.0.0.0:*                           3874/python         
udp6       0      0 :::6666                 :::*                                21830/./server_linu 
udp6       0      0 ::1:323                 :::*                                456/chronyd         
udp6       0      0 :::8080                 :::*                                3874/python     
 
 
#发现UDP 6666端口已经启动监听
#服务已经启动,至此服务端配置完毕
#######接下来,我们到windows 10 客户端#####

二、客户端Kcptun配置

#下载地址:https://github.com/xtaci/kcptun/releases/download/v20181114/kcptun-windows-amd64-20181114.tar.gz
#注意:当前我是在windows10 64位操作系统下。
#下载后解压到一个指定的文件夹内,。在此文件夹内创建文本文件,改名为run.bat,内容如下:
client_windows_amd64.exe -l :8080 -r xxx.xx.xx.xx:6666 -key test -mtu 1400 -sndwnd 256 -rcvwnd 2048 -mode fast2 -dscp 46 >kcptun.log****

33.png

1.解释下

-l :8080                 //监听本地端口,待会我们从shadowsocks 客户端需要连接此端口。
xxx.xx.xx.xx:6666        //为刚刚在SS服务器IP,及监听的UDP6666端口。
key test                 //为Kcptun你的验证密钥,这里为test 服务端配置好的,其他参数先不做介绍,可自行--help

2.启动

双击打开run.bat 即可

44.png

接下来我们在设置下shadowsocks:

服务器IP为127.0.0.1

服务器端口为8080

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

三、知识扩展

1.开机自动启动,后台运行等

#SS服务器开即自动启动Kcptun服务
 
echo "sh /root/kcptun/kcptun.sh" >> /etc/rc.local
#windown 10 
#windown 10
#windown 10 后台运行脚本,放到Kcptun目录下,保存为run.vbs,内如如下:
 
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 :8080 -r xxx.xxx.xxx.xx:6666 -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

2.安卓手机端Kcptun插件

https://github.com/shadowsocks/kcptun-android/releases
#下载apk安装后,打开ss,启动插件(相当Kcptun客户端),
#连接地址为SS服务器IP的Kcptun端口:6666
#下面参数与win10客户端想对应即可。
key=test;mtu=1400;sndwnd=256;rcvwnd=2048;mode=fast2;dscp=46
本站非原创文章随意转载 | 当前页面:笔录 » kcptun加速SS实战-亲测100%加速成功

评论 4

  1. Cheap Meltabs Viagra http://cialibuy.com/# - buy online cialis Progesterone 300mg Cialis Dental Abcess Pediatric Allergy To Amoxicillin

    MatAllosy 2020-03-28    回复
  2. Acheter Cialis En Tunisie https://buyciallisonline.com/# - Cialis Levitra En Generique cheap cialis generic online Priligy Similares

    Markwog 2020-04-10    回复
  3. Cilas Pills Online https://apcialisle.com/# - Cialis Direct Online Stendra Avanafil Medicine Internet Overseas Shop online cialis pharmacy Viagra Store Coupons

    Markwog 2020-04-10    回复
  4. Doxycycline 10mg Overseas Low Price https://buyciallisonline.com/# - buy cialis online no prescription Levaquin Discount generic cialis tadalafil Medicamento Cialis

    Markwog 2020-04-15    回复