DNS 캐시 비우기 원리와 flushdns 실행법
자주 배달시켜 먹는 단골 식당의 전화번호를 수첩 첫 페이지에 적어두고 매번 빠르게 전화를 걸어 주문했는데, 어느 날 식당이 다른 동네로 확장이전을 하며 전화번호를 바꾸었음에도 내 수첩에는 여전히 옛날 번호가 적혀 있어 통화할 때마다 ‘없는 번호’라는 안내만 나오는 난감한 상황을 떠올려 보세요. 식당이 망한 것이 아니라 내 수첩의 낡은 메모를 지우지 않아 벌어진 문제입니다.
웹 브라우저를 사용할 때 특정 사이트 서버가 이전되었거나 IP가 갱신되었음에도 내 PC에서만 접속 에러가 뜰 때 필요한 DNS 캐시 비우기 작업도 이와 완벽히 동일합니다. 윈도우가 인터넷 속도를 높이기 위해 임시로 메모해 둔 주소록을 왜 주기적으로 지워주어야 하는지 그 기술적 원리를 살펴보고, 실전 명령어 활용법을 알아보겠습니다.
DNS 캐시 비우기 조치의 필요성과 로컬 캐시 메모리 메커니즘
컴퓨터가 웹사이트에 접속할 때마다 매번 통신사 DNS 서버에 “이 사이트의 숫자로 된 IP 주소가 무엇인가요?”라고 물어본다면 수십 밀리초(ms)의 지연 시간이 발생합니다. 윈도우는 이 대기 시간을 없애기 위해 한 번 조회한 도메인과 IP 매핑 정보를 로컬 RAM 메모리의 DNS 리졸버 캐시(DNS Resolver Cache)에 임시로 저장해 둡니다.
각 캐시 데이터에는 TTL Time To Live 만료 시간이 부여되어 일정 시간이 지나면 스스로 사라져야 합니다. 하지만 네트워크 오류나 비정상 종료로 인해 잘못된 응답이나 악성 도메인 정보가 메모리에 굳어버리면 윈도우는 계속 엉뚱한 서버로 접속을 시도하게 되므로, 명령어를 통해 강제적인 DNS 캐시 비우기를 수행해야 합니다.
도메인 주소가 꼬였는데 브라우저 쿠키만 수십 번 삭제하는 행동은 윈도우 커널 계층의 DNS 캐시 장부를 비워주지 못해 문제를 해결하지 못합니다.
관리자 명령 프롬프트에서 ipconfig /flushdns 올바른 실행법
윈도우에서 로컬 DNS 캐시를 일괄 삭제하는 가장 공식적이고 안전한 방법은 시스템 내장 네트워크 도구인 ipconfig 명령어를 활용하는 것입니다.
명령 프롬프트에서 DNS 플러시 실행 순서
- 키보드에서
Win + S를 누르고cmd를 입력합니다. - 검색 결과의 명령 프롬프트를 마우스 우클릭하여 관리자 권한으로 실행을 클릭합니다.
- 콘솔 창에 아래 명령어를 대소문자 구분 없이 입력하고 엔터를 누릅니다.
ipconfig /flushdns - ‘Windows IP 구성: DNS 확인자 캐시를 플러시했습니다’라는 안내 메시지가 나오는지 확인합니다.
- 현재 내 PC에 쌓인 캐시 목록을 확인해보고 싶다면
ipconfig /displaydns를 입력해 볼 수 있습니다.
이 명령어를 입력하는 즉시 윈도우 DNS 클라이언트 캐시 메모리가 깨끗하게 비워지며, 다음 웹 서핑부터는 전 세계 최상위 네임서버로부터 가장 신선한 최신 IP 주소를 받아오게 됩니다.
DNS 캐시 포이즈닝(스푸핑) 해킹 예방과 보안 원리
DNS 플러시는 단순한 접속 오류 해결뿐 아니라 악성코드 감염을 막는 핵심적인 보안 방어선 역할을 합니다. 해커들이 악용하는 대표적인 공격 기법 중 하나인 DNS 캐시 포이즈닝(Cache Poisoning)은 사용자의 로컬 캐시 메모리에 가짜 은행이나 포털 사이트의 사칭 IP를 슬쩍 밀어 넣는 수법입니다.
이 공격에 노출되면 주소창에 정상적인 영문 주소를 정확히 입력하더라도 사기 피싱 웹페이지로 감쪽같이 납치당하게 됩니다. 주기적인 DNS 캐시 포이즈닝 방지 조치로서 캐시를 비워내면, 메모리에 잠복해 있던 악성 조작 레코드가 일거에 소멸되어 사용자의 금융 및 개인정보를 안전하게 보호할 수 있습니다.
크롬 브라우저 소켓 캐시 비우기 및 DNS 클라이언트 서비스 점검
콘솔에서 ipconfig /flushdns를 실행한 후에도 특정 브라우저에서만 여전히 이전 사이트가 열린다면, 크롬(Chrome)이나 엣지(Edge) 브라우저가 자체적으로 유지하는 소켓 연결 캐시 때문입니다.
크롬 주소창에 chrome://net-internals/#sockets를 입력한 뒤 Flush socket pools 버튼을 클릭하여 열려 있는 모든 HTTP 통신 소켓을 닫아주세요. 아울러 Win + R → services.msc를 실행하여 DNS Client 서비스가 중단되지 않고 ‘실행 중’ 상태로 올바르게 상주하고 있는지도 함께 확인해 주어야 안정적인 캐시 관리가 가능합니다.
캐시 유지 상태와 flushdns 초기화 후의 통신 흐름 비교
| 구분 (동작 상태) | 주소 조회 단계 | 장점 및 기대 효과 | 단점 및 발생 가능한 문제 |
|---|---|---|---|
| DNS 캐시 유지 상태 | 외부 질의 없이 PC 내부 RAM에서 즉시 주소 반환 | 0.001초 이내 초고속 사이트 로딩 | 사이트 서버 이전 시 옛날 IP로 접속 실패 유발 |
| flushdns 초기화 직후 | 통신사 네임서버 및 권한 서버로 외부 질의 수행 | 가장 정확한 최신 서버 IP 주소 갱신 | 첫 방문 시 미세한 DNS 질의 지연(수십 ms) 발생 |
| 악성 캐시 오염 상태 | 변조된 피싱 서버 IP가 로컬 메모리에 고착 | 없음 (심각한 보안 위협 노출) | 정상 사이트 입력 시 가짜 파밍 사이트로 납치 |
핵심 정리
이사 간 단골 식당의 옛날 번호를 수첩에서 지우고 새 번호로 갱신하듯, DNS 캐시 비우기는 로컬 메모리에 머물러 있던 낡고 오염된 IP 변환 기록을 털어내어 인터넷 길을 바로잡는 필수적인 유지보수 작업입니다. 사이트가 리뉴얼된 후 접속이 안 되거나 접속 지연이 발생할 때 관리자 명령 프롬프트에서 ipconfig /flushdns 한 줄을 실행하는 것만으로도 대부분의 도메인 매핑 오류를 손쉽게 해결할 수 있습니다.
브라우저 호스트 캐시까지 함께 초기화하면 한층 더 깔끔한 서핑 환경을 되찾을 수 있습니다. 아래 체크리스트로 DNS 캐시 상태를 점검해 보세요.
재발 방지 체크리스트
재발 방지 체크리스트
- 특정 사이트 접속 오류가 발생할 때 ipconfig /flushdns 명령을 먼저 실행해 보았는가?
- 명령 프롬프트 실행 시 반드시 ‘관리자 권한’으로 창을 열었는가?
- 크롬 브라우저를 함께 사용 중이라면 Clear host cache 기능도 함께 진행했는가?
- 파밍 사이트나 피싱 위협을 예방하기 위해 주기적으로 DNS 캐시를 정돈하고 있는가?









