← 모든 기록
Cloudflare DNS 레코드 설정 오류 해결 방법: 루트 도메인, 티스토리, Vercel, Tailscale 등 대표 이미지
문제 해결

Cloudflare DNS 레코드 설정 오류 해결 방법: 루트 도메인, 티스토리, Vercel, Tailscale 등

Cloudflare DNS를 설정할 때 발생하는 대표적인 오류(루트 도메인 CNAME, 티스토리, Vercel, Tailscale, AWS ACM 등)와 그 해결 방법을 비교 설명합니다.

Cloudflare DNS 레코드 설정 오류는 대부분 레코드 유형과 프록시 모드 선택에 따라 발생합니다. 각 서비스에 맞게 올바른 설정을 적용하면 문제를 해결할 수 있습니다. 지금부터 대표적인 오류 상황별 해결 방법을 단계별로 안내합니다.

Cloudflare DNS 레코드 설정 시 자주 발생하는 오류 개요

Cloudflare에서 DNS를 운영할 때 가장 흔한 실수는 루트 도메인에 CNAME을 등록하거나, 프록시 상태를 잘못 설정하거나, SSL/TLS 암호화 모드를 적절히 조정하지 않는 것입니다. 예를 들어 사이트가 연결되지 않거나 ‘DNS_PROBE_FINISHED_NXDOMAIN’ 오류가 표시되거나, 보안 경고가 나타나면 DNS 설정 문제일 가능성이 높습니다. 특히 한국에서는 Enterprise 플랜이 아닌 경우 Cloudflare의 프록시를 활성화하면 오히려 지연이 발생할 수 있어 DNS 전용 모드를 권장하기도 합니다. Cloudflare는 네임 서버 기능을 무료로 제공하므로 비용 부담 없이 DNS 관리를 시작할 수 있습니다. Enterprise 플랜이 아니라면 국내 엣지를 사용하지 않으므로 DNS 전용 모드가 더 빠를 수 있습니다. 이 가이드에서는 루트 도메인, 티스토리, Vercel, Tailscale, AWS ACM 등 대표적인 케이스별로 올바른 설정 방법과 오류 해결책을 제시합니다. Cloudflare DNS에 대한 더 넓은 내용은 Cloudflare DNS 오류 해결 가이드를 참고하세요. 또한 레스티프 위키의 Cloudflare DNS 문서도 기본 개념을 파악하는 데 도움이 됩니다.

루트 도메인에 CNAME 레코드를 설정하려는 경우: CNAME 플래트닝 사용법과 주의사항

루트 도메인에는 CNAME 레코드를 설정할 수 없으며 DNS 표준에서 금지됩니다. Cloudflare는 CNAME 플래트닝을 통해 루트 도메인 CNAME을 지원하지만 프록시를 켜야 합니다. CNAME 플래트닝은 Cloudflare가 권한 DNS 서버 역할을 하면서 루트 도메인의 CNAME 쿼리를 받으면 백엔드에서 실제 대상의 A/AAAA 레코드를 찾아 응답하는 기술입니다. 따라서 사용자에게는 마치 A 레코드가 있는 것처럼 보입니다. 이 과정에서 프록시가 반드시 켜져 있어야 Cloudflare가 HTTP 트래픽을 처리할 수 있습니다. 만약 프록시를 비활성화하면 Cloudflare는 단순 DNS 전달자 역할만 하므로 CNAME 플래트닝이 동작하지 않고 표준 DNS 규칙에 따라 루트 CNAME이 해석되지 않습니다. 그러나 루트 도메인에 CNAME을 설정하는 것은 권장되지 않으며 예기치 않은 동작을 유발할 수 있습니다. 실제로 레딧의 DNS records not working 스레드에서도 한 사용자가 루트에 CNAME을 사용해서는 안 된다는 사실을 깨닫고 프록시 활성화의 중요성을 언급했습니다.

  1. Cloudflare 대시보드의 DNS 탭에서 레코드 추가를 클릭합니다.
  2. 이름을 @ (루트를 의미), 유형을 CNAME, 대상을 연결하려는 호스트 이름(예: example.pages.dev)으로 입력합니다.
  3. 프록시 상태를 프록시됨(주황색 구름)으로 전환하고 저장합니다.
  4. 터미널에서 dig yourdomain.com @1.1.1.1 +short를 실행하여 A 레코드가 반환되면 CNAME 플래트닝이 정상 작동하는 것입니다.

티스토리 연결 시 프록시 비활성화 필요

티스토리에 개인 도메인을 연결하려면 Cloudflare에서 DNS 레코드를 추가할 때 프록시를 비활성화해야 합니다. 티스토리 연결 시 Cloudflare 프록시를 비활성화하고 DNS 전용 모드로 설정해야 합니다. 프록시를 활성화하면 티스토리 서버가 도메인 소유권을 확인하지 못해 연결이 실패합니다. 이는 티스토리 서버가 실제 DNS 조회를 통해 소유권을 확인하는데, 프록시가 활성화되면 Cloudflare의 IP가 반환되기 때문입니다. 로맨테크 블로그의 Cloudflare DNS 설정 오류 해결법에서도 동일한 문제를 다루고 있습니다.

  1. 티스토리 관리 페이지 → 관리 → 블로그 → 도메인 설정에서 CNAME 또는 TXT 레코드 값을 확인합니다.
  2. Cloudflare DNS 대시보드에서 해당 레코드를 추가하고 프록시 상태를 DNS 전용(회색 구름)으로 지정합니다.
  3. 저장 후 티스토리 도메인 설정 화면에서 연결 확인을 누르면 몇 분 내로 연결이 완료됩니다.

