조회수: 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
- 방화벽이 Cloudflare 패킷을 조용히 drop함 - 가장 흔한 원인입니다. OS 방화벽(
iptables/ufw), 클라우드 보안 그룹, 또는 fail2ban류 도구가 Cloudflare IP 대역을REJECT가 아닌DROP규칙으로 차단합니다. drop은 아무것도 돌려보내지 않아 — reset도 ICMP도 없이 — Cloudflare의 SYN이 허공으로 사라지고 핸드셰이크가 타임아웃됩니다. (REJECT라면 대신 즉시 521로 튕겨 나옵니다.) - 오리진 과부하 - 웹 서버는 떠 있지만 제때 새 연결을 받아들이지 못합니다. accept 대기열이 가득 찼거나, 워커 프로세스가 소진됐거나, CPU가 포화되면 SYN-ACK이 Cloudflare 타임아웃을 넘겨 지연됩니다. 522가 트래픽 피크 때만 나타나는 이유입니다.
- 라우팅 손상 또는 잘못된 오리진 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 작업) — 향후 대역 변경이 오리진을 조용히 다시 망가뜨리지 않도록. - 오류가 트래픽과 함께 움직이면 오리진 용량을 점검합니다: 워커/연결 한도(
nginxworker_connections, PHP-FPMpm.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