Skip to main content

시스템 요구사항

Cloudflare의 커넥터인 cloudflared는 라즈베리 파이, 개인 노트북, 데이터 센터의 서버 등 어디에나 효과적으로 배포할 수 있도록 가볍고 유연하게 설계되었습니다.

기존 VPN의 처리량이 서버의 메모리, CPU 및 기타 하드웨어 사양에 의해 결정되는 것과 달리, Cloudflare Tunnel의 처리량은 주로 시스템 소프트웨어에 구성된 포트 수에 의해 제한됩니다. 따라서 cloudflared 서버의 크기를 조정할 때 가장 중요한 요소는 예상되는 TCP 및 UDP 트래픽 처리량을 반영하여 시스템에서 사용 가능한 포트 수를 조정하는 것입니다.

권장 사항

대부분의 사용 사례에 대해 다음의 기본 구성을 권장합니다:

  • 각 네트워크 위치당 2개의 전용 호스트 머신에서 cloudflared 복제본을 실행합니다. 두 개의 호스트를 사용하면 서버 측 이중화 및 트래픽 분산이 가능합니다.
  • 각 호스트는 최소 4GB RAM4개의 CPU 코어로 크기를 조정합니다.
  • 각 호스트의 cloudflared 프로세스에 50,000개의 포트를 할당합니다.

이 설정은 일반적으로 8,000명의 WARP 사용자(호스트당 4,000명)의 트래픽을 처리하기에 충분합니다. cloudflared가 사용하는 실제 리소스 양은 초당 요청 수, 대역폭, 네트워크 경로 및 하드웨어를 포함한 여러 변수에 따라 달라집니다.

포트 수

cloudflared가 WARP 장치로부터 요청을 받으면 호스트 머신의 포트를 사용하여 요청을 평가하고 원본 서비스로 전달합니다. 모든 머신은 시스템 설계상 최대 65,535개의 포트로 하드웨어 제한이 있습니다. 따라서 다음 배포 모델을 권장합니다.

  • cloudflared는 전용 호스트 머신에 배포되어야 합니다.
  • 호스트 머신은 cloudflared 서비스에서 사용할 수 있도록 50,000개의 포트를 할당해야 합니다.

포트 수 늘리기

Linux:

/etc/sysctl.d/ 디렉토리가 있는 경우:

echo 'net.ipv4.ip_local_port_range = 11000 60999' | sudo tee -a /etc/sysctl.d/99-cloudflared.conf
sudo sysctl -p /etc/sysctl.d/99-cloudflared.conf

그렇지 않은 경우:

echo 'net.ipv4.ip_local_port_range = 11000 60999' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf

Windows:

TCP 및 UDP에 대한 동적 포트 범위를 설정합니다.

netsh int ipv4 set dynamicport tcp start=11000 num=50000
netsh int ipv4 set dynamicport udp start=11000 num=50000
netsh int ipv6 set dynamicport tcp start=11000 num=50000
netsh int ipv6 set dynamicport udp start=11000 num=50000

Private DNS

DNS 쿼리는 다른 요청에 비해 더 많은 시스템 리소스를 사용합니다. 서비스 가용성을 최적화하려면 프라이빗 DNS 트래픽을 자체 Cloudflare Tunnel로 분리하는 것이 좋습니다.

ulimits

Linux 및 macOS에서 ulimit 설정은 사용 가능한 시스템 리소스를 결정합니다. cloudflared 서버에서 열린 파일(-n)에 대한 ulimit을 70000으로 설정하는 것을 권장합니다.

# 현재 ulimit 확인
ulimit -a

# 열린 파일 ulimit 설정 (현재 세션에만 적용)
ulimit -n 70000

예상 처리량

  • TCP 트래픽: 포트를 거의 즉시 사용하고 해제합니다. 50,000개의 사용 가능한 포트가 있는 cloudflared 인스턴스를 과부하시키려면 초당 50,001개의 TCP 요청을 지속적으로 생성해야 합니다.
  • UDP 트래픽:
    • DNS 쿼리는 포트를 5초 동안 유지합니다. 초당 10,000개의 DNS 쿼리를 처리할 수 있습니다.
    • 비-DNS UDP 트래픽은 연결 기간 동안 각 포트를 유지합니다.