Shadowsocks使用Kcptun加速

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

1.部署Shadowsocks服务端

1.1 Linux安装Shadowsocks

1
$ pip install shadowsocks

1.2 配置

1
2
3
4
5
6
7
8
9
10
11
$ cat ss/ssserver.json 
{
"server": "0.0.0.0",
"server_port": 8388,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "l9g5oBos76haANkQ",
"timeout": 300,
"method": "rc4-md5",
"fast_open": false
}

1.3 启动

1
2
3
4
$ ssserver -c /work/admin/ss/ssserver.json

重新加载配置
$ ssserver -c /work/admin/ss/ssserver.json -drestart

1.4 添加到开机启动

1
2
3
$ sudo vim /etc/rc.d/rc.local
cd /work/admin/ss
su - admin -c "nohup ssserver -c /work/admin/ss/ssserver.json &"

2.部署Kcptun服务端

2.1 Linux安装kcptun

1
2
3
4
$ git clone https://github.com/kuoruan/shell-scripts

$ cp -rf shell-script/kcptun/ /work/admin/
$ cd ~/kcptun/
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
$ ./kcptun.sh  #如版本太旧可更新到最新版本./kcptun.sh update
kcptun配置参数如下

请输入 Kcptun 服务端运行端口 [1~65535]
这个端口就是 Kcptun 客户端连接的端口
(默认: 29999):
---------------------------
端口 = 29999
---------------------------
请输入需要加速的地址
可以输入主机名称、IPv4 地址或者 IPv6 地址
(默认: 127.0.0.1):
---------------------------
加速地址 = 127.0.0.1
---------------------------
请输入需要加速的端口 [1~65535] #这里增我们刚刚部署的Shadowsocks端口
(默认: 12984): 8388
当前没有软件使用此端口, 确定加速此端口? [y/n]: y
---------------------------
加速端口 = 8388
---------------------------
请设置 Kcptun 密码(key)
该参数必须两端一致
(默认密码: very fast): 123456
---------------------------
密码 = 123456
---------------------------
请选择加密方式(crypt)
强加密对 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]: 4
-----------------------------
加密方式 = salsa20
-----------------------------
请选择加速模式(mode)
加速模式和发送窗口大小共同决定了流量的损耗大小
如果加速模式选择“手动(manual)”,
将进入手动档隐藏参数的设置。
(1) normal
(2) fast
(3) fast2
(4) fast3
(5) manual
(默认: fast) 请选择 [1~5]:
---------------------------
加速模式 = fast
---------------------------
请设置 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
---------------------------
是否屏蔽 open/close 日志输出?
(默认: false) [y/n]:
---------------------------
quiet = false
---------------------------
是否记录 SNMP 日志?
(默认: 否) [y/n]:
---------------------------
不记录 SNMP 日志
---------------------------
是否开启 pprof 性能监控?
地址: http://IP:6060/debug/pprof/
(默认: false) [y/n]:
---------------------------
pprof = false
---------------------------
基础参数设置完成,是否设置额外的隐藏参数?
通常情况下保持默认即可,不用额外设置
(默认: 否) [y/n]:
---------------------------
不配置隐藏参数
---------------------------
配置完成。
请按任意键继续或 Ctrl + C 退出

按任意键等待安装完成

2.2 Kcptun配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ cat /usr/local/kcptun/server-config.json
{
"listen": ":29999",
"target": "127.0.0.1:8388",
"key": "kcp密码",
"crypt": "salsa20",
"mode": "fast",
"mtu": 1350,
"sndwnd": 512,
"rcvwnd": 512,
"datashard": 10,
"parityshard": 3,
"dscp": 0,
"nocomp": false,
"quiet": false,
"pprof": false
}

2.3 启动kcptun

1
$ nohup sudo /usr/local/kcptun/server_linux_amd64 -c /usr/local/kcptun/server-config.json &

2.4 添加到开机启动

