SSR 搭配 kcptun

参考 [v20]Kcptun 服务端一键安装脚本 | 扩软博客

脚本地址

https://github.com/kuoruan/shell-scripts

https://github.com/kuoruan/shell-scripts/blob/master/kcptun/kcptun.sh

此篇主要记录用此一键脚本为SSR后端加速,(此例为单端口443)。

使用方法

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

安装过程

[root@vps5 ~]# ./kcptun.sh
#########################################################
# Kcptun 服务端一键安装脚本                             #
# 该脚本支持 Kcptun 服务端的安装、更新、卸载及配置      #
# 脚本作者: Index <[email protected]>                   #
# 作者博客: https://blog.kuoruan.com/                   #
# Github: https://github.com/kuoruan/shell-scripts      #
# QQ交流群: 43391448, 68133628                          #
#           633945405                                   #
#########################################################
setenforce: SELinux is disabled
请输入 Kcptun 服务端运行端口 [1~65535]
这个端口就是 Kcptun 客户端连接的端口
(默认: 29900): 10000
Cannot open netlink socket: Protocol not supported
Cannot open netlink socket: Protocol not supported
---------------------------
端口 = 10000
---------------------------
请输入需要加速的地址
可以输入主机名称、IPv4 地址或者 IPv6 地址
(默认: 127.0.0.1):
---------------------------
加速地址 = 127.0.0.1
---------------------------
请输入需要加速的端口 [1~65535]
(默认: 12984): 443
Cannot open netlink socket: Protocol not supported
Cannot open netlink socket: Protocol not supported
当前没有软件使用此端口, 确定加速此端口? [y/n]: y
---------------------------
加速端口 = 443
---------------------------
请设置 Kcptun 密码(key)
该参数必须两端一致
(默认密码: very fast): augustdoit
---------------------------
密码 = augustdoit
---------------------------
请选择加密方式(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]: 12
-----------------------------
加密方式 = none
-----------------------------
请选择加速模式(mode)
加速模式和发送窗口大小共同决定了流量的损耗大小
如果加速模式选择“手动(manual)”,
将进入手动档隐藏参数的设置。
(1) normal
(2) fast
(3) fast2
(4) fast3
(5) manual
(默认: fast) 请选择 [1~5]: 3
---------------------------
加速模式 = fast2
---------------------------
请设置 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 退出

配置完成后返回

恭喜! Kcptun 服务端安装成功。
服务器IP:  23.94.43.10
端口:  10000
加速地址:  127.0.0.1:443
key:  augustdoit
crypt:  none
mode:  fast2
mtu:  1350
sndwnd:  512
rcvwnd:  512
datashard:  10
parityshard:  3
dscp:  0
nocomp:  false
quiet:  false

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

可使用的客户端配置文件为:
{
  "localaddr": ":443",
  "remoteaddr": "23.94.43.10:10000",
  "key": "augustdoit",
  "crypt": "none",
  "mode": "fast2",
  "mtu": 1350,
  "sndwnd": 512,
  "rcvwnd": 512,
  "datashard": 10,
  "parityshard": 3,
  "dscp": 0,
  "nocomp": false,
  "quiet": false
}

手机端参数可以使用:
  key=augustdoit;crypt=none;mode=fast2;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

享受加速的快感吧!

请将以上的提示信息复制保存下来,后面配置客户端会用到这些提示信息。

注意:服务端的 sndwnd 对应的是客户端的 recwnd,所以请不要问我为什么输出的客户端参数和你配置的服务端参数是反的。

安装之后,Kcptun 服务交由 Supervisor 管理。

Supervisor 相关命令:

service supervisord {start|stop|restart|status}

Kcptun 相关命令:

supervisorctl {start|stop|restart|status} kcptun

Supervisor 启动的时候会同时启动 Kcptun,运行 kcptun 相关命令时先确保 Supervisor 已启动。

客户端配置

下载程序

下载启动 Kcptun 的工具。注意这只是用来启动 Kcptun 的工具,而不是 Kcptun 客户端。下载地址

下载服务端对应版本的 Kcptun 客户端 (所谓对应版本是指:当前安装的 Kcptun 版本为: v20180810(之前保存的提示信息里有))

32位系统下载:kcptun-windows-386-20180810.tar.gz

64位系统下载:kcptun-windows-amd64-20180810.tar.gz

然后将它们解压到一起:

  • kcptun_gclient.exe – Kcptun 启动工具
  • client_windows_amd64.exe – Kcptun 客户端程序
  • server_windows_amd64.exe – Kcptun 服务端程序

导入配置

之前保存的配置,名字随便起例如 config.json

{
  "localaddr": ":443",
  "remoteaddr": "23.94.43.10:10000",
  "key": "augustdoit",
  "crypt": "none",
  "mode": "fast2",
  "mtu": 1350,
  "sndwnd": 512,
  "rcvwnd": 512,
  "datashard": 10,
  "parityshard": 3,
  "dscp": 0,
  "nocomp": false,
  "quiet": false
}

打开 Kcptun 启动工具,导入配置文件,方法如下

方法一

  1. 添加 选中刚添加的
  2. KCPTun客户端exe文件:浏览-选择对应版本32位或者64位版本
  3. 勾选 使用配置文件 查找选择对应版本的配置文件
  4. 启动

kcptun导入

方法二

  1. 添加
  2. 右键刚添加的,从JSON文件导入,(会提示覆盖,选确定),选择之前保存的config.json
  3. 启动

kcptun导入

第一次使用的时候使用方法一,然后再使用方法二再次导入一下JSON文件,要不左侧列表显示不正常。

如果你非要手动添加,可以参考下图

kcptun导入

SSR客户端配置

修改节点配置 将服务器IP修改为127.0.0.1即可。

kcptun导入

其他功能

请再次运行./kcptun.sh,会发现很多功能