使用KCPTUN加速你的VPS


自从FS废了以后,老高一直在寻找一个替代品,直到发现了kcptun,老高的搬瓦工又迎来了第二春。

kcptun_logo

I. 其他工具

锐速
finalspeed

II. 下载

项目主页,通过源码我们可以看到它使用了GO语言编写。

发布地址,在对应的平台直接复制链接,然后下面的运行命令即可下载,并解压

[ -d ~/kcptun ] || mkdir ~/kcptun && cd ~/kcptun
wget https://github.com/xtaci/kcptun/releases/download/v20161202/kcptun-linux-amd64-20161202.tar.gz
tar zxf kcptun-linux-amd64-20161202.tar.gz && rm kcptun-linux-amd64-20161202.tar.gz

此时,我们会得到两个文件,我们需要在服务器和客户端都下载好这个文件!

服务器端(Linux)

➜ ls
client_linux_amd64  server_linux_amd64

客户端(macOS)

➜ ls
client_darwin_amd64 server_darwin_amd64

III. 原理

运行前我们先结合下图熟悉一下它的原理,说白了就是将之前shadowsocks的数据流又做了一次代理,让流量跑在更快的UDP协议上!

kcptun

也就是说我们需要在kcptun的服务器端指定当前shadowsocks服务器的端口,然后在将其代理为一个新的端口

在客户端,我们也需要运行kcptun,但是我们直接连接的还是原本的shadowsocks客户端,但是我们需要将原客户端的服务器IP改为本地服务器的IP,一般为127.0.0.1,端口改为本地kcptun的服务端口。而kcptun的客户端只需要知道kcptun服务器的IP和地址即可!

需要注意的是对于shadowsocks的服务器来说,可以想象kcptun是不存在的,所以其加密方式是对应的,如果原来用的aes和phpgao作为加密方式和密码,现在的也不需要变化,需要变化的只是服务器的IP和端口。

聪明的你肯定已经想到了,kcptun的服务端与客户端之间也有自己的认证与加密方式,其二者也是对应的。

IV. 运行

是时候动手了!

假设

shadowsocks服务加密方式为: rc4-md5
kcptun的服务加密方式为: aes(不指定时默认)

shadowsocks服务器IP地址为: 123.321.123.123
shadowsocks服务器端口号为: 3306

shadowsocks客户端IP地址为: 127.0.0.1
shadowsocks客户端端口号为: 1080

kcptun的服务器端口号为: 4001
kcptun的客户端端口号为: 1070

服务端

./server_linux_amd64 -t "127.0.0.1:3306" -l ":4001" -mode fast2

客户端

./client_darwin_amd64 -r "123.321.123.123:4001" -l ":1070" -mode fast2

然后新建本地shadowsocks客户端的服务器配置为⤵️

ss_client

以上我们就完成了最简单的配置,现在可以在chrome里配置代理为SOCKS5,IP为127.0.0.1,端口号为1080。

ps. 如果总是出现getsockopt: connection refused错误,很有可能是弄错了端口信息!


V. 更多

如果想更便捷的使用kcptun,我们可以这样做。

配置化

kcpdump支持指定配置文件config.json,与shadowsocks类似。

服务器端

# 在服务器端保存为server.json
{
    "listen": ":4001",
    "target": "127.0.0.1:3306",
    "key": "tester",
    "crypt": "aes-192",
    "mode": "fast2"
}

服务器端执行命令

./server_linux_amd64 -c config.json

客户端

# 在客户端保存为client.json
{
    "localaddr": ":1070",
    "remoteaddr": "123.321.123.123:4001",
    "key": "tester",
    "crypt": "aes-192",
    "mode": "fast2"
}

客户端端执行命令

./client_darwin_amd64 -c config.json

开机启动

vi /etc/rc.local

# 服务器端
nohup /path/to/server_linux_amd64 -c /path/to/server.json >/dev/null 2>&1 &

# 客户端
nohup /path/to/client_darwin_amd64 -c /path/to/client.json >/dev/null 2>&1 &

标签: vps, kcptun

本文由 老高 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。
可自由转载、引用,但需署名作者且注明文章出处。

相关文章

已有 20 条评论

  1. 可以用来加速网站么

  2. Hello Hello

    从本地客户端至KCP客户端只支持TCP么?是否支持UDP传输

  3. dabing dabing

    老高,kcptun-windows-386-20170329.tar.gz ,windows客服端怎么配置呢?在线等....

  4. 小白 小白

    技术小白,我也想搭建自己的虚拟vps来爬墙,我应该学些什么?

    1. 学习ssh命令能远程登录服务器就行

  5. xu xu

    您好 我使用的是MAC的shadowsocks , vps是搬瓦工 配置好kcptun后 按照设置 无法使用 请问是哪步出错了吗

  6. haisen haisen

    你好,我想问下,为什么我用kcptun加速时,设置服务器端的IP时输入ipv6的地址不行呢,

  7. Jon Jon

    老高,最开始接触ss是从你这里知道的,非常感谢你。我买的搬瓦工,昨天凌晨开始就开始断线,以前不这样的,用了一年了,没有换过ip,今天很卡到完全用不了,然后重装了ubuntu的系统后还是一样,但是过了一个小时左右后又正常了。请问这是什么原因?kcptun能加快很多吗?现在看youtube视频基本上是用youtube-dl下载下来看的,在线看要缓存很久,当然我这宽带也就几兆而已。

    1. 我在上海有时候网络也非常不好,这种情况推荐试试KCP

  8. 豆豆 豆豆

    美国阿里云限制上传带宽, 用了也只有100k/s, 真是搞死人..老高你前几天推荐的virmach支持30天退款么? 靠谱么?速度怎么样?

  9. 老高最近打鸡血了啊👍连发好多文章

    1. 因为好久没更了,有点愧对大家。😂

  10. 咋服务器和mac都不能开机启动 咋服务器和mac都不能开机启动

    最后一步,按照步骤做完后,无法开机自启,服务器也这样,手动开启后能正常运行

    1. 咋服务器和mac都不能开机启动 咋服务器和mac都不能开机启动

      之前是名称弄错了,服务器已经没问题了,现在就是mac不能开机自启,而且那个文件是新增的,是要加权限吗

      1. mac可以的,写个脚本,给执行权限,加入开机启动项

  11. foolifish07 foolifish07

    老高!你的小站越来越好看了!

    1. 默认主题改的,我咋觉得很丑呢

  12. 老高,Chrome的配置应该是1080端口才对

添加新评论