Skip to content

LiveKit 외부 IP 접속

원본 다운로드: Markdown · PDF

작성일: 2026-07-19 · 한글 복구: 2026-09-07 서버 버전: 1.13.4. 아래 IP 및 상태는 기존 점검 기록이며 현재 접속 상태를 의미하지 않습니다.

질문 답변
외부에서 IP로 접속할 수 있나요? 서버 바인딩, node-ip, 방화벽 및 포트 설정이 맞으면 가능합니다.
WebSocket 연결만 성공하면 통화도 되나요? 미디어 연결은 별도입니다. node-ip가 127.0.0.1이면 외부 미디어 연결이 실패합니다.
기록된 외부 URL ws://125.131.238.28:7880
로컬 URL ws://127.0.0.1:7880 또는 ws://localhost:7880
도메인 WSS wss://meet.dev.tictechtoeai.com:7443 (Caddy 필요)
항목 비고
공인 IPv4 125.131.238.28 당시 인터페이스에서도 같은 IPv4 확인
LiveKit HTTP/WS TCP 7880 --bind 0.0.0.0으로 모든 인터페이스에서 수신
LiveKit RTC TCP TCP 7881 TCP 미디어 연결
ICE UDP 범위 UDP 50000-60000 기존 기본 설정 기준
Windows 방화벽 LiveKit 관련 인바운드 허용 규칙 존재 livekit-server, LiveKit_UDP_50000 등
Caddy 80/443/7443 도메인 HTTPS/WSS에는 실행 필요

공인 IP는 회선에 따라 바뀔 수 있습니다. 실제 실행 전에 확인합니다.

Terminal window
Invoke-RestMethod -Uri 'https://api.ipify.org' -TimeoutSec 5
Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.IPAddress -notlike '127.*' }

LiveKit은 클라이언트에 미디어 연결에 사용할 주소를 알려 줍니다.

기동 옵션 결과
--node-ip 127.0.0.1 외부 클라이언트가 자기 자신의 루프백 주소로 미디어 연결을 시도하게 됨
--node-ip 125.131.238.28 해당 공인 IP를 미디어 연결 주소로 알림
자동 감지 네트워크 환경에 따라 선택된 주소가 달라지므로 로그 확인 필요

시그널링(WebSocket)과 미디어(WebRTC)는 별도 연결입니다. 방 입장 UI가 보여도 미디어 주소가 잘못되면 영상과 음성이 나오지 않을 수 있습니다.

아래 IP는 기존 기록의 예시입니다. 현재 공인 IP로 바꿔 실행합니다.

Terminal window
cd C:\Developments\LivekitDev\livekit
.\bin\livekit-server.exe --config config.yaml --bind 0.0.0.0 --node-ip 125.131.238.28
Terminal window
.\bin\livekit-server.exe --config config.yaml --bind 0.0.0.0 --node-ip 127.0.0.1

이 옵션은 외부 미디어 접속용으로 사용하지 않습니다.

Terminal window
Get-NetTCPConnection -State Listen -LocalPort 7880,7881
.\bin\livekit-server.exe --version

기존 외부 접속 설정의 로그 예시:

nodeIP: "125.131.238.28"
bindAddresses: ["0.0.0.0"]
portHttp: 7880
version: "1.13.4"
logging:
level: info
keys:
devkey: secret

기존 점검에서는 짧은 secret에 대한 경고가 기록되었습니다. 외부 운영 시에는 개발 키를 교체하고, 토큰은 서버에서 발급합니다.

필드 로컬 외부 IP 예시
Server URL ws://127.0.0.1:7880 ws://125.131.238.28:7880
Room my-room my-room
API Key / Secret devkey / secret 동일한 개발 설정

브라우저 외부 접속에는 HTTPS 페이지와 wss://meet.dev.tictechtoeai.com:7443을 사용합니다.

Avatar Bot이 서버와 같은 머신에서 실행된다면 로컬 주소를 사용할 수 있습니다. 의존성이 준비된 환경에서 실행합니다.

