使用KCPTUN加速你的VPS
自从FS废了以后,老高一直在寻找一个替代品,直到发现了kcptun,老高的搬瓦工又迎来了第二春。
其他工具
下载
项目主页,通过源码我们可以看到它使用了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的服务器端指定当前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客户端的服务器配置为⤵️
以上我们就完成了最简单的配置,现在可以在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 &
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. 怎么办呢?
shadowsocks客户端IP地址为: 127.0.0.1
shadowsocks客户端端口号为: 1080
高老师:上面的这个客户端端口有点儿不明白,这个1080的端口是自己随便定的么?
请问配置的话是服务器和mac都要配置吗?还是只需要到服务器获取到Json就可以了?请问你有没有录制相关的视频?有的话方便发给我吗?
--mtu value
--sndwnd value
--rcvwnd value
--datashard value,
--parityshard value,
老高,你好,能不能细讲一下这几个参数呢,
我现在不明白,
1. 服务端是100M ,客户端那边是20M的,那么服务端和客户端应该设置成多少M的参数呢???
2. 如果我换了一个连接的wifi,不知道是多少M,这时服务端和客户端又做什么调整
你好!我用的是mac系统,在最后一步配置开机启动时发现没有rc.local这个文件,创建后把客户端那行命令写入,更改了客户端和json文件路径,还是无法实现开机启动。我查了一下发现好像macOS并不能用rc.local配置开机启动。开机运行.sh脚本需要sudo权限,每次都要输密码,而且不能退出终端,请问怎么能让kcptun在没有人工干预下开机后台自启呢?谢谢
ShadowsocksX-NG 内置KCPTUN客户端,推荐使用
可以用来加速网站么
从本地客户端至KCP客户端只支持TCP么?是否支持UDP传输
老高,kcptun-windows-386-20170329.tar.gz ,windows客服端怎么配置呢?在线等....
技术小白,我也想搭建自己的虚拟vps来爬墙,我应该学些什么?
学习ssh命令能远程登录服务器就行
您好 我使用的是MAC的shadowsocks , vps是搬瓦工 配置好kcptun后 按照设置 无法使用 请问是哪步出错了吗
你好,我想问下,为什么我用kcptun加速时,设置服务器端的IP时输入ipv6的地址不行呢,
加括号[ipv6地址]
用域名试试
老高,最开始接触ss是从你这里知道的,非常感谢你。我买的搬瓦工,昨天凌晨开始就开始断线,以前不这样的,用了一年了,没有换过ip,今天很卡到完全用不了,然后重装了ubuntu的系统后还是一样,但是过了一个小时左右后又正常了。请问这是什么原因?kcptun能加快很多吗?现在看youtube视频基本上是用youtube-dl下载下来看的,在线看要缓存很久,当然我这宽带也就几兆而已。
我在上海有时候网络也非常不好,这种情况推荐试试KCP
美国阿里云限制上传带宽, 用了也只有100k/s, 真是搞死人..老高你前几天推荐的virmach支持30天退款么? 靠谱么?速度怎么样?
老高最近打鸡血了啊?连发好多文章
因为好久没更了,有点愧对大家。?
最后一步,按照步骤做完后,无法开机自启,服务器也这样,手动开启后能正常运行
之前是名称弄错了,服务器已经没问题了,现在就是mac不能开机自启,而且那个文件是新增的,是要加权限吗
mac可以的,写个脚本,给执行权限,加入开机启动项
老高!你的小站越来越好看了!
默认主题改的,我咋觉得很丑呢
老高,Chrome的配置应该是1080端口才对
已修正,感谢!