블로그 목록
Media10분 읽기

Agora의 기업 방화벽 우회 전략 — Cloud Proxy와 Firewall Whitelist

Agora는 자체 솔루션 Cloud Proxy로 기업 방화벽을 우회합니다. Firewall Whitelist(도메인·포트)와 Cloud Proxy(TCP 443, SD-RTN®) 두 가지 방식을 정리합니다.

FirewallCloud ProxyUDP/TCP

Agora는 자체 솔루션으로 기업 방화벽을 우회합니다. 핵심은 Cloud Proxy입니다. 이 글에서는 Agora가 제공하는 두 가지 방식(Firewall Whitelist, Cloud Proxy)과, 언제 어떤 방식을 쓰면 되는지 정리합니다.

Agora가 제공하는 두 가지 방식

방식설명
방식 1Firewall Whitelist — 도메인·포트 허용
방식 2Cloud Proxy — (제한된 환경용)

방식 1 — Firewall Whitelist (도메인 + 포트 허용)

"IP 말고 도메인으로 허용해라"가 핵심입니다. 일반 TURN은 IP를 허용해야 하는데, Agora는 도메인 기반 허용을 권장합니다.

허용해야 할 도메인 (예시)

*.agora.io
*.edge.agora.io
*.sd-rtn.com
*.edge.sd-rtn.com

포트 허용

포트타입용도
443, 80TCP기본 통신 (HTTPS 포트라 거의 안 막힘)
3478UDPTURN 표준 포트
4700~5000UDP/TCP미디어 전송
6443TCP보안 연결

IP가 아닌 도메인으로 허용하는 이유 → Agora 서버 IP는 수시로 바뀌기 때문에 IP 고정 허용이 불가능합니다.


방식 2 — Cloud Proxy (클릭 시 시각화)

화이트리스트도 못 하는 제한된 환경을 위한 솔루션입니다.

  • 일반 WebRTC TURN: 클라이언트 → TURN 서버 → Peer
  • Agora Cloud Proxy: 클라이언트 → Cloud Proxy → Agora SD-RTN® → 상대방

동작 흐름

  1. SDK가 Cloud Proxy에 연결 요청
  2. Cloud Proxy가 프록시 정보 반환
  3. SDK → Cloud Proxy → Agora SD-RTN® (Agora 글로벌 네트워크)
  4. SD-RTN® → Cloud Proxy → SDK (역방향)

코드 한 줄로 활성화

// UDP 모드 (빠름) — Native SDK 상수명 기준. Web SDK는 숫자 enum 사용
rtcEngine.setCloudProxy(TRANSPORT_TYPE_UDP_PROXY);   // Native: 3

// TCP 모드 (방화벽 우회)
rtcEngine.setCloudProxy(TRANSPORT_TYPE_TCP_PROXY);   // Native: 5

// 비활성화
rtcEngine.setCloudProxy(TRANSPORT_TYPE_NONE_PROXY);

일반 TURN vs Agora Cloud Proxy

항목일반 TURNAgora Cloud Proxy
IP 허용고정 IP 필요❌ 불필요 (도메인 기반)
포트3478 (UDP)443 (TCP, HTTPS 포트)
방화벽 우회어려움443 포트라 거의 통과
설정복잡SDK 한 줄
네트워크단순 중계Agora 글로벌 SD-RTN® 경유

SD-RTN® 이란?

SD-RTN = Software Defined Real-Time Network

Agora가 전 세계에 구축한 자체 미디어 전송 네트워크입니다. 일반 인터넷이 아닌 Agora 전용 백본망으로 데이터를 전송합니다.

[기업 내 클라이언트]
       ↓ (443 포트 TCP, 방화벽 통과)
[Cloud Proxy 서버]
       ↓ (Agora 내부망)
[SD-RTN® 글로벌 네트워크]
       ↓ (Agora 내부망)
[상대방 Cloud Proxy or 직접]
       ↓
[상대방 클라이언트]

핵심 요약

기업 방화벽에서 Agora가 살아남는 이유:

  • 도메인 허용 → IP가 바뀌어도 문제 없음
  • 443 포트 사용 → 거의 모든 방화벽이 HTTPS 포트는 열어둠
  • Cloud Proxy → 극단적 제한 환경에서도 SDK 한 줄로 우회
  • SD-RTN® → 일반 인터넷 대신 Agora 전용망 사용 → 안정성 ↑

Cloud Proxy 구조 시각화 (클릭 시 시각화)


Cloud Proxy 역할 상세

① 고정 진입점 제공 — 왜 필요한가?

Agora 일반 연결

  • SDK → *.agora.io → 실제 서버 IP (1.2.3.4 or 5.6.7.8 or …)
  • 이 IP가 계속 바뀜 (글로벌 로드밸런싱)

기업 방화벽 입장: "어? 오늘은 1.2.3.4, 내일은 5.6.7.8… 어떤 IP를 허용해야 해?" → IP 기반 방화벽은 사실상 허용 불가

Cloud Proxy 연결

  • SDK → Cloud Proxy (고정 IP 대역) → SD-RTN®
  • 이 IP 대역만 방화벽에 등록하면 끝 (예: 148.153.x.x 대역만 허용)

핵심: Agora 전체 인프라 IP를 허용할 필요 없이, Cloud Proxy IP 대역만 허용하면 됩니다.

② 프로토콜 변환 — 구체적으로

기업 내부망 상황

  • UDP 3478 → ❌ 차단
  • UDP 4700~5000 → ❌ 차단
  • TCP 443 → ✅ 허용 (HTTPS니까)

Cloud Proxy가 하는 일

클라이언트 ──(TCP 443)──→ Cloud Proxy ──(UDP/내부망)──→ SD-RTN®
              ↑                           ↑
      방화벽이 허용하는 포트          Agora 내부는 UDP로 최적화
       (HTTPS처럼 보임)

즉, 클라이언트는 TCP 443으로 보내고, Cloud Proxy가 내부적으로 UDP로 변환해서 SD-RTN®에 전달합니다.

  • setCloudProxy(TRANSPORT_TYPE_TCP_PROXY) → 클라이언트는 TCP 443 사용
  • Cloud Proxy 내부에서 변환
  • SD-RTN®는 UDP로 수신 (성능 최적화)

Firewall Whitelist만으로 충분한가?

환경Whitelist 충분?이유
일반 기업 (도메인 허용 가능)✅ 충분*.agora.io 도메인 + 포트만 열면 됨
UDP 전체 차단 기업❌ 부족UDP 못 쓰면 미디어 전송 불가
IP 기반 방화벽 (도메인 불가)❌ 부족Agora IP가 동적이라 허용 불가
병원 / 은행 / 군❌ 부족Cloud Proxy 필수

Firewall Whitelist 설정

기업 IT 관리자에게 아래를 요청하면 됩니다.

도메인 허용

*.agora.io
*.edge.agora.io
*.sd-rtn.com
*.edge.sd-rtn.com

포트 허용

  • TCP: 80, 443, 3433, 4700~5000, 5668, 5669, 6080, 6443, 8667, 9667
  • UDP: 3478, 4700~5000

결론: Whitelist는 IT팀이 협조적이고 도메인 허용이 가능한 환경에서만 충분합니다. 그 외에는 Cloud Proxy가 필요합니다.

실제 데모

/agora-demo/rtc

© 2026 Frank Kim. All rights reserved.