Terminal window
$env:LIVEKIT_URL = "ws://127.0.0.1:7880"
$env:LIVEKIT_API_KEY = "devkey"
$env:LIVEKIT_API_SECRET = "secret"
$env:ROOM_NAME = "my-room"
cd C:\Developments\LivekitDev\avatar_bot
uv run python avatar_bot.py

외부 참가자도 봇과 같은 방 이름으로 접속합니다.

포트 프로토콜 용도
7880 TCP HTTP API 및 WebSocket 시그널링
7881 TCP RTC over TCP
50000-60000 UDP ICE 및 미디어

Windows 방화벽 규칙이 없을 때 관리자 PowerShell에서 추가하는 예시입니다.

Terminal window
New-NetFirewallRule -DisplayName "LiveKit-7880" -Direction Inbound -Protocol TCP -LocalPort 7880 -Action Allow
New-NetFirewallRule -DisplayName "LiveKit-7881" -Direction Inbound -Protocol TCP -LocalPort 7881 -Action Allow
New-NetFirewallRule -DisplayName "LiveKit-UDP-ICE" -Direction Inbound -Protocol UDP -LocalPort 50000-60000 -Action Allow

공유기나 클라우드 보안 그룹이 있다면 같은 포트의 전달 및 인바운드 허용도 확인합니다. 기존 점검에서는 공인 IP가 NIC에 직접 설정되어 있어 호스트 방화벽이 주요 확인 대상이었습니다.

환경 카메라와 마이크
http://localhost 로컬 개발 예외로 사용 가능
공인 IP의 일반 HTTP 보안 컨텍스트가 아니므로 getUserMedia 사용 불가
신뢰할 수 있는 인증서의 HTTPS 도메인 권한 허용 후 사용 가능

외부 PC나 모바일 브라우저에서는 HTTPS 페이지와 WSS 연결을 함께 사용합니다. 네이티브 클라이언트의 일반 WS 연결 가능 여부와 브라우저의 카메라 권한은 별개입니다.

시나리오 조건
같은 PC에서 localhost 연결 서버 실행
같은 PC에서 공인 IP 연결 node-ip, 방화벽 및 네트워크의 루프백 경로 확인
외부 PC의 WS 시그널링 서버 실행 및 TCP 7880 접근 허용
외부의 실제 영상·음성 외부에서 도달 가능한 node-ip 및 미디어 포트
외부 브라우저 카메라 HTTPS 페이지, 유효한 인증서, 사용자 권한
도메인 WSS 7443 Caddy 실행 및 LiveKit 프록시 설정
  • 공인 IP의 7880 포트 개방은 LiveKit 서버를 인터넷에 노출합니다.
  • devkey / secret은 개발 예시이며 외부 상시 서비스용으로 사용하지 않습니다.
  • 운영 환경에서는 클라이언트에 secret을 넣지 않고 서버에서 토큰을 발급합니다.
  • 테스트 종료 후 필요 없는 외부 접근 규칙을 정리합니다.
  • LiveKit 실행 및 --bind 0.0.0.0 확인
  • node-ip가 실제 공인 IP 또는 외부에서 도달 가능한 주소인지 확인
  • TCP 7880/7881 및 UDP 50000-60000 설정 확인
  • 외부 장치에서 시그널링과 실제 미디어를 각각 테스트
  • 브라우저는 Caddy를 통한 HTTPS/WSS 사용
  • 외부 운영 전 개발 키 교체
경로 설명
livekit/bin/livekit-server.exe 서버 실행 파일
livekit/config.yaml 서버 설정
livekit_video_call/ Flutter 클라이언트
avatar_bot/ 상주 아바타 봇
Caddyfile HTTPS 및 WSS 프록시
start_all.bat 기존 일괄 실행기. D 드라이브 경로 확인 필요

관련 문서: 시작 가이드, HTTPS 오류 해결, 서버 업데이트.