KCP 可以简单的理解为将 TCP 协议数据转换为 KCP 协议数据,并通过 UDP 协议方式传输。
作为ss代理的替代方案,
KCP 协议:https://github.com/skywind3000/kcp
Kcptun 项目地址:https://github.com/xtaci/kcptun
注意:下面的KCPTun文件下载可能不是最新的地址,最新文件的下载地址看这里:[Github-kcptun-releases](https://www.vjsun.com/wp-content/themes/begin/inc/go.php?url=https://github.com/xtaci/kcptun/releases),直接替换第三行 **wget** 后面链接的版本号就行了。
解压之后会发现只有两个文件: client_linux_amd64 和 server_linux_amd64,第一个是是客户端文件(linux的客户端),第二个是服务端文件。
创建 start.sh:
- vi /root/kcptun/start.sh
写入以下内容:
- #!/bin/bash
- cd /root/kcptun/
- ./server_linux_amd64 -c /root/kcptun/server-config.json 2>&1 &
- echo "Kcptun started."
server_linux_amd64 对应服务端文件名,请对应修改。
创建配置文件:
- vi /root/kcptun/server-config.json
写入以下内容:
- {
- "listen": ":2333",
- "target": "127.0.0.1:8388",
- "key": "vjsun.com",
- "crypt": "aes-192",
- "mode": "fast2",
- "mtu": 1350,
- "sndwnd": 1024,
- "rcvwnd": 1024,
- "datashard": 70,
- "parityshard": 30,
- "dscp": 46,
- "nocomp": false,
- "acknodelay": false,
- "nodelay": 0,
- "interval": 40,
- "resend": 0,
- "nc": 0,
- "sockbuf": 4194304,
- "keepalive": 10,
- "log": "/root/kcptun/kcptun.log"
- }
- listen 表示 Kcptun 的服务端监听端口,用于接收外部请求和发送数据,默认 2333;
- target 表示要加速的地址,由于 Kcptun 和 Shadowsocks 在同一服务器,地址填写 127.0.0.1(不需要改,这是指本机IP,除非你有多个IP),而 8388 为 Shadowsocks 服务端监听端口;
- key 是 Kcptun 的验证密钥,上面的启动脚本参数默认加上了
-key dou-bi.co
,如果不需要可以删掉,服务端和本地必须一致才能通过验证,请自行设置;
- mode 为加速模式,默认 fast2 ;
- crypt 为加密方式,默认 aes-192 ;
- nocomp 为压缩传输,默认 false 表示开启压缩传输。
其他参数可以参考项目主页的介绍。
下面是引用官方介绍:
响应速度:
fast3 > [fast2] > fast > normal > default
有效载荷比:
default > normal > fast > [fast2] > fast3
中间 mode 参数比较均衡,总之就是越快越浪费带宽,推荐模式 fast2。
其他参数,请使用 ./server_linux_amd64 -h 查看,更深层次的参数调整需要理解 KCP 协议,并通过“隐藏参数”调整。
作者推荐配置参数:
- 适用大部分ADSL接入(非对称上下行)的参数(实验环境电信100M ADSL)。
- 其它带宽请按比例调整,比如 50M ADSL,把 -sndwnd -rcvwnd 减掉一半。
3.
- SERVER: -mtu 1400 -sndwnd 2048 -rcvwnd 2048 -mode fast2
- CLIENT: -mtu 1400 -sndwnd 256 -rcvwnd 2048 -mode fast2 -dscp 46
注意:客户端和服务端的参数-sndwnd 2048 -rcvwnd 2048
这两个值不要大于你的本地宽带,否则流量消耗会浪费好几倍,100M就是2048,50M就是1024。这两个值可以逐渐调小,但是不能比本地的实际宽带大!
注意:产生大量重传时,一定是窗口偏大了
创建 stop.sh:
- vi /root/kcptun/stop.sh
写入以下内容:
- #!/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
注意:这里的 server_linux_amd64 ,自行替换为你的 服务端名称,64位的系统就是示例的这个,如果是32位的则是 server_linux_386 。
创建 restart.sh:
- vi /root/kcptun/restart.sh
写入以下内容:
- #!/bin/bash
- cd /root/kcptun/
- echo "Stopping Kcptun..."
- bash stop.sh
- bash start.sh
- echo "Kcptun started."
给上面创建的脚本添加执行权限:
- chmod +x /root/kcptun/*.sh
启动服务端:
- sh /root/kcptun/start.sh
日志文件在:/root/kcptun/kcptun.log
监听日志信息:
- tail -f /root/kcptun/kcptun.log
停止服务端:
- sh /root/kcptun/stop.sh
重启服务端:
- sh /root/kcptun/restart.sh
添加开机启动:
Centos系统:
- chmod +x /etc/rc.d/rc.local && echo "sh /root/kcptun/start.sh" >> /etc/rc.d/rc.local
Ubuntu/Debian系统:
- chmod +x /etc/rc.local && echo "sh /root/kcptun/start.sh" >> /etc/rc.local
升级服务端
重复一开始的步骤,下载最新版本的压缩包然后解压覆盖源文件,记得先 停止KCPTUN运行再覆盖。
KcpTun客户端设置
简单步骤:
- 打开软件,并点击 新建 按钮
- 依次填写 KcpTun 信息
- 选择 KcpTun文件目录 和填写 上传下载宽带
- 点击 保存配置 按钮
- 点击 启动加速 按钮
- 完成,如果没有填错,那就可以使用了。
详细步骤:
**注意:加速端口 / 加密方式 / 验证密匙 / 压缩 必须和服务器配置一致!**
- 首先你要先安装好 KcpTun 的服务端或者有 KcpTun 的加速信息,然后打开本软件。
- 点击最下角的 新建 按钮,然后在右边依次输入 KcpTun参数。
注意:**在基础配置中**,**本地端口是可以任意的(但是不要使用1080,这样会和Shadowsocks客户端的本地端口冲突)**,DSCP不懂得不要设置,**验证密匙需要和服务端配置一样(可以不设置留空)**,因为参数过多,软件只是把常用的参数列出来 其他配置大家可以手动添加。**剩余的参数必须和服务器一模一样**
(注意:验证密匙是 KcpTun服务端的验证密匙,和Shadowsocks账号的密码毫无关系,不要弄混了)
- 宽带配置,就去测试一下你的宽带实际上行和下行是多少,然后填上去,下面就会根据作者推荐的比例自动计算 Sndwnd/Rcvwnd 参数的值了。MTU不懂不要改。
注意!这里的宽带数值**只能填少,不能填多**,如果**宽带数值高于本地实际宽带过多**,将会**导致服务器浪费大量宽带和流量**,甚至你的 **服务器实际使用流量 会比 你使用的流量 多十几倍**,等于说完全**浪费了十几倍的流量**,也没有给你用到,服务器还消耗了这些流量。
- 然后点击 浏览 按钮选择你的 TcpKun 客户端文件,例如: 32x 的是 client_windows_386.exe ,64x的是 client_windows_amd64.exe 。
**TcpKun下载地址:**[https://github.com/xtaci/kcptun/releases](https://www.vjsun.com/wp-content/themes/begin/inc/go.php?url=https://github.com/xtaci/kcptun/releases) **(32位下载kcptun-windows-386-*.tar.gz,64位下载kcptun-windows-amd64-*.tar.gz)**
当然,你也可以直接 把 TcpKun 客户端文件拖拉到软件窗口,将会自动获取目录。
最后,确定各个选项参数都正确,就可以点击 启动加速 按钮启动软件了!这时候你可以点 右上角的x 关闭软件了,软件会自动托盘后台运行的,在右下角你会看到软件图标的!
Shadowsocks客户端设置
打开Shadowsocks客户端,添加服务器,服务器IP为127.0.0.1
,服务器端口为 KcpTun Tools 上面的的本地端口,这里是2000
,然后你的ss密码、加密方式等等都按照原来的账号设置,也就是说只改了IP和服务器端口选项,其他的都和原Shadowsocks账户保持一致。
下边的是两个不同的kcptun的客户端,根据自己的喜欢下载使用:
Kcptun下载地址:doubi
Kcptun下载地址2:1.1.3
Shadowsocks手机客户端设置:下边的设置请参考自己上边设置的配置,手机的端口设置kcptun的端口。
key=你自己的密码;crypt=aes-192;mode=fast2;mtu=1350;sndwnd=2048;rcvwnd=2048;datashard=70;parityshard=30;dscp=46
首先下载安装最新的 Shadowsocks Android:https://github.com/shadowsocks/shadowsocks-android/releases
和 Kcptun Plugin:https://github.com/shadowsocks/kcptun-android/releases
附赠一键安装脚本:来自于网上
wget --no-check-certificate -O kcptun.sh https://github.com/kuoruan/shell-scripts/raw/master/kcptun/kcptun.sh
sh kcptun.sh
wget --no-check-certificate -O kcptun.sh https://www.vrrmr.net/55R/kcptun/kcptun.sh
sh kcptun.sh