1.kcp简介

KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP。 连时钟都需要外部传递进来,内部不会有任何一次系统调用。本文传输协议之考虑UDP的情况。

详情可以看一下:https://github.com/skywind3000/kcp

2.frp使用kcp加速

首先,我们在服务端frps.ini中的[common]添加

# frps.ini
[common]
bind_port = 7000
# kcp 绑定的是 udp 端口,可以和 bind_port 一样
kcp_bind_port = 7000

然后在客户端frpc.ini中修改

# frpc.ini
[common]
server_addr = x.x.x.x
# server_port 指定为 frps 的 kcp_bind_port
server_port = 7000
protocol = kcp#该处最好用TCP,否则http有可能无法访问

分别运行服务端与客户端

我们会发现frps多打开了一个udp端口,连接上后web服务正常使用就大功告成了

3.遇到的问题并解决

1)网页访问速度没有提升

尝试一下修改协议把http修改为tcp(tcp类型要单独添加一个远程端口)

2)修改tcp后连接成功但无法访问(IE内核可以访问,谷歌火狐内核浏览器无法访问)

因为谷歌与火狐浏览器认为你开放的远程端口不安全,会自动关闭链接,修改浏览器设置就可以了。如果你开发web服务,也可使用nginx进行转发。

3)tcp连接了一会儿就出现故障

可以尝试一下给服务端安装bbr。

你还可以看一下我的相关教程

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