Vercel 연동 시 SSL/TLS 암호화 모드를 Full로 설정

Vercel과 Cloudflare를 함께 사용할 때 SSL/TLS 암호화 모드는 Full 또는 Full (Strict)로 설정해야 합니다. 기본 모드인 가변(Flexible)을 사용하면 Vercel의 HTTPS 리디렉션 때문에 무한 리디렉션이 발생할 수 있습니다. 가변 모드는 Cloudflare와 원본 서버 간 통신을 HTTP로 진행하지만, Vercel은 모든 요청을 HTTPS로 처리하려고 하여 무한 리디렉션 루프에 빠집니다. Full 모드로 설정하면 Cloudflare와 Vercel 간에도 HTTPS가 사용되므로 문제가 해결됩니다.

  1. Cloudflare 대시보드 → SSL/TLS → 에지 인증서로 이동합니다.
  2. SSL/TLS 암호화 모드가 ‘가변(Flexible)‘로 설정되어 있다면 ‘전체(Full)’ 또는 ‘전체(엄격, Strict)‘로 변경합니다.
  3. Vercel에서 제공한 도메인 CNAME 레코드가 Cloudflare에 정확히 등록되어 있고 프록시 상태가 ‘프록시됨’으로 되어 있는지 확인합니다.
  4. curl -I https://yourdomain.com을 실행하여 응답 헤더에 200 OK가 표시되고 리디렉션(301/302)이 없는지 점검합니다.

Tailscale 등 사설 IP 연결 시 프록시 해제

Tailscale 머신의 사설 IP를 DNS 레코드로 등록할 때 프록시를 활성화하면 Error 1002가 발생합니다. Tailscale 등 사설 IP로 연결되는 DNS 레코드는 Cloudflare 프록시를 해제해야 합니다. Cloudflare는 사설 IP 주소로의 프록시를 허용하지 않기 때문입니다. Error 1002는 Cloudflare가 프록시하려는 IP가 공인 IP가 아닌 사설 대역이거나, Cloudflare 내부에서 차단한 IP일 때 나타납니다. DNS 전용 모드로 설정하면 단순히 레코드만 전달하므로 Tailscale의 MagicDNS처럼 사설 IP를 정상적으로 사용할 수 있습니다.

  1. Tailscale 관리 콘솔에서 디바이스의 MagicDNS 이름(예: machinename.tailxxxxx.ts.net)이나 IP(100.x.x.x)를 확인합니다.
  2. Cloudflare DNS에서 A 레코드(이름은 원하는 서브도메인, 값은 사설 IP) 또는 CNAME 레코드로 등록하고 프록시를 DNS 전용으로 설정합니다.
  3. nslookup your-sub.yourdomain.com 또는 ping으로 사설 IP가 정상 반환되는지 확인합니다.

AWS ACM 인증서 검증을 위한 DNS 전용 모드

AWS Certificate Manager(ACM)에서 SSL 인증서를 발급받을 때 도메인 검증을 위해 DNS 레코드를 등록해야 합니다. 이때 Cloudflare에서 프록시를 활성화하면 AWS가 검증 레코드를 읽지 못해 인증서 발급이 실패합니다. AWS ACM 인증서 검증을 위해 추가하는 DNS 레코드는 Cloudflare 프록시를 DNS 전용으로 설정해야 합니다. AWS 검증 시스템은 등록한 CNAME 레코드에 직접 접근하여 특정 토큰 값을 확인하는데, 프록시가 활성화되면 중간에 Cloudflare의 IP가 개입하여 직접 접근이 불가능해집니다. CNAME 레코드를 추가할 때 프록시 상태를 DNS 전용으로 변경하면 몇 분 내로 검증이 완료됩니다.

  1. AWS ACM 콘솔에서 인증서 요청 시 화면에 표시되는 CNAME 레코드(이름과 값)를 복사합니다.
  2. Cloudflare DNS에서 레코드 추가 시 유형을 CNAME, 이름과 대상을 AWS가 제공한 값으로 입력하고 프록시는 DNS 전용으로 지정합니다.
  3. 인증서가 검증될 때까지 AWS 콘솔에서 상태가 ‘발급됨’으로 바뀌기를 기다립니다. (보통 5분 이내)

DNS 레코드 확인 및 문제 해결 체크리스트

상황필수 설정확인 방법비고
루트 도메인 CNAME 사용프록시 활성화 (주황색 구름)dig @1.1.1.1 yourdomain.com +short 실행 시 A 레코드 반환 확인CNAME 플래트닝으로 작동하지만 권장하지 않음
티스토리 도메인 연결프록시 비활성화 (DNS 전용)티스토리 설정 페이지에서 연결 성공 메시지 확인프록시 활성화 시 도메인 인식 불가
Vercel 프로젝트 연동SSL/TLS 암호화 모드 Full 또는 Full (Strict)curl -I https://yourdomain.com 실행 시 200 OK와 리디렉션 없음가변(Flexible) 모드에서 무한 리디렉션 오류
Tailscale 등 사설 IP 연결프록시 비활성화 (DNS 전용)nslookup 또는 ping으로 사설 IP 확인, Error 1002 미발생Cloudflare는 사설 IP 프록시를 지원하지 않음
AWS ACM 인증서 검증DNS 전용 모드로 CNAME 레코드 추가AWS ACM 콘솔에서 검증 상태 ‘성공’ 표시프록시 활성화 시 검증 실패
한국 리전 성능 최적화 (Enterprise 미만)가능한 DNS 전용 모드 사용사이트 접속 속도 비교Enterprise 플랜이 아니면 국내 엣지 미제공

참고 자료