CentOS 7.6 自建 LiveKit 部署指南

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.yamlkeys 一致。

重启后端后:

  • 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)。

相关推荐
云运维笔记8 小时前
IP地址从入门到精通:网络通信的核心基石
运维·网络·计算机网络
bosins9 小时前
WSL2 启动即崩溃?调整超时参数解决 Docker 阻塞问题
linux·docker·wsl
web守墓人9 小时前
【goed/ui】自定义组件设计思想篇
linux·windows·ui·golang
码农学院9 小时前
企业官网改版后 AI 引用归零的复盘:301 重定向断层让爬虫索引掉线,修复方案与恢复数据
运维·geo优化·ai优化aio
kuroomi10 小时前
Ingress-Nginx与kubernetes 网络
linux·运维·网络·kubernetes
当下新鲜事10 小时前
空调机房冷冻泵与冷却泵技术分析:赛莱默B&G背包式智能变频管道泵的工程应用
运维·物联网·业界资讯
daemon.qiang10 小时前
国内虚拟机对接 Freedesktop:Fork xserver、自建 Runner 与提交 MR 实战
linux·ubuntu·centos·gitlab·开源软件
Doris__HE11 小时前
【元脑服务器NF5476G7-NF5476M7技术规格分享】
运维·服务器·网络·数据库·性能优化
2401_8697695912 小时前
linux 权限 指令与权限(重启之后)
linux
码农客栈12 小时前
Linux CAN 驱动
linux·驱动开发