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

kcptun_logo

其他工具

锐速 finalspeed

下载

项目主页,通过源码我们可以看到它使用了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

原理

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

kcptun

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

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

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

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

运行

是时候动手了!

假设

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错误,很有可能是弄错了端口信息!


更多

如果想更便捷的使用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

已有 27 条评论

  1. Question Question

    ssr已经搭好,但是安装kcptun提示Python 2.7过期。报错:Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. 怎么办呢?

  2. shadowsocks客户端IP地址为: 127.0.0.1
    shadowsocks客户端端口号为: 1080
    高老师:上面的这个客户端端口有点儿不明白,这个1080的端口是自己随便定的么?

  3. 小刘 小刘

    请问配置的话是服务器和mac都要配置吗?还是只需要到服务器获取到Json就可以了?请问你有没有录制相关的视频?有的话方便发给我吗?

  4. else05 else05

    --mtu value
    --sndwnd value
    --rcvwnd value
    --datashard value,
    --parityshard value,
    老高,你好,能不能细讲一下这几个参数呢,
    我现在不明白,
    1. 服务端是100M ,客户端那边是20M的,那么服务端和客户端应该设置成多少M的参数呢???
    2. 如果我换了一个连接的wifi,不知道是多少M,这时服务端和客户端又做什么调整

  5. kid kid

    你好!我用的是mac系统,在最后一步配置开机启动时发现没有rc.local这个文件,创建后把客户端那行命令写入,更改了客户端和json文件路径,还是无法实现开机启动。我查了一下发现好像macOS并不能用rc.local配置开机启动。开机运行.sh脚本需要sudo权限,每次都要输密码,而且不能退出终端,请问怎么能让kcptun在没有人工干预下开机后台自启呢?谢谢

    1. ShadowsocksX-NG 内置KCPTUN客户端,推荐使用

  6. 可以用来加速网站么

  7. Hello Hello

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

  8. dabing dabing

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

  9. 小白 小白

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

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

  10. xu xu

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

  11. haisen haisen

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

  12. Jon Jon

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

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

  13. 豆豆 豆豆

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

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

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

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

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

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

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

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

  16. foolifish07 foolifish07

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

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

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

添加新评论