fix(livekit): 统一信令/媒体端口为 17880/17881/17882,修复接听后双方网络错误

根因:LiveKit 的 config/livekit.yaml 媒体端口(7881/7882)与宿主实际映射(17881/17882)不一致,
信令走 17880 能通,但媒体被宣告到 7881/7882 连不上。

- config/livekit.yaml: port/tcp_port/udp_port -> 17880/17881/17882
- docker-compose.yaml: 容器侧端口与宿主侧一致(1788x),不再重映射
- .env.example: 默认端口改为 1788x 并注明三处需一致
- scripts/selftest.sh: LK_PORT 默认值改为 17880
- scripts/fix-livekit-ports.sh: 一键备份+对齐 .env+仅重建 livekit 的修复脚本
- README: 更新端口表、客户端接入参数与排障说明

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
编码工程师
2026-08-18 00:31:08 +08:00
co-authored by multica-agent
parent 8391e6a7b4
commit 5cc2685f03
6 changed files with 85 additions and 18 deletions
+10 -3
View File
@@ -1,10 +1,17 @@
# LiveKit 服务端配置(内网部署)
# API Key/Secret 通过环境变量 LIVEKIT_KEYS 注入(见 docker-compose.yaml
# 服务器对内 IP 通过启动参数 --node-ip 注入(deploy.sh 写入 .env 的 SERVER_IP
port: 7880
#
# 重要:这里的 port / tcp_port / udp_port 必须与 docker-compose.yaml 里
# 容器侧端口、以及 .env 的 LIVEKIT_PORT / LIVEKIT_RTC_TCP_PORT /
# LIVEKIT_RTC_UDP_PORT 三者完全一致(默认 17880/17881/17882)。
# LiveKit 用 --node-ip + use_external_ip:false 向客户端宣告媒体地址时,
# 只会宣告这里的端口,不会感知 Docker 宿主侧的重映射;三者不一致会导致
# “能邀请、能接听,但接听后双方网络错误”(信令通、媒体不通)。
port: 17880
rtc:
tcp_port: 7881
udp_port: 7882
tcp_port: 17881
udp_port: 17882
# 内网部署:不做公网 IP 探测,candidate 直接使用 --node-ip
use_external_ip: false
room: