Skip to content

KCP Tube 简体中文版简介

cnbatch edited this page Jun 11, 2023 · 3 revisions

简介

但凡使用过三大运营商的家用宽带,并且需要家宽互联,那么几乎都会体验到 UDP 被限速的情况。为了躲避三大运营商针对 UDP 的 QoS,我制作了另一个工具,叫做 UDP Hop。原理是定期更换端口号。

只不过,UDP Hop 只支持转发 UDP 流量。为了能够利用 UDP 转发 TCP 流量,因此就有了KCP Tube。利用 KCP 的可靠重传保证转发的 TCP 不会丢包。

制作 KCP Tube 的另一个原因是,其它 KCP 转发工具只能转发 TCP 流量,但我又需要用 KCP 转发 UDP 流量。主要是为了方便玩游戏。

当然了,其实 udphop 以及 kcptube 都是同时构想出来的。所以为了方便起见,先做好了 KCP Tube 搭好框架,接着再在 KCP Tube 的基础上裁剪成 UDP Hop。然后再把 UDP Hop 的修补代码反向合并回 KCP Tube。

为了方便家宽 Full Cone NAT 用户使用,KCP Tube 以服务端基本模式运行的时候可以利用 STUN 打洞,同时支持 IPv4 与 IPv6。

正如 KCP 本身的用途一样,KCP Tube 的主要目标是降低延迟,而不是偏向于传输超大流量。那么能不能传输超大流量呢?能,只是效果未必比得上现有的 TCP-KCP 转发工具。

多路复用

KCP Tube 虽然有“多路复用”的功能,但默认并不主动打开。每接受一个入站连接,就会创建一个对应的出站连接。

原因是为了躲避运营商的 QoS。多路复用状态下,一旦某个端口号被 QoS,就会导致共用端口号的其它会话同时受阻,直到更换端口号为止。

连接之间相互独立,即使某个端口号被 QoS,受影响的仅仅只是这一路会话,不影响其他会话。

除非被承载的程序会产生大量独立连接。在这种情况下,KCP Tube 会创建大量 KCP 通道,在通讯过程中会消耗较多的CPU资源。

如果确实要用“多路复用”功能,可以参考以下分类:

  • 适合使用“多路复用”的场景:

    • 代理转发程序,例如 Shadowsocks
  • 不必使用“多路复用”的场景:

    • VPN,例如
      • OpenVPN
      • Wireguard

启用“多路复用”后,KCP 通道的超时时间为 30 秒。

支持的模式

目前支持 3 种模式:

  • 客户端模式
  • 服务端模式
  • 中继节点模式

用法

命令行

kcptube config.confkcptube config1.conf config2.conf 如果有多个文件,可以接着补充。

客户端与服务端模式示例

请前往常规配置介绍页面

中继节点模式示例

请前往中继模式配置介绍页面

参数介绍

请前往参数列表