时间:2017年04月19日 | 作者 : liuhui | 分类 : Linux | 浏览: 10849次 | 评论 0 人
阿里云限量代金券 | 此广告位出租25元/月 |
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/releases
Kcptun服务端搭建
用Xshell或者Putty登陆服务器,下载Kcptun:
mkdir /root/kcptun
cd /root/kcptun
wget https://github.com/xtaci/kcptun/releases/download/v20170329/kcptun-linux-amd64-20170329.tar.gz
tar -zxvf kcptun-linux-amd64-20170329.tar.gz
注意:我这里下载的是kcptun-linux-amd64-20170329.tar.gz,根据你当前的版本选择!
创建启动服务:
vi /root/kcptun/start-kcptun.sh
按i粘贴以下内容:
#!/bin/bash
cd /root/kcptun/
./server_linux_amd64 -l :2006 -t 127.0.0.1:7777 --crypt none --nocomp --datashard 10 --parityshard 3 --mtu 1350 --sndwnd 512 --rcvwnd 512 --dscp 46 --mode fast2 > kcptun.log 2>&1 &
echo "Kcptun started"
保存即可
注意:
我这里是server_linux_amd64,根据你的情况更改;
127.0.0.1是你的VPS的IP,这里直接写你自己服务器的IP地址;
监听端口为2006,这个数字是你自己起的,7777为你的服务端口(也就是使用kcptun前连接的端口号)," --crypt none " ,意思是通信是不加密的,其他参数不做介绍。
创建关闭服务:
vi /root/kcptun/stop.sh
按i粘贴以下内容:
#!/bin/bash
PID=`ps -ef | grep server_linux_amd64 | grep -v grep | awk '{print $2}'`
if [ "" != "$PID" ]; then
echo "killing $PID"
kill -9 $PID
else
echo "Kcptun not running!"
fi
保存即可
创建重启服务:
vi /root/kcptun/restart.sh
按i粘贴以下内容:
#!/bin/bash
cd /root/kcptun/
echo "Stopping Kcptun..."
bash stop.sh
bash start.sh
echo "Kcptun started."
至此为止启动、关闭和重启创建完成!
启动服务:
为了确保之前的操作步骤都正确,所以我们要确认服务是否真的启动了!
用#ps aux命令来查看,正在运行的进程(下图为没启动start-kcptun.sh时的状态);
输入以下命令启动
sh /root/kcptun/start-kcptun.sh
启动后的状态
如上两张图所示,服务已经启动,至此服务端配置完毕!
添加开机启动:
Centos系统:
chmod +x /etc/rc.d/rc.local && echo "sh /root/kcptun/start-kcptun.sh" >> /etc/rc.d/rc.local
Ubuntu/Debian系统:
chmod +x /etc/rc.local && echo "sh /root/kcptun/start-kcptun.sh" >> /etc/rc.local
Android客户端配置
android版本最新的是测试版4.0.1,把kcp专门弄成了一个插件,所以,需要分别从github上下载android版本和kctun插件
安装好kcptun插件后,会在android配置文件设置中看到"插件",然后点击"kcptun",就会有"配置...",这里就是填写kcp的参数:
mtu=1350;nocomp;rcvwnd=1024;parityshard=3 ;nodelay =1 ;resend=5 ;mode =manual ;interval =20 ;crypt=none;autoexpire= 20; acknodelay ; sockbuf= 4194304 ;nc= 1;datashard=10; dscp=46 ;keepalive=10; sndwnd=1024
适用大部分ADSL接入(非对称上下行)的参数(实验环境电信50M ADSL)。
其它带宽请按比例调整,比如 25M ADSL,把 CLIENT 的 –sndwnd –rcvwnd 减掉一半,SERVER 不变。
基本原则:SERVER 的发送速率不能超过 ADSL 下行带宽,否则只会浪费您的服务器带宽。
注意:
1、需要关闭udp转发 需要关闭udp转发 需要关闭udp转发!如果开启了udp转发,无法打开网页,但是测试能连通
2、kcptun实际消耗服务器两倍流量
结语:本篇文章没有太多介绍所谓的参数含义,当然如果你想弄清楚这些参数的含义,如果你是从上到下按照本篇文章配置的还是失败,那么我建议你,检查下你的防火墙,版本号是否对应,服务是否正常已经启动了等等!
参考链接:http://blog.csdn.net/elegance_zf/article/details/54090963
http://www.jianshu.com/p/fd40dc54a187
http://51.ruyo.net/p/1835.html
推荐您阅读更多有关于“”的文章
Powered By Z-Blogphp
分享:
支付宝
微信