2026.03.18 조회 526

WebRTC TURN 서버 구축 (coturn + SSL + 실전 적용)

광고

WebRTC 기반 화상 채팅이나 데이터 전송 서비스를 운영하다 보면, 특정 환경에서 연결이 실패하는 문제가 발생합니다. 특히 모바일 네트워크(LTE), 사내망, NAT 환경에서는 P2P 연결이 제대로 이루어지지 않는 경우가 많습니다.

이 문제를 해결하기 위해 TURN 서버를 별도로 구축하고, 실제 서비스에 적용하는 과정을 정리합니다. 이번 글에서는 VPS 서버 + coturn + Let’s Encrypt SSL + WebRTC 연동까지 실제 운영 기준으로 설명합니다.

보안상 IP 및 도메인은 일부 마스킹 처리되었습니다.

1. TURN 서버가 필요한 이유

WebRTC는 기본적으로 STUN을 이용해 P2P 연결을 시도합니다.

  • 회사 네트워크 (방화벽)
  • LTE / 5G 환경
  • CGNAT 환경
  • 일부 공유기 환경
TURN 서버는 “P2P 연결이 실패했을 때 데이터를 대신 전달해주는 중계 서버”입니다.

2. 서버 구성

  • 서버: 클라우드 VPS
  • TURN 서버 IP: XXX.XXX.XXX.XXX
  • 도메인: example.com
  • TURN 도메인: turn.example.com
turn.example.com → XXX.XXX.XXX.XXX

3. coturn 설치

sudo apt update
sudo apt install coturn -y
sudo systemctl stop coturn
sudo systemctl disable coturn

4. TURN 서버 설정

/etc/turnserver.conf
listening-port=3478
tls-listening-port=5349

listening-ip=0.0.0.0
relay-ip=0.0.0.0
external-ip=XXX.XXX.XXX.XXX

use-auth-secret
static-auth-secret=YOUR_SECRET_KEY

realm=turn.example.com
server-name=turn.example.com

fingerprint
lt-cred-mech

min-port=49152
max-port=65535

cert=/etc/letsencrypt/live/turn.example.com/fullchain.pem
pkey=/etc/letsencrypt/live/turn.example.com/privkey.pem

log-file=/var/log/turnserver.log

5. SSL 인증서 발급

sudo systemctl stop nginx
sudo certbot certonly --standalone -d turn.example.com
sudo systemctl start nginx
인증서는 /etc/letsencrypt/live/turn.example.com/ 경로에 생성됩니다.

6. 방화벽 설정

sudo ufw allow 3478/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp
sudo ufw allow 49152:65535/udp

7. TURN 서버 실행

sudo systemctl start coturn
sudo systemctl enable coturn
tail -f /var/log/turnserver.log

8. WebRTC 코드 적용

const pc = new RTCPeerConnection({
    iceTransportPolicy: "all",
    iceServers: [
        { urls: "stun:stun.l.google.com:19302" },
        {
            urls: [
                "turn:turn.example.com:3478?transport=udp",
                "turns:turn.example.com:5349"
            ],
            username: turnUser,
            credential: turnCredential
        }
    ]
});

9. TURN 정상 동작 확인

chrome://webrtc-internals
정상 상태
  • candidateType: relay
  • ICE connection state: connected
  • Connection state: connected

10. 실제 테스트 방법

  • 모바일 LTE
  • 다른 Wi-Fi 환경
  • 회사 네트워크
내부 네트워크에서는 TURN이 동작하지 않을 수 있습니다. 반드시 외부 환경에서 테스트하세요.

결론

이번 작업을 통해 다음을 완료했습니다.

  • TURN 서버 구축 (coturn)
  • SSL 적용 (Let’s Encrypt)
  • WebRTC 연동
  • relay 동작 확인
핵심은 relay candidate가 나오면 성공입니다.

이 구조를 적용하면 모바일, 회사망, NAT 환경에서도 안정적인 WebRTC 서비스를 운영할 수 있습니다.

