用KCPTun为ShadowSocks加速,适合小内存,替代FinalSpeed

部落之前介绍了用FinalSpeed为ShadowSocks加速,用FinalSpeed固然好,但是FinalSpeed比较占内存,不适合小内存用户,而如果仅仅用来FQ,买一个小内存VPS似乎又是更加经济的选择。所以对于小内存用户而言,需要找一个替代方案,那么今天给大家介绍的KCPTun正是这样一个工具——他内存占用极低,却能够有不输FinalSpeed的效果。

利用FinalSpeed为ShadowSocks加速

由于KCPTun配置比较复杂,部落也没完全搞懂各种参数,所以使用扩软博客的一键安装包为大家介绍KCPTun的安装使用。

一、KCPTun简介

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

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

Kcptun 工作示意图:

用KCPTun为ShadowSocks加速,适合小内存,替代FinalSpeed

KCP 协议:https://github.com/skywind3000/kcp

Kcptun 项目地址:https://github.com/xtaci/kcptun

二、KCPTun一键安装

2.1 确认加速地址

在配置之前请确认一下你的加速地址,大部分不能加速都是由于加速地址配置错误。

鉴于大部分朋友是用来加速 Shadowsocks,下面以 Shadowsocks 为例,Shadowsocks 正确安装运行在当前服务器上。

首先找到你的 Shadowsocks 端口,比如我的 Shadowsocks 端口为 21000,然后在命令行输入以下命令:

netstat -nl | grep 21000

如果提示以上命令不存在,请输入:

ss -nl | grep 21000

注:将 21000 替换为你的 Shadowsocks 端口。

然后你会看到类似下面的输出(着重看显示为红色的部分):

情况1:

tcp6       0      0     :::21000                 :::*                    LISTEN     
udp6       0      0     :::21000                 :::*

情况2:

tcp       0      0     127.0.0.1:21000                 :::*                    LISTEN     
udp       0      0     127.0.0.1:21000                 :::*

情况3:

tcp       0      0     0.0.0.0:21000                 :::*                    LISTEN     
udp       0      0     0.0.0.0:21000                 :::*

情况4:

tcp       0      0     10.10.10.10:21000                 :::*                    LISTEN     
udp       0      0     10.10.10.10:21000                 :::*

若为情况1、情况2和情况3,那么你的加速地址可以为:加速 IP 127.0.0.1,加速端口 21000(你的 Shadowsocks 端口)

若为情况4,那么你的加速地址为:加速IP 10.10.10.10(你的服务器IP),加速端口21000(你的 Shadowsocks 端口)

2.2 使用脚本一键安装

wget --no-check-certificate https://github.com/kuoruan/shell-scripts/raw/master/kcptun/kcptun.sh
chmod +x ./kcptun.sh
./kcptun.sh

设置 Kcptun 的服务端端口(请输入一个未被占用的端口,Kcptun 运行时将使用此端口。):

请输入 Kcptun 服务端运行端口 [1~65535] 这个端口就是 Kcptun 客户端连接的端口
(默认: 29900):

请输入需要加速的地址,我这里默认127.0.0.1:

可以输入主机名称、IPv4 地址或者 IPv6 地址
(默认: 127.0.0.1):

需要加速的端口(SS服务器端口,我这里填21000):

请输入需要加速的端口 [1~65535] (默认: 12984):

请设置 Kcptun 密码(key),这个你自己随意设置,跟SS密码是两个东西,但是你可以设置为一样,后面要用到:

该参数必须两端一致
(默认密码: very fast):

请选择加密方式(crypt),自己随意选吧,我选的aes-192:

强加密对 CPU 要求较高,
如果是在路由器上配置客户端,
请尽量选择弱加密或者不加密。
该参数必须两端一致
(1) aes
(2) aes-128
(3) aes-192
(4) salsa20
(5) blowfish
(6) twofish
(7) cast5
(8) 3des
(9) tea
(10) xtea
(11) xor
(12) none
(默认: aes) 请选择 [1~12]:

请选择加速模式(mode),推荐fast2:

加速模式和发送窗口大小共同决定了流量的损耗大小
如果加速模式选择“手动(manual)”,
将进入手动档隐藏参数的设置。
(1) normal
(2) fast
(3) fast2
(4) fast3
(5) manual
(默认: fast) 请选择 [1~5]:

下面一路回车即可:

请设置 UDP 数据包的 MTU (最大传输单元)值
(默认: 1350):
---------------------------
MTU = 1350
---------------------------
请设置发送窗口大小(sndwnd)
发送窗口过大会浪费过多流量
(数据包数量, 默认: 512):
---------------------------
sndwnd = 512
---------------------------
请设置接收窗口大小(rcvwnd)
(数据包数量, 默认: 512):
---------------------------
rcvwnd = 512
---------------------------
请设置前向纠错 datashard
该参数必须两端一致
(默认: 10):
---------------------------
datashard = 10
---------------------------
请设置前向纠错 parityshard
该参数必须两端一致
(默认: 3):
---------------------------
parityshard = 3
---------------------------
请设置差分服务代码点(DSCP)
(默认: 0):
---------------------------
DSCP = 0
---------------------------
是否关闭数据压缩?
(默认: false) [y/n]:
---------------------------
nocomp = false
---------------------------
是否记录 SNMP 日志?
(默认: 否) [y/n]:
---------------------------
不记录 SNMP 日志
---------------------------
是否开启 pprof 性能监控?
地址: http://IP:6060/debug/pprof/
(默认: false) [y/n]:
---------------------------
pprof = false
---------------------------
基础参数设置完成,是否设置额外的隐藏参数?
通常情况下保持默认即可,不用额外设置
(默认: 否) [y/n]:
---------------------------
不配置隐藏参数
---------------------------
配置完成。
请按任意键继续或 Ctrl + C 退出