1
2
3
$ sudo vim /etc/rc.d/rc.local
cd /work/admin/kcptun
su - admin -c "nohup /usr/local/kcptun/server_linux_amd64 -c /usr/local/kcptun/server-config.json &"

别忘了添加执行权限

1
$ sudo chmod +x /etc/rc.d/rc.local

3.客户端配置(Windows)

3.1 配置Kcptun客户端

Kcptun客户端下载

设置KcpTun Tools

解压后打开主程序进行配置

图片1

上图仅供参考,具体相关参数需要跟服务端保持一致,红框内为必填项

3.2配置Shadowsocks客户端

Shadowsocks客户端下载

优先使用 ShadowsocksR-dotnet4.0.exe

客户端配置

双击运行后,在任务栏里找到ShadowsocksR程序,右建选择服务器编辑服务器

然后依次输入服务器端对应的信息,在 服务器IP,服务器端口 填Kcptun客户端的IP和端口,其它的跟ssr服务端保持一致

确认无误后点击确定,那么现在就可以尽情观看youtube 1080p视频了

3.3 Linux客户端配置

下载最新版kcptun客户端
https://github.com/xtaci/kcptun

编辑配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"localaddr": ":54321",
"remoteaddr": "************:29999",
"key": "**********",
"crypt": "salsa20",
"mode": "fast",
"mtu": 1350,
"sndwnd": 512,
"rcvwnd": 512,
"datashard": 10,
"parityshard": 3,
"dscp": 0,
"nocomp": false,
"nocomp": false,
"quiet": false,
"pprof": false
}

启动客户端

1
$ ./kcptun/client_linux_amd64 -c /work/admin/downloads/kcptun/kcptun.json

ss客户端连接

1
$ sslocal -s 127.0.0.1 -p 54321 -k "ssr密码" -l 10800 -t 600 -m aes-256-cfb

3.4 梅林路由器配置

这里有一个前提:路由器必需装载梅林系统,刷机的过程如下:

  1. 让Router进入救援模式:此操作很关键,先关机,再按住路由器Reset 按钮不放的同时接通路由器电源,直到看到电源灯慢闪时放开Reset按钮,这里输入路由器的地址192.168.50.1上传老版本的华硕固件。

  2. 先刷完老版本的ASUS官网固件后,在点系统管理 固件升级 上传梅林的固件,刷完重启即可。

老版本华硕固件 FW_RT_AC66U__B1_300438420308.trx

格林固件 RT-AC68U_380.69_2-X7.8-ks.trx

特别提示以上只针对华硕路由器 RT-AC1750 B1,刷机期间千万不要贸然重启路由器否则很有可能变砖,有兴趣的小伙伴可以尝试一下。

梅林路由器安装SS,先登录到路由器命令行

1
2
3
4
5
6
7
8
9
cd /tmp

wget --no-check-certificate https://github.com/hq450/fancyss/blob/master/fancyss_arm/shadowsocks.tar.gz

tar -zxvf /tmp/shadowsocks.tar.gz

chmod +x /tmp/shadowsocks/install.sh

sh /tmp/shadowsocks/install.sh

重启路由器就会在软件中心中看见了shadowsocks了,没错就是叫 “科学上网” 的这个东东

图片5

点击进去配置Kcptun,在kcp参数配置方式 可选择输入模式选择模式,我这里使用的输入模式

图片6

这里的配置相对简单,kcp参数可以从Windows的kcptun上复制过来

然后在节点管理 – 添加节点 – 编辑SSR账号,服务器地和端口填上一步创建kcptun所写的本地监控地址和端口

图片7

添加好后,确保上方的科学上网开关是开启状态,在刚刚的节点管理中点击应用

等待路由器进行测试,测试完成后国外连接后面显示 表示连接成功,从此连接该路由器的设备都可以科学上网了。

-------------本文结束感谢您的阅读-------------