KCPTun地址

KCPTun安装

# 新建kcptun文件夹
mkdir /root/kcptun

# 进入kcptun文件夹
cd /root/kcptun

# 根据服务器架构下载最新kcptun文件
wget https://github.com/xtaci/kcptun/releases/download/v20201126/kcptun-linux-amd64-20201126.tar.gz

# 解压文件
tar -zxvf kcptun-linux-amd64-20201126.tar.gz

解压之后会发现只有两个文件:

client_linux_amd64server_linux_amd64

第一个是是客户端文件,第二个是服务端文件。

目前 KCPTun 没有启动脚本,所以需要新建脚本。

# 创建 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": ":32143",
  "target": "127.0.0.1:23546",
  "key": "password",
  "crypt": "none",
  "mode": "fast2",
  "mtu": 1350,
  "sndwnd": 1024,
  "rcvwnd": 1024,
  "datashard": 10,
  "parityshard": 3,
  "dscp": 46,
  "nocomp": false,
  "log": "/root/kcptun/kcptun.log"
}
# 创建 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
 echo "Kcptun started."
else
 echo "Kcptun not running!"
fi
# 创建 restart.sh
vi /root/kcptun/restart.sh

输入以下内容:

#!/bin/bash
cd /root/kcptun/
echo "Stopping Kcptun..."
bash stop.sh
bash start.sh
echo "Kcptun restart succeed !"

给以上几个创建的脚本添加执行权限:

chmod +x /root/kcptun/*.sh

日志文件在:/root/kcptun/kcptun.log

# 启动kcptun
sh /root/kcptun/start.sh

# 停止kcptun
sh /root/kcptun/stop.sh

# 重启kcptun
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

执行后会添加到末尾但是会在exit 0后面,造成开机并不能自启,此时需要手动修改文件。

注意: Debian9+ / Ubuntu17+ 默认不带有 /etc/rc.local 文件,但是rc.local文件依然存在,此方法添加的开机启动则无效。