블로그 목록
Media10분 읽기

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

제한된 enterprise network에서 Agora RTC에 필요한 domain·port allowlist와 Cloud Proxy를 비교합니다. UDP 차단, 고정 outbound 정책, TLS inspection 같은 조건에 따라 적용 범위가 달라지며 어느 방식도 모든 방화벽 통과를 보장하지 않습니다. 운영망에서 join·publish·subscribe를 검증하는 절차를 함께 제시합니다.

FirewallCloud ProxyUDP/TCP

제한된 기업망에서 Agora RTC를 연결하는 방법은 Firewall Whitelist와 Cloud Proxy로 나뉩니다. SDK 플랫폼·버전과 방화벽 정책에 따라 필요한 도메인, 포트, IP 대역이 다르므로 두 방식을 같은 설정으로 취급하면 안 됩니다.

Agora가 제공하는 두 가지 방식

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

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

Web SDK의 Firewall Whitelist는 공식 문서에 지정된 도메인과 포트를 허용하는 방식입니다. 도메인 목록은 Web SDK 버전에 따라 달라집니다.

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

.agora.io
.edge.agora.io
.sd-rtn.com
.edge.sd-rtn.com
.ap.sd-rtn.com
.statscollector.sd-rtn.com
.webrtc-cloud-proxy.sd-rtn.com
.rtnsvc.com
.edge.rtnsvc.com
.rtesvc.com
.edge.rtesvc.com

위 목록은 현재 Firewall requirements 문서의 Web RTC 전체 allowlist입니다. Cloud Proxy 가이드에는 SDK 버전별 축약 표도 있으므로, 실제 배포 버전과 보안팀 정책에 맞춰 두 문서를 함께 확인합니다.

포트 허용

포트타입용도
80, 443, 3433, 3478, 4700~5000, 5668, 5669, 6080, 6443, 8667, 9667TCPWeb SDK 서비스 연결
30011~30013TCPRTMP converter를 사용할 때 추가
3478, 4700~5000UDPWeb SDK 2.9.0 이상 미디어 연결

공개망 연결은 도메인 allowlist를 사용하면 Agora 서비스 주소 변경에 대응하기 쉽습니다. 반대로 Cloud Proxy는 공식 Allowed 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 (역방향)

플랫폼별 활성화 API

Web SDK 4.3.0 이상은 startProxyServer를 채널 입장 전에 호출합니다. Force UDP는 3, Force TCP(TLS 443)는 Web SDK 4.9.0 이상에서 5입니다.

const client = AgoraRTC.createClient({ mode: "rtc", codec: "vp8" });

client.startProxyServer(5); // Force TCP over TLS 443
await client.join(APP_ID, channelName, token, uid);

await client.leave();
client.stopProxyServer();

Native SDK는 RtcEngine.setCloudProxy와 플랫폼 enum을 사용합니다. 예를 들어 Android 4.x는 TRANSPORT_TYPE_UDP_PROXY, TRANSPORT_TYPE_TCP_PROXY, TRANSPORT_TYPE_NONE_PROXY를 사용하며 채널 밖에서 호출합니다. Web의 숫자 3·5를 Native enum 값으로 재사용하면 안 됩니다.

일반 TURN vs Agora Cloud Proxy

항목일반 TURNAgora Cloud Proxy
허용 대상TURN 서버 주소와 전송 포트Agora Cloud Proxy Allowed IP와 포트
전송UDP·TCP·TLS 등 서버 구성에 따름Web Force TCP는 TLS 443, Force UDP는 UDP
적용ICE 서버와 브라우저 정책에 따름SDK API + Console 활성화 + 방화벽 IP 허용
이후 경로TURN relay를 거쳐 상대 또는 서비스로 전달Cloud Proxy가 Agora SDRTN®으로 전달

