商务合作加Q:411239339

使用kcptun加速梯子

浏览:523次阅读
没有评论

共计 3601 个字符,预计需要花费 10 分钟才能阅读完成。

摘要:在国内如果经常要访问一些诸如 Google、Facebook、Youtube 等在天朝根本不存在的网站,最便捷的方式就是用 Shadowsocks 搭梯子。但是往往梯子太长,即使梯子带宽足够宽,线路质量也是不忍直视。本文介绍如何使用 KCPTun 来加速 Shadowsocks 代理速度。

1、KCPtun 介绍

KCPTun 是一个使用可信 UDP 来加速 TCP 传输速度的网络软件。
官网:https://github.com/xtaci/kcptun

我们知道 TCP 协议是可信的数据流传输协议。简单来说,如果数据传输过程中发生了丢包,TCP 协议会重新发送相应数据包,如果数据包到达顺序与发送顺序不一致,TCP 协议会进行数据包重组,即:TCP 协议可以通过控制帧来保证数据流的传输顺序和正确性。但 TCP 协议的控制机制比较复杂,在线路质量差导致丢包率极高时,传输效率就会指数级下降。

UDP 协议是数据报协议,由于比 TCP 简单得多,传输效率和延迟率都要优于 TCP 协议,但 UDP 协议不是可信传输协议,不能保证数据正确与可达,所以只能应用在一些对单个数据包的正确与可达不是要求很严格(比如:IM)、但对数据传输延迟率有很高要求(比如:视频流或者多人在线游戏)的场合。

那么,有没有一种传输协议既可信又能保证传输效率呢?这就是 R -UDP:可信 UDP 协议,一种在 UDP 协议基础上增加了部分 TCP 的控制逻辑来保证数据正确完整的协议。目前已经有很多可用库(rUDP、enet 等等),虽然没有成为像 TCP/UDP 这样的标准协议,但已经广泛运用到了大型多人在线游戏等领域。KCPTun 就是利用这种可信 UDP(KCP over UDP),来大幅加速 TCP 传输效率的。

KCP 是一个快速可靠协议,能以比 TCP 浪费 10%-20% 的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。

参见:http://blog.csdn.net/linshuhe1/article/details/52191625

KCPTun 原理图:

使用 kcptun 加速梯子

KCPTun 官方性能实测值:从 68Kbps 提高到 31Mbps,飞一般的感受!

使用 kcptun 加速梯子

2、软件安装

windows 下需要安装几个软件:
kcptun,根据系统平台下载对应的版本:
https://github.com/xtaci/kcptun/releases

使用 kcptun 加速梯子

windows 下的 kcptun 图形化客户端:kcptun_gclient:
https://github.com/dfdragon/kcptun_gclient/releases

这个图形化客户端不是必须的,我一般不喜欢用,占资源。

3、kcptun 服务端配置

我比较喜欢用命令行的方式,windows 中也一样,这里我下载的是 Linux 版本的 kcptun 客户端 (64 位),假设我的客户端路径放在 /root/kcptun 目录下。

梯子命令行如下,监听端口为 9999,密码为 hello,以 deamon 进程的方式在后台运行:

/usr/bin/ssserver -p 9999 -k hello -d start

则我直接运行:

/root/kcptun/server_linux_amd64 -l :19900 -t 127.0.0.1:9999 -key hello -mtu 1400 -sndwnd 2048 -rcvwnd 2048 -mode fast2

参数说明:

-t 127.0.0.1:9999  指向本机 Shadowsocks 的服务端口,本例中是 9999
-l :19900          KCPTun 服务端端口,这个值在下一节 KCPTun 客户端设置中需要用到
--key mykey        KCPTun 服务端与客户端连接用的 secret key
--crypt aes-128    KCPTun 服务端与客户端通信时使用 aes-128 加密(不必须,基于安全性的考虑推荐使用)
--mode fast2       KCPTun 服务端与客户端数据传输模式。

根据官方文档:
响应速度:fast3 > fast2 > [fast] > normal > default
有效载荷比:default > normal > [fast] > fast2 > fast3

