1. 环境准备
操作系统:Windows 10/11 或 Linux/Mac 需有本地公网/内网 IP(如 192.168.x.x) 推荐浏览器:Chrome/Edge/Firefox/Safari 端口未被占用,防火墙允许相关端口
2. 目录结构建议
livekit/livekit-server.execonfig.yamlturn-cert.pemturn-key.pemcaddy.exeCaddyfilewww/ # 前端静态文件目录medical-livekit.html...
3. 生成本地自签名证书(HTTPS/TURN)
3.1 生成证书(以 Windows 为例)
openssl req -x509 -newkey rsa:4096 -sha256 -days 365 -nodes \ -keyout turn-key.pem -out turn-cert.pem \ -subj "/CN=localhost" \ -addext "subjectAltName=DNS:localhost,IP:127.0.0.1,IP:192.168.20.40"
4. 配置 LiveKit
4.1 config.yaml 示例
port : 7880 rtc : port_range_start : 50000 port_range_end : 60000 tcp_port : 7881 use_external_ip : true allow_tcp_fallback : true stun_servers : - "stun.l.google.com:19302" turn : enabled : true udp_port : 3478 tls_port : 5349 relay_range_start : 50000 relay_range_end : 60000 domain : "192.168.20.40" cert_file : "turn-cert.pem" key_file : "turn-key.pem" keys : devkey : "secret123456789012345678901234567890" logging : level : infojson : false sample : false room : auto_create : true empty_timeout : 300 departure_timeout : 20 max_participants : 0 enabled_codecs : - mime : audio/opus- mime : video/vp8- mime : video/h264enable_remote_unmute : true
5. 配置 Caddy 反向代理 + 本地 HTTPS
5.1 下载 Caddy
5.2 Caddyfile 示例
https://192.168.20.40:9443 {tls turn-cert.pem turn-key.pemencode gziproot * ./wwwfile_server# LiveKit signaling (WebSocket)reverse_proxy /rtc* 127.0.0.1:7880# 可选:API 代理等# reverse_proxy /api* 127.0.0.1:xxxx
}
端口 9443 避免与系统 443 冲突 root * ./www
指向你的前端静态文件目录
5.3 启动 Caddy
caddy run --config Caddyfile
6. 启动 LiveKit 服务
./livekit-server.exe --config config.yaml
7. 本地防火墙与端口
Windows:允许 7880、7881、3478、5349、50000-60000、9443 端口通过 Linux:sudo ufw allow 7880,7881,3478,5349,9443/tcp
和 sudo ufw allow 50000:60000/udp
8. 前端 Web 客户端配置
signaling 地址:wss://192.168.20.40:9443/rtc
页面地址:https://192.168.20.40:9443/medical-livekit.html
访问时浏览器会提示自签名证书不安全,选择继续访问 即可
9. 测试 TURN/ICE
用手机/电脑在同一局域网访问 https 页面 F12 控制台查看 ICE 日志,确认有 relay 类型候选 如需外网测试,需做端口转发
10. 常见问题排查
端口未开放 :检查防火墙和 Caddy/LiveKit 启动日志证书不被信任 :本地自签名证书需手动信任或忽略警告没有 relay 候选 :只能用 signaling 下发的动态 TURN,不能用静态用户名密码测试WebSocket 失败 :确保用 wss 协议,Caddy 代理配置正确
11. 参考命令
Windows 启动顺序
. \livekit- server. exe -- config config. yaml
caddy run -- config Caddyfile
Linux 启动顺序
./livekit-server --config config.yaml
caddy run --config Caddyfile
12. 访问方式
电脑/手机浏览器访问:https://192.168.20.40:9443/medical-livekit.html
signaling 地址自动适配 wss
13. 进阶
可用 hosts 文件将 192.168.20.40 绑定为自定义域名,证书 CN 也写该域名 生产环境建议用公网服务器+正式域名+Let’s Encrypt 证书