Cloud Proxy는 도메인 allowlist가 아니라 Agora가 게시한 Allowed IP 대역과 포트를 방화벽에 등록합니다. 목록은 Native Force UDP, Native Force TCP, Web RTC 등 모드와 리전별로 다르고 이전 목록에서 마이그레이션이 필요할 수도 있으므로 현재 Allowed IP 문서를 배포 시점에 적용하세요. Native Force UDP 모드에서는 Media Push와 채널 간 co-hosting을 사용할 수 없습니다.


SD-RTN® 이란?

SD-RTN = Software Defined Real-Time Network

Agora가 운영하는 분산 실시간 전송 네트워크입니다. 공식 Cloud Proxy 문서는 프록시가 받은 데이터를 SDRTN®으로 전달한다고 설명하지만, 모든 구간이 공용 인터넷과 분리된 전용 사설 백본이라고 명시하지는 않습니다.

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

핵심 요약

제한된 기업망에서 확인할 항목:

  • Web SDK 버전에 맞는 도메인·포트 allowlist
  • TLS inspection, 인증 프록시, DNS, WebSocket 정책
  • Cloud Proxy 사용 시 Console 활성화·SDK API·Allowed IP/포트
  • 배포 리전별 실제 통화 테스트

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 Allowed IP 대역 → SDRTN®
  • 사용하는 SDK·모드·리전에 해당하는 IP와 포트를 방화벽에 등록

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

Force TCP 경로

기업 내부망 상황

  • UDP 3478 → 차단
  • UDP 4700~5000 → 차단
  • TCP 443 → 허용

Web Force TCP 모드에서 클라이언트는 Cloud Proxy까지 TLS 443으로 전송합니다.

클라이언트 ──(TLS 443)──→ Cloud Proxy ──→ SDRTN®

공식 문서는 Cloud Proxy가 데이터를 SDRTN®으로 전달한다고 설명합니다. 프록시 이후 구간이 반드시 UDP로 변환된다고 공개 문서만으로 단정할 수 없으므로, 내부 전송 프로토콜을 아키텍처 사실처럼 표시하지 않습니다.


Firewall Whitelist만으로 충분한가?

환경Whitelist 충분?이유
Web SDK, 도메인·필수 TCP/UDP 허용 가능우선 검토버전별 Firewall Whitelist 적용 후 테스트
UDP 차단, TLS 443 경로 허용조건부Web Force TCP Cloud Proxy 또는 허용된 TCP 경로 검토
IP 기반 정책만 허용Cloud Proxy 후보리전별 Allowed IP와 포트 등록 필요
병원·은행·공공기관환경별 판단TLS inspection·인증 프록시·DNS·보안 정책까지 실측

Firewall Whitelist 설정

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

도메인 허용

.agora.io
.edge.agora.io
.sd-rtn.com
.edge.sd-rtn.com
.ap.sd-rtn.com
.statscollector.sd-rtn.com
.webrtc-cloud-proxy.sd-rtn.com
.rtnsvc.com
.edge.rtnsvc.com
.rtesvc.com
.edge.rtesvc.com

포트 허용

  • TCP: 80, 443, 3433, 3478, 47005000, 5668, 5669, 6080, 6443, 8667, 9667; RTMP converter 사용 시 3001130013
  • UDP: 3478, 4700~5000

이 목록은 현재 Firewall requirements 문서의 Web SDK 항목입니다. Native SDK에는 그대로 적용하지 않고, Web도 배포 SDK 버전의 Cloud Proxy 가이드 표와 함께 확인합니다.


결론: 먼저 SDK·버전·리전과 방화벽 정책을 확인합니다. Web allowlist로 필요한 경로를 열 수 있으면 이를 적용하고, 고정 IP 진입점이나 Force TCP가 필요하면 Cloud Proxy를 검토합니다. 어느 방식도 "항상 통과"를 보장하지 않으므로 운영망에서 join·publish·subscribe를 모두 테스트해야 합니다.


관련 글

참고 자료

실제 데모

/agora-demo/rtc

© 2026 Frank Kim. All rights reserved.