광고
RELATED POSTS

같이 보면 좋은 글

글 찾아보기
87개의 글
코딩
조회 20 · 2026.10.31
우분투 환경변수 설정 처리 cli php-fpm 한곳에서 사용

Ubuntu 서버에서 환경변수를 /etc/environment 한 곳에만 등록하고, PHP CLI와 PHP-FPM에서 모두 getenv()로 사용하는 방법을 정리합니다. 예시 변수명과 값은 모두 가상 데이터입니다. 핵심: 환경변수 값은 /et...

컴퓨터 트렌딩
조회 30 · 2026.10.30
3RSYS L420 LED BAR (블랙) 관심도 328.6% 상승, 최근 7일 지표 정리

3RSYS L420 LED BAR (블랙)의 2026.10.23과 2026.10.30 데이터를 비교했습니다. 이 글은 PC트렌딩에 저장된 가격과 내부 분석 지표의 변화만 정리하며, 실제 전체 시장 판매량이나 제품 성능을 뜻하지 않습니다....

컴퓨터 트렌딩
조회 53 · 2026.10.27
특가)키오시아 EXCERIA G3 M.2 NVMe (1TB) 관심도 92.3% 상승, 최근 7일 지표 정리

특가)키오시아 EXCERIA G3 M.2 NVMe (1TB)의 2026.10.20과 2026.10.27 데이터를 비교했습니다. 이 글은 PC트렌딩에 저장된 가격과 내부 분석 지표의 변화만 정리하며, 실제 전체 시장 판매량이나 제품 성능을 뜻...

컴퓨터 트렌딩
조회 70 · 2026.10.26
이엠텍 지포스 RTX 3050 MIRACLE WHITE D6 6GB 판매지표 88.5% 상승, 최근 흐름 체크

이엠텍 지포스 RTX 3050 MIRACLE WHITE D6 6GB의 2026.10.16과 2026.10.23 데이터를 비교했습니다. 이 글은 PC트렌딩에 저장된 가격과 내부 분석 지표의 변화만 정리하며, 실제 전체 시장 판매량이나 제품 성능을...

컴퓨터 트렌딩
조회 73 · 2026.10.25
이엠텍 지포스 RTX 3050 MIRACLE WHITE D6 6GB 관심도 72.7% 상승, 최근 7일 지표 정리

이엠텍 지포스 RTX 3050 MIRACLE WHITE D6 6GB의 2026.10.18과 2026.10.25 데이터를 비교했습니다. 이 글은 PC트렌딩에 저장된 가격과 내부 분석 지표의 변화만 정리하며, 실제 전체 시장 판매량이나 제품 성능을...

광고
컴퓨터 트렌딩
조회 70 · 2026.10.24
darkFlash DQX80 ARGB BTF (화이트) 관심도 64.7% 상승, 최근 7일 지표 정리

darkFlash DQX80 ARGB BTF (화이트)의 2026.10.17과 2026.10.24 데이터를 비교했습니다. 이 글은 PC트렌딩에 저장된 가격과 내부 분석 지표의 변화만 정리하며, 실제 전체 시장 판매량이나 제품 성능을 뜻하지 않...

컴퓨터 트렌딩
조회 113 · 2026.10.23
AGI DDR4-3200 CL22 UD138 (16GB) 관심도 136.0% 상승, 최근 7일 지표 정리

AGI DDR4-3200 CL22 UD138 (16GB)의 2026.10.16과 2026.10.23 데이터를 비교했습니다. 이 글은 PC트렌딩에 저장된 가격과 내부 분석 지표의 변화만 정리하며, 실제 전체 시장 판매량이나 제품 성능을 뜻하지 않습...

컴퓨터 트렌딩
조회 83 · 2026.10.22
특가)YMTC ZHITAI TiPlus7100s M.2 NVMe (1TB) 판매지표 79.2% 상승, 최근 흐름 체크

