1. 环境要求
| 项 | 建议 |
|---|---|
| 系统 | CentOS 7.6 x86_64 |
| 公网 IP | 必备(云主机) |
| 域名 | 建议 livekit.yourdomain.com(生产需 HTTPS/WSS) |
| 开放端口 | TCP 7880(信令)、TCP 7881、UDP 50000-60000、TURN 3478/5349 |
| Docker | 20+ / docker-compose v1 或 v2 |
CentOS 7 默认内核较旧,强烈建议用 Docker + host 网络,不要用复杂的 bridge NAT。
2. 安装 Docker(CentOS 7)
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable --now docker
# compose 插件或独立二进制均可
curl -L "https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
若官方源慢,可换国内镜像后再装。
3. 准备配置目录
mkdir -p /opt/livekit
cd /opt/livekit
3.1 livekit.yaml
coturn 已关闭 时,请打开 LiveKit 内置 TURN(
turn.enabled: true),跨运营商/公司网更稳。 若以后再开 coturn 抢 3478,再把turn.enabled改回false。
port: 7880
log_level: info
rtc:
tcp_port: 7881
port_range_start: 50000
port_range_end: 60000
use_external_ip: true
keys:
# secret 必须 ≥32 字符
APIoaKey: "请换成openssl_rand_hex_32生成的至少32位密钥"
# coturn 已停用:启用 LiveKit 内置 TURN
turn:
enabled: true
udp_port: 3478
# 无独立 TURN 域名/证书时可先不开 TLS
# tls_port: 5349
# domain: turn.yourdomain.com
生成强密钥:
openssl rand -hex 32
启动LiveKit:
cd /opt/livekit
docker-compose pull
docker-compose down
docker-compose up -d
docker-compose logs -f --tail=100
3.2 docker-compose.yaml
services:
livekit:
# 建议使用最新稳定版,与 livekit-client 2.x 匹配(勿用过旧的 1.8.x)
image: livekit/livekit-server:v1.13.5
network_mode: host
restart: unless-stopped
volumes:
- ./livekit.yaml:/etc/livekit.yaml:ro
command: --config /etc/livekit.yaml
客户端是
livekit-client@2.21时,服务器请用 v1.9+ ,推荐 v1.13.5 。1.8.4 会先 404/rtc/v1再回退,容易「已连接但无画面」。
健康检查(本机):
curl -i http://127.0.0.1:7880
# 或
ss -lntp | grep 7880
4. 防火墙 / 安全组
# firewalld 示例
firewall-cmd --permanent --add-port=7880/tcp
firewall-cmd --permanent --add-port=7881/tcp
firewall-cmd --permanent --add-port=3478/udp
firewall-cmd --permanent --add-port=3478/tcp
firewall-cmd --permanent --add-port=50000-60000/udp
firewall-cmd --reload
云厂商控制台同步放行上述端口。
5. HTTPS / WSS(生产必做)
浏览器与 App WebView 在 HTTPS 页面下要求 wss://。推荐用 nginx 反代:
nginx.conf:
livekit.yourdomain.com {
proxy_pass 127.0.0.1:7880
}
确认后客户端使用:
wss://livekit.yourdomain.com
6. 配置 后端
编辑 web/src/main/resources/application.yml(或 application-prod.yml):
livekit:
enabled: true
url: wss://livekit.yourdomain.com # 开发可临时 ws://公网IP:7880
api-key: APIoaKey
api-secret: replace_with_32chars_or_longer_secret
token-ttl-seconds: 7200
api-key / api-secret 必须与 livekit.yaml 的 keys 一致。
重启后端后:
-
POST /api/v1/webrtc/private/call|accept|token返回{ url, roomName, token, mediaMode: "sfu" } -
群呼同理:
/api/v1/webrtc/group/*
7. 最小验证(可选)
本机装 LiveKit CLI:
# 生成测试 token(需与 keys 一致)
# 或用官方 meeting demo 指向你的 wss 地址
也可用 LiveKit Meet 示例 自定义 server URL 做连通性测试(需公网可达的 wss)。