安装完成,最好把安装完成后的信息记录下来:

恭喜! Kcptun 服务端安装成功。
服务器IP: 104.223.15.xxx
端口: 29900
加速地址: 127.0.0.1:21000
key: 8Bc0gVpdjNP4UFQVBoos
crypt: aes-192
mode: fast2
mtu: 1350
sndwnd: 512
rcvwnd: 512
datashard: 10
parityshard: 3
dscp: 0
nocomp: false

当前安装的 Kcptun 版本为: 20170904
请自行前往:
https://github.com/xtaci/kcptun/releases/tag/v20170904
手动下载客户端文件

可使用的客户端配置文件为:
{
"localaddr": ":21000",
"remoteaddr": "104.223.15.xxx:29900",
"key": "8Bc0gVpdjNP4UFQVBoos",
"crypt": "aes-192",
"mode": "fast2",
"mtu": 1350,
"sndwnd": 512,
"rcvwnd": 512,
"datashard": 10,
"parityshard": 3,
"dscp": 0,
"nocomp": false
}

手机端参数可以使用:
key=8Bc0gVpdjNP4UFQVBoos;crypt=aes-192;mode=fast2;mtu=1350;sndwnd=512;rcvwnd=512;datashard=10;parityshard=3;dscp=0

Kcptun 安装目录: /usr/local/kcptun

已将 Supervisor 加入开机自启,
Kcptun 服务端会随 Supervisor 的启动而启动

更多使用说明: ./kcptun.sh help

安装之后,Kcptun 服务交由 Supervisor 管理。Supervisor 相关命令:

service supervisord {start|stop|restart|status}

Kcptun 相关命令:

supervisorctl {start|stop|restart|status} kcptun

三、客户端配置使用

3.1 准备工作

安装完成后要使用还在先下载两个东东:

1.Kcptun启动工具:https://github.com/dfdragon/kcptun_gclient/releases

2.服务端对应版本的 Kcptun(保存下来的提示信息里有:当前安装的 Kcptun 版本为: 20170904)。https://github.com/xtaci/kcptun/releases

然后将他们解压到一起:

用KCPTun为ShadowSocks加速,适合小内存,替代FinalSpeed

3.2 打开KCPTun启动工具

用KCPTun为ShadowSocks加速,适合小内存,替代FinalSpeed

3.3 配置启动工具

我们可以通过配置文件配置启动工具,也可以手动配置。

通过配置文件配置

我们可以将安装KCPTun服务端时保存下来的信息的如下部分保存到新建txt文档中,文件名随意(比如 config.txt 或者 config.json),确保它是标准的 json 格式(可以到这里校验格式 http://www.json.cn/)。:

{
"localaddr": ":21000",
"remoteaddr": "104.223.15.xxx:29900",
"key": "8Bc0gVpdjNP4UFQVBoos",
"crypt": "aes-192",
"mode": "fast2",
"mtu": 1350,
"sndwnd": 512,
"rcvwnd": 512,
"datashard": 10,
"parityshard": 3,
"dscp": 0,
"nocomp": false
}

然后勾选“使用配置文件”,选择你新建的文件即可,下面的参数区域直接留空,点击启动。我这边直接手动配置。

手动配置启动工具

根据之前保存下来的信息:

服务器IP: 104.223.15.xxx
端口: 29900
加速地址: 127.0.0.1:21000
key: 8Bc0gVpdjNP4UFQVBoos
crypt: aes-192
mode: fast2
mtu: 1350
sndwnd: 512
rcvwnd: 512
datashard: 10
parityshard: 3
dscp: 0
nocomp: false

配置启动工具如下图,然后启动:

用KCPTun为ShadowSocks加速,适合小内存,替代FinalSpeed

需要注意:

1.本地监听端口,这个端口你可以随意设置,但是后面SS客户端的设置必须跟这里一致。

2.KCP服务器地址为你的服务器IP地址,不是 127.0.0.1,端口为服务端 Kcptun 的端口。

3.通信密钥是你配置的 Kcptun 密码,不是 Shadowsocks 的密码;在配置 Kcptun 的时候,不用管 Shadowsocks 的配置参数;

3.4 配置SS客户端

用KCPTun为ShadowSocks加速,适合小内存,替代FinalSpeed

注意:

1.服务器地址填127.0.0.1。

2.服务器端口填上一步配置中的本地侦听端口。

3.密码填SS的密码,不是KCPTun的密码。

4.加密方式也是填SS的加密方式,而不是KCPTun的加密方式。

四、速度对比

使用KCPTun前后的速度对比。

使用前(简直凄惨):

用KCPTun为ShadowSocks加速,适合小内存,替代FinalSpeed

使用后(怎一个NB了得):

用KCPTun为ShadowSocks加速,适合小内存,替代FinalSpeed

本文全文整理自[v19]Kcptun 服务端一键安装脚本,支持输出新版手机端参数

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: