-
Notifications
You must be signed in to change notification settings - Fork 16
常规配置模式:客户端 ↔ 服务端
cnbatch edited this page May 27, 2023
·
2 revisions
这是最为基础的配置文件,可以按照个人需求修改相应配置。
在这个模式,服务端只提供单个端口连接。但为了尽量躲避 QoS,客户端仍然会尝试每隔 1 分钟就换一次发送端口(除非 dport_refresh 设为 0 主动禁用)。
客户端模式示例:
mode=client
kcp=regular2
inbound_bandwidth=500M
outbound_bandwidth=50M
listen_port=59000
destination_port=3000
destination_address=123.45.67.89
encryption_password=qwerty1234
encryption_algorithm=AES-GCM
服务端模式示例:
mode=server
kcp=regular2
inbound_bandwidth=1G
outbound_bandwidth=1G
listen_port=3000
destination_port=59000
destination_address=::1
encryption_password=qwerty1234
encryption_algorithm=AES-GCM
流程:
sequenceDiagram
participant 用户程序
participant KCP 客户端
participant KCP 服务端
participant 服务器程序
用户程序->>KCP 客户端: 应用程序数据
Note over KCP 客户端: destination_port=3000
KCP 客户端->>KCP 服务端: KCP 数据
Note over KCP 服务端: listen_port=3000
KCP 服务端->>服务器程序: 应用程序数据
服务器程序->>KCP 服务端: 返回的数据
KCP 服务端->>KCP 客户端: KCP 数据
KCP 客户端->>用户程序: 返回的数据
在这个模式,服务端指定一段连续的端口范围,客户端在连接时随机选择其中一个端口号建立连接,随后每隔 1 分钟就换一个端口号。
客户端模式示例:
mode=client
kcp=regular2
inbound_bandwidth=500M
outbound_bandwidth=50M
listen_port=6000
destination_port=3000-4000
destination_address=123.45.67.89
dport_refresh=600
encryption_password=qwerty1234
encryption_algorithm=AES-GCM
服务端模式示例:
mode=server
kcp=regular2
inbound_bandwidth=1G
outbound_bandwidth=1G
listen_port=3000-4000
destination_port=6000
destination_address=::1
encryption_password=qwerty1234
encryption_algorithm=AES-GCM
如果想要 5 分钟(即 600 秒)才更换端口,那么可以在客户端配置文件内加上 dport_refresh=600
。
初次连接时,服务端会向客户端告知自己的端口范围,因此客户端模式的 listen_port
不一定要等于服务端模式的 destination_port
,两边的端口可以不一致,但客户端所写的端口号范围不能超出服务端的范围,以免客户端选错端口连接不上。
如果服务端位于 NAT 后方,那么可以在服务器端的配置文件内填入 STUN 服务器地址。
mode=server
kcp=regular2
inbound_bandwidth=1G
outbound_bandwidth=1G
listen_port=3000
destination_port=59000
destination_address=::1
encryption_password=qwerty1234
encryption_algorithm=AES-GCM
stun_server=stun.qq.com
log_path=./
注意:使用 STUN 打洞时,服务端无法监听多端口,只能使用单端口模式。因为 STUN 打洞后获得的端口号并不固定,即使服务端自己的端口范围是连续的,打洞时无法保证获得的端口号范围也是连续的。因此这种模式下 KCPTube 限制为只能使用单端口模式。
客户端及服务端都可以指定侦听的网卡,只须指定该网卡的 IP 地址。加一行即可
listen_on=192.168.1.1
如果想要更细致的设置,可以自己指定 KCP 选项。
客户端模式示例:
mode=client
kcp=manual
kcp_mtu=1400
kcp_sndwnd=512
kcp_rcvwnd=2048
kcp_nodelay=1
kcp_interval=10
kcp_resend=2
kcp_nc=true
udp_timeout=300
listen_port=6000
destination_port=3000-4000
destination_address=123.45.67.89
dport_refresh=600
encryption_password=qwerty1234
encryption_algorithm=AES-GCM
服务端模式示例:
mode=server
kcp=manual
kcp_mtu=1400
kcp_sndwnd=512
kcp_rcvwnd=2048
kcp_nodelay=1
kcp_interval=10
kcp_resend=2
kcp_nc=true
udp_timeout=300
listen_port=3000-4000
destination_port=6000
destination_address=::1
encryption_password=qwerty1234
encryption_algorithm=AES-GCM
如果想要侦听多个端口、多个网卡,那就分开多个配置文件,然后同时使用
kcptube config1.conf config2.conf