4、kcptun 客户端配置

4.1 Linux 客户端配置

由于我本机使用的是 Linux 机器,所以我直接运行以下命令,来连接服务端的 kcptun:

/root/kcptun/client_linux_amd64 -l :12948 -r 1.1.1.1:19900 --key hello --mode fast2 --sndwnd 2048 --rcvwnd 2048

其中:1.1.1.1 为服务器的 IP 地址,请自行更换。

4.2 Windows 客户端配置

如果你的机器是 windows,则可以使用上文中提到的 kcptun_gclient 图形化客户端,如下所求:
使用 kcptun 加速梯子

或者在 cmd 中使用命令行,我的做法是,新建一个 kcptun.bat 文件,假设我的 windows 客户端路径放在 D:\soft\kcptun\client_windows_amd64.exe,那么我可以填下以下参数:

D:\soft\kcptun\client_windows_amd64 -l :12948 -r 1.1.1.1:19900 --key hello --mode fast2 --sndwnd 2048 --rcvwnd 2048

5、梯子客户端配置

5.1、Linux 下客户端配置

Linux 系统中安装比较方便,可以直接使用 pip 工具来安装 python 版本的 ss 工具,命令如下:

pip install shadowsocks

如果系统中没有 pip 命令,联网情况下,可以使用如下方式安装 pip 命令:
Ubuntu 系统中:

sudo apt-get install python-pip

CentOS 系统中:

sudo yum install python-pip
然后就可以让梯子来代理 kcptun 的网络了,命令如下:

sslocal -s 127.0.0.1 -p 12948 -k hello -l 1080  -d start

Linux 中可以使用 Firefox 浏览器来进行配置代理比较方便,具体操作为:

使用 kcptun 加速梯子

5.2、Windows 下客户端配置

梯子客户端 ss 下载:
https://github.com/shadowsocks/shadowsocks-windows/releases

Windows 下的比较简单,如图,只要红色部分几个重要信息填一下即可:
使用 kcptun 加速梯子

Win 下的客户端做得相对来说要智能一些,只要开启系统代理后,一般的浏览器(firefox 除外),都是可以自动代理上网的,一般 chrome 浏览器会速度会比较稳定些。如果你需要在 Linux 下使用 chrome 浏览器扶墙,那么就需要安装一个 chrome SwitchyOmega 插件,这个会在我博客另外的文章进行说明

谷歌浏览器插件使用之 Proxy SwitchyOmega

这样就可以来加速扶墙了!

使用 kcptun 加速梯子

最后附上启动脚本,方便停止与运行扶墙程序:

#!/bin/bash
if [$# -lt 1];then
    echo "$0 start|stop"
    exit 0
fi
SERVER="www.example.com"
start()
{
    echo "Starting..."
    /home/chin/kcptun/client_linux_amd64 -l :12948 -r ${SERVER}:19900 -key hello -mode fast2 -sndwnd 2048 -rcvwnd 2048 &
    /usr/local/bin/sslocal -s 127.0.0.1 -p 12948 -k hello -l 1080 -b 0.0.0.0 -m aes-256-cfb -d start
}
stop()
{
    echo "Stoping..."
    CLIENT_PID=`ps -ef | grep client_linux_amd64 | grep -v grep | awk '{print $2}'`
    kill -9 $CLIENT_PID
    /usr/local/bin/sslocal -s 127.0.0.1 -p 12948 -k hello -l 1080 -b 0.0.0.0 -m aes-256-cfb -d stop
}
case $1 in
    start)
        start
    ;;
    stop)
        stop
    ;;
    *)
        echo "$0 start|stop"
        exit 0
    ;;
esac
exit 0

PS:由于时间紧,写得比较匆忙,有不明白的小伙伴可以给我的博客留言。

正文完
扫码赞助
post-qrcode
 0
果子
版权声明:本站原创文章,由 果子 于2018-02-18发表,共计3601字。
转载说明:除特殊说明外本站文章皆由果较瘦原创发布,转载请注明出处。
评论(没有评论)