fix(tunnel): resolve UDP stream interruption and add KCP protocol support

- Increase UDP listener default TTL from 5s to 30s to prevent idle disconnect
- Add mux keepalive config (15s interval, 45s timeout) to tunnel relay handler
- Add KCP as tunnel chain transport protocol with keepalive and UDP mode default
- Add KCP protocol option to tunnel UI (frontend)
- Remove generic 'tcp' fallback key from KCP metadata to prevent false TCP mode
- Simplify forward service config by removing unused tunnelTLSProtocol parameter
This commit is contained in:
sagitchu
2026-04-20 23:57:43 +08:00
parent 7f14bd30fa
commit 630e012ec1
11 changed files with 195 additions and 55 deletions
+3 -1
View File
@@ -90,7 +90,7 @@ import {
interface ChainTunnel {
nodeId: number;
protocol?: string; // 'tls' | 'wss' | 'tcp' | 'mtls' | 'mwss' | 'mtcp' - 转发链协议
protocol?: string; // 'tls' | 'wss' | 'tcp' | 'mtls' | 'mwss' | 'mtcp' | 'kcp' - 转发链协议
strategy?: string; // 'fifo' | 'round' | 'rand' - 仅转发链需要
chainType?: number; // 1: 入口, 2: 转发链, 3: 出口
inx?: number; // 转发链序号
@@ -2456,6 +2456,7 @@ export default function TunnelPage() {
<SelectItem key="mtls">MTLS</SelectItem>
<SelectItem key="mwss">MWSS</SelectItem>
<SelectItem key="mtcp">MTCP</SelectItem>
<SelectItem key="kcp">KCP</SelectItem>
</Select>
{/* 负载策略 - 25% */}
@@ -2756,6 +2757,7 @@ export default function TunnelPage() {
<SelectItem key="mtls">MTLS</SelectItem>
<SelectItem key="mwss">MWSS</SelectItem>
<SelectItem key="mtcp">MTCP</SelectItem>
<SelectItem key="kcp">KCP</SelectItem>
</Select>
{/* 负载策略 - 25% */}