作者:Chancel Yang, 创建:2022-06-22, 字数:2524, 已阅:43, 最后更新:2022-06-22
作为正常用途的VPS,如果不想备案的话,海外VPS是非常不错的选择
海外vps通常具备大宽带,缺点是延迟较高,kcptun
能有效降低延迟,缺点是会消耗更多的流量
kcptun是一个开源的网络传输工具,它通过KCP协议提供了一种快速、可靠、安全的传输方式,KCP协议是一个用户空间实现的可靠传输协议,与TCP协议相比,具有更低的延迟和更高的吞吐量
kcptun利用KCP协议在传输层上进行优化,可以有效地提升网络传输的性能和稳定性。它常用于网络加速、VPN等场景,可以帮助提升网络连接的稳定性和速度
Kcptun早期是作为go语言版本实现kcp协议的建议测试工具,作为端口转发工具出现
KCP的架设需要一个客户端一个服务端,如图所示(图来自Github项目介绍)
掌握Kcptun实现的理论知识复杂,如有兴趣,可以参考官方的仓库xtaci/Kcptun下的References
Kcptun现已支持众多系统,包括Linux/Windows/Solaris等等,也支持ARM架构的系统
在xtaci/Kcptun - Release选择适合自己操作系统的包下载即可
下面是实践加速SSH端口访问的设置
假设本地机器为 192.168.100.1
,目标服务器IP为 8.8.8.8
,两个操作系统都是Ubuntu2204 LTS
根据系统版本,从github仓库的release下载压缩后后解压会得到
将server_linux_amd64
发送到服务器8.8.8.8
上,运行./server_linux_amd64 --help
可以获得运行帮助
在运行帮助中选择自己需要的参数,然后编辑config.json
{
"listen": "0.0.0.0:30022",
"target":"127.0.0.1:22",
"key": "[my-secert-key]",
"crypt": "aes-256-cfb",
"mtu": 1350,
"sndwnd": 1024,
"rcvwnd": 1024,
"datashard": 10,
"parityshard": 3,
"dscp": 0,
"conn": 1,
"autoexpire": 60,
"nocomp": false
}
参数解释
0.0.0.0
表示监听所有网口22
是SSH的端口运行服务端程序
./server_linux_amd64 -c config.json
与服务端相对的,我们编辑config.json
{
"mtu": 1350,
"key": "[my-secert-key]",
"nocomp": false,
"remoteaddr": "8.8.8.8:30022",
"datashard": 10,
"autoexpire": 60,
"acknodelay": false,
"sndwnd": 1024,
"nc": 0,
"rcvwnd": 1024,
"crypt": "aes-256-cfb",
"dscp": 0,
"conn": 1,
"localaddr": "127.0.0.1:40022",
"nodelay": 0,
"parityshard": 3
}
参数解释
127.0.0.1:40022
就相当于访问8.8.8.8:22
运行客户端程序
./client_linux_amd64 -c config.json
执行SSH测试Kcptun连接是否可用
ssh user@127.0.0.1 -p 40022
如有问题,可用查看客户端的Kcptun输出和服务端Kcptun运行日志输出
使用Kcptun可以加速非常多服务,例如SSH/SAMBA/FTP等基础服务,降低延迟效果明显
不过部署可能略显繁琐,运行方法可以考虑使用Supervisor进行部署
Supervisor配置文件参考
[program:kcptun-ssh]
command=client_linux_amd64 -c config_ssh.json
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/%(program_name)s.log
stderr_logfile=/var/log/supervisor/%(program_name)s.log
stdout_logfile_maxbytes=10MB
stdout_capture_maxbytes=1MB
user=app
参考资料