특가)YMTC ZHITAI TiPlus7100s M.2 NVMe (1TB)의 2026.10.15과 2026.10.22 데이터를 비교했습니다. 이 글은 PC트렌딩에 저장된 가격과 내부 분석 지표의 변화만 정리하며, 실제 전체 시장 판매량이나 제품 성능을...

컴퓨터 트렌딩
조회 91 · 2026.10.21
ASRock H610M-HDV/M.2+ D5 에즈윈 관심도 266.7% 상승, 최근 7일 지표 정리

ASRock H610M-HDV/M.2+ D5 에즈윈의 2026.10.13과 2026.10.20 데이터를 비교했습니다. 이 글은 PC트렌딩에 저장된 가격과 내부 분석 지표의 변화만 정리하며, 실제 전체 시장 판매량이나 제품 성능을 뜻하지 않습...

컴퓨터 트렌딩
조회 96 · 2026.10.20
ASUS DUAL 라데온 RX 9060 XT D6 16GB 대원씨티에스 판매지표 122.2% 상승, 최근 흐름 체크

ASUS DUAL 라데온 RX 9060 XT D6 16GB 대원씨티에스의 2026.10.13과 2026.10.20 데이터를 비교했습니다. 이 글은 PC트렌딩에 저장된 가격과 내부 분석 지표의 변화만 정리하며, 실제 전체 시장 판매량이나 제품 ...

광고
컴퓨터 트렌딩
조회 84 · 2026.10.19
darkFlash NEBULA DN-360 ARGB (블랙) 관심도 55.3% 상승, 최근 7일 지표 정리

darkFlash NEBULA DN-360 ARGB (블랙)의 2026.10.12과 2026.10.19 데이터를 비교했습니다. 이 글은 PC트렌딩에 저장된 가격과 내부 분석 지표의 변화만 정리하며, 실제 전체 시장 판매량이나 제품 성능을 뜻하지 ...

컴퓨터 트렌딩
조회 94 · 2026.10.19
Thermalright LEVITA VISION 360 ARGB (화이트) 판매지표 480.0% 상승, 최근 흐름 체크

Thermalright LEVITA VISION 360 ARGB (화이트)의 2026.10.11과 2026.10.18 데이터를 비교했습니다. 이 글은 PC트렌딩에 저장된 가격과 내부 분석 지표의 변화만 정리하며, 실제 전체 시장 판매량이나 제품 성능...

컴퓨터 트렌딩
조회 104 · 2026.10.18
ASUS PRIME 지포스 RTX 5070 WHITE OC D7 12GB 인텍앤컴퍼니 관심도 86.7% 상승, 최근 7일 지표 정리

ASUS PRIME 지포스 RTX 5070 WHITE OC D7 12GB 인텍앤컴퍼니의 2026.10.11과 2026.10.18 데이터를 비교했습니다. 이 글은 PC트렌딩에 저장된 가격과 내부 분석 지표의 변화만 정리하며, 실제 전체 시장 판매량이...

컴퓨터 트렌딩
조회 104 · 2026.10.18
리안리 UNI FAN SL-INF FLEX 120 (3팩) 관심도 106.3% 상승, 최근 7일 지표 정리

리안리 UNI FAN SL-INF FLEX 120 (3팩)의 2026.10.11과 2026.10.18 데이터를 비교했습니다. 이 글은 PC트렌딩에 저장된 가격과 내부 분석 지표의 변화만 정리하며, 실제 전체 시장 판매량이나 제품 성능을 뜻하지...

축제
조회 126 · 2026.10.17
이번 주말 부산 축제 9곳, 일정 확인

부산에서 확인할 수 있는 축제 일정을 리컴에리어 원본 데이터 기준으로 정리했습니다. 기준 기간은 2026년 10월 17일~10월 18일입니다. 실제 일정과 운영 정보는 변경될 수 있으므로 방문 전에 상세 페이지에서 ...