조회수: 11

522 Connection Timed Out (Cloudflare) 해결

Cloudflare Error 522는 오리진 연결이 타임아웃됐다는 뜻입니다. 조용한 방화벽 drop·오리진 과부하·라우팅을 3단계로 점검합니다. 무료 포트 진단으로 바로 확인.

내 도메인에 이 문제가 있는지 지금 확인

무료, 가입 불필요. 이 가이드가 다루는 항목을 바로 검사하고 조치 방법을 알려드립니다.

Problem

Cloudflare가 Error 522: Connection timed out을 반환합니다. Cloudflare 엣지가 오리진을 향해 TCP SYN을 보내고 핸드셰이크를 완성할 SYN-ACK을 기다렸지만, 끝내 오지 않은 것입니다. 대략 15~20초 후 Cloudflare는 포기하고 522 페이지를 보여줍니다. 521과 달리 연결을 거부한 것은 없습니다 — 그저 아무 응답도 없었던 것입니다.

Symptoms

  • Cloudflare 브랜드 오류 페이지에 Error 522가 표시됩니다.
  • 오류가 즉시가 아니라 긴 멈춤 뒤에 나타납니다(522 타임아웃을 521 reset과 구분하는 핵심 단서).
  • 내 컴퓨터에서 오리진 IP로 직접 접속하면 사이트가 정상적으로 열리는 경우가 많습니다.

Top 3 Causes

  1. 방화벽이 Cloudflare 패킷을 조용히 drop함 - 가장 흔한 원인입니다. OS 방화벽(iptables/ufw), 클라우드 보안 그룹, 또는 fail2ban류 도구가 Cloudflare IP 대역을 REJECT가 아닌 DROP 규칙으로 차단합니다. drop은 아무것도 돌려보내지 않아 — reset도 ICMP도 없이 — Cloudflare의 SYN이 허공으로 사라지고 핸드셰이크가 타임아웃됩니다. (REJECT라면 대신 즉시 521로 튕겨 나옵니다.)
  2. 오리진 과부하 - 웹 서버는 떠 있지만 제때 새 연결을 받아들이지 못합니다. accept 대기열이 가득 찼거나, 워커 프로세스가 소진됐거나, CPU가 포화되면 SYN-ACK이 Cloudflare 타임아웃을 넘겨 지연됩니다. 522가 트래픽 피크 때만 나타나는 이유입니다.
  3. 라우팅 손상 또는 잘못된 오리진 IP - 프록시된 A/AAAA 레코드가 떠는 있지만 Cloudflare가 완성할 수 없는 경로의 IP를 가리킵니다 — 비대칭 라우팅, 잘못된 NAT, 또는 내 가정용 ISP에는 응답하면서 Cloudflare 네트워크에는 응답하지 않는 오리진. SYN은 나가지만 응답이 돌아올 길을 찾지 못합니다.

Diagnose with DechoNet

  • Port Check를 오리진 IP의 80·443 포트에 실행합니다. 여기서 타임아웃이 나면 Cloudflare가 보는 것과 정확히 같습니다. 열려 있다고 나오면 포트 자체는 동작하며 차단이 Cloudflare 출발지 IP에만 한정된 것입니다.
  • HTTP Check를 오리진에 실행해 연결이 열렸을 때 응답이 오기는 하는지 확인합니다.

Resolution Checklist

  • 서버가 실행 중일 뿐 아니라 수신하는지 확인합니다: ss -tlnp | grep -E ':(80|443)'. 그다음 SYN은 도착하는데 완성되지 않는지 봅니다: ss -tn state syn-recv. SYN-RECV 항목이 쌓여 있으면 핸드셰이크가 오리진 쪽에서 멈추고 있다는 뜻입니다.
  • Cloudflare를 우회해 외부에서 테스트합니다: curl -v --connect-timeout 20 http://ORIGIN_IP. Connection refused가 아니라 멈췄다가 Connection timed out으로 끝나면 522 계열 문제임이 확인됩니다.
  • 방화벽에서 Cloudflare 대역에 걸리는 DROP 규칙을 점검합니다. cloudflare.com/ips의 공개 대역을 80·443 포트에 대해 모든 계층 — OS, 호스팅 패널, 클라우드 보안 그룹 — 에서 허용합니다.
  • Cloudflare는 대역을 주기적으로 갱신하므로, 허용 목록을 자동화하세요(cloudflare.com/ips를 가져오는 cron 작업) — 향후 대역 변경이 오리진을 조용히 다시 망가뜨리지 않도록.
  • 오류가 트래픽과 함께 움직이면 오리진 용량을 점검합니다: 워커/연결 한도(nginx worker_connections, PHP-FPM pm.max_children), listen backlog(net.core.somaxconn), 부하 시 CPU/메모리 여유.
  • Port Check를 오리진에 다시 실행해 80/443이 이제 외부에서 핸드셰이크를 완성하는지 확인한 뒤 사이트를 새로고침합니다.

When to Escalate

  • 관리형 호스트나 플랫폼이 방화벽을 제어해 Cloudflare 대역을 직접 추가할 수 없다면, cloudflare.com/ips의 IP 목록을 제공업체에 보내 80·443에서 허용하도록 요청하세요.
  • 깨끗한 방화벽과 건강한 오리진에도 살아남는 간헐적 522는 path MTU 블랙홀일 수 있습니다: 작은 패킷(SYN)은 통과하지만 실제 요청을 담은 큰 패킷이 멈춥니다. 오리진 송신단에서 MSS를 클램프하고(iptables ... TCPMSS --clamp-mss-to-pmtu) 다시 테스트하세요.

관련 도구

관련 가이드

가이드 공유

[Ad] Guide Detail Inline
← 전체 가이드 보기