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 證書