使用 KCP 来加速流量

前言

使用 KCP 可以加速 SS 的流量,所以在安装 kcp 对应服务前,请先确定已经正常安装了 shadowsocket,可以参考 《科学上网之 Shadowsocks 安装及优化加速》

我们假设 ss 的对应配置如下

  • IP 1.1.1.1
  • port 12984
  • password 112233
  • 加密方式 chacha20

安装 kcp server 端软件

我们使用一键脚本安装

1
2
3
4
5
wget https://raw.githubusercontent.com/kuoruan/kcptun_installer/master/kcptun.sh

chmod +x ./kcptun.sh

./kcptun.sh

基本上一路回车就好了,最后会输出一个成功的信息,记得保存为单独的文件,后面用到。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
恭喜! Kcptun 服务端安装成功。
服务器IP: 1.1.1.1
端口: 29900
加速地址: 127.0.0.1:12984
key: 111111
crypt: aes
mode: fast
mtu: 1350
sndwnd: 512
rcvwnd: 512
datashard: 10
parityshard: 3
dscp: 0
nocomp: false
quiet: false

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

可使用的客户端配置文件为:
{
"localaddr": ":12984",
"remoteaddr": "1.1.1.1:29900",
"key": "111111",
"crypt": "aes",
"mode": "fast",
"mtu": 1350,
"sndwnd": 512,
"rcvwnd": 512,
"datashard": 10,
"parityshard": 3,
"dscp": 0,
"nocomp": false,
"quiet": false
}

手机端参数可以使用:
key=111111;crypt=aes;mode=fast;mtu=1350;sndwnd=512;rcvwnd=512;datashard=10;parityshard=3;dscp=0

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

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

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

如果这个脚本帮到了你,你可以请作者喝瓶可乐:
https://blog.kuoruan.com/donate

kcp 服务使用 supervisor 来管理,用于守护进程。安装完成后,可用的命令为

  • 启动 kcptun supervisorctl start kcptun
  • 重启 kcptun supervisorctl restart kcptun
  • 关闭 kcptun supervisorctl stop kcptun
  • 查看 kcptun 日志 ./kcptun.sh log

安装 kcptun 的客户端软件

kcptun 支持丰富的客户端支持

Linux

下载安装包

https://github.com/xtaci/kcptun/releases 地址下载对应的 Linux 版本,解压后有可执行文件。

我下载的是 kcptun-linux-386-20190515.tar.gz

新建配置文件

config.json,这个文件就是安装 kcptun 成功后的提示文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
"localaddr": "127.0.0.1:2080",
"remoteaddr": "1.1.1.1:29900",
"key": "111111",
"crypt": "aes",
"mode": "fast",
"conn": 1,
"autoexpire": 60,
"mtu": 1350,
"sndwnd": 512,
"rcvwnd": 512,
"datashard": 70,
"parityshard": 3,
"dscp": 46,
"nocomp": false,
"acknodelay": false,
"nodelay": 0,
"interval": 40,
"resend": 0,
"nc": 0,
"sockbuf": 4194304,
"keepalive": 10
}

建立客户端服务

执行以下指令建立链接,同时在服务器端,使用 ./kcptun.sh log 可以看到日志输出

1
./client_linux_386 -c config.json --quiet

配置客户端 shadowsocket

  • 服务器地址 127.0.0.1
  • 服务器端口 2080
  • 密钥 112233
  • 本地地址 127.0.0.1
  • 本地端口 1080
  • 本地服务器类型 socket5
  • 加密方式 chacha20

MacOS

MacOS 的 shadowsockets-NG 软件的最新版已经内嵌了 kcptun 插件,比较简单

下载软件

下载最新版的软件,在下面的链接中,下载 ShadowsocksX-NG.app.1.8.2.zip,解压后有个 app 文件,挪动到「应用程序」

https://github.com/shadowsocks/ShadowsocksX-NG/releases

配置

正常配置 shadowsockets 的链接即可,需要配置插件和插件配置如下

  • 服务器 1.1.1.1
  • 端口 29900
  • 加密方式 chacha20
  • 密码 112233
  • 插件 kcptun
  • 配置 key=111111;crypt=aes;mode=fast;mtu=1350;sndwnd=512;rcvwnd=512;datashard=10;parityshard=3;dscp=0

Android

下载客户端

需要下载两个软件,小飞机和 kcptun

  • shadowsocks-android https://github.com/shadowsocks/shadowsocks-android/releases

我的是 shadowsocks-arm64-v8a-4.8.0.apk

  • kcptun android https://github.com/shadowsocks/kcptun-android/releases

安装完 kcptun 是没有图标的,这是 shadowsockets 的关联启动
华为手机需要在手机管家中设置 kcptun 允许关联启动,不然会提示链接不上服务器

配置

安卓小飞机的配置

  • 服务器 1.1.1.1
  • 远程端口 29900
  • 密码 112233
  • 加密方式 chacha20
  • 插件 kcptun
  • 配置 key=111111;crypt=aes;mode=fast;mtu=1350;sndwnd=512;rcvwnd=512;datashard=10;parityshard=3;dscp=0

参考文章


  • 更新于:2021年01月12日13:28:49
  • 更新内容:服务器配置

1、安装 SS

加密算法组件 chacha20

1
2
3
4
5
6
7
8
yum  groupinstall "Development Tools"

wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz
tar zxvf LATEST.tar.gz && cd libsodium-stable

./configure && make -j4 && make install
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig

2、安装 Server

1
2
3
4
5
6
7
# debain
apt-get install python-pip
pip install shadowsocks

# centos
yum install python-setuptools && easy_install pip
pip install shadowsocks

3、安装 kcptun

1
2
3
4
5
6
7
wget https://raw.githubusercontent.com/kuoruan/kcptun_installer/master/kcptun.sh

chmod +x ./kcptun.sh

./kcptun.sh

# 一路回车

4、配置文件修改

/root/ss.json

1
2
3
4
5
6
7
8
9
{
"server":"0.0.0.0",
"server_port":12984,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"9SehN7C3GQ9h9Cyt",
"timeout":300,
"method":"chacha20"
}

/usr/local/kcptun/server-config.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"listen": ":29900",
"target": "127.0.0.1:12984",
"key": "111111",
"crypt": "aes",
"mode": "fast",
"mtu": 1350,
"sndwnd": 4096,
"rcvwnd": 4096,
"datashard": 10,
"parityshard": 3,
"dscp": 0,
"nocomp": false,
"quiet": true,
"pprof": false
}

5、启动

增加开机自启动

/etc/supervisor/conf.d/ss.conf

1
2
3
4
5
6
7
8
9
10
[program:ssserver]
user=root
directory=/root
command=/usr/bin/ssserver -c "/root/ss.json"
process_name=%(program_name)s
autostart=true
redirect_stderr=true
stdout_logfile=/var/log/ss.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=0
1
2
3
4
5
# start ss
ssserver -c /root/ss.json -d start

# reload kcptun to apply new configuration
supervisorctl restart all