Windows 11·10 DNS 캐시 플러시 방법 (ipconfig /flushdns)
Windows 10이나 Windows 11에서 DNS를 플러시하려면 명령 프롬프트나 터미널을 열고 ipconfig /flushdns를 실행하면 됩니다. PowerShell에서는 Clear-DnsClientCache가 같은 일을 하며, Microsoft의 cmdlet 문서에도 이를 실행하는 것이 ipconfig /flushdns를 실행하는 것과 같다고 나와 있습니다.
플러시가 비우는 건 한 층, 즉 Windows DNS 클라이언트 캐시뿐입니다. 공유기, DNS 제공업체, 브라우저 자체 DNS 캐시, 네트워크 어댑터에는 아무 영향이 없으니, 고칠 수 있는 건 오래된 이름 조회 정도입니다. 이 글에서는 언제 그 층이 실제 원인인지, 안을 어떻게 들여다보는지, 흔히 함께 쓰는 더 무거운 초기화 명령과 각각이 무엇을 바꾸는지를 다룹니다.
DNS 클라이언트 캐시에 들어 있는 것
앱이 example.com에 연결하기 전에 Windows는 그 이름을 IP 주소로 바꿔야 합니다. DNS Client 서비스는 이미 받은 응답을 보관해 두어서, 같은 이름을 다시 조회할 때마다 네트워크로 나가지 않게 합니다. Microsoft의 ipconfig 문서에 따르면 이 캐시에는 로컬 Hosts 파일에서 미리 불러온 항목과 이 컴퓨터가 최근에 확인한 이름의 레코드가 모두 들어 있고, 서비스는 "구성된 DNS 서버에 쿼리하기 전에" 이를 사용합니다.
각 레코드는 해당 도메인의 DNS 서버가 붙인 TTL(유효 시간) 동안 유지되고, 지나면 다시 가져옵니다. 실패도 캐시됩니다. 같은 문서는 /flushdns가 "부정 캐시 항목을 삭제"할 수 있다고 하는데, 이름이 존재하지 않는다는 응답을 말합니다. 한 번 실패한 사이트가 다른 기기에서는 잘 열리는데 PC 한 대에서만 계속 안 열리는 이유가 이것입니다.
아무것도 바꾸지 않고 캐시 내용을 보려면:
ipconfig /displaydns
PowerShell에서 이름 하나로 좁히려면:
Get-DnsClientCache -Entry example.com
Get-DnsClientCache는 레코드 유형, 상태(Success, NotExist, NoRecords), TTL로 필터링할 수 있어 긴 ipconfig 목록보다 읽기 쉽습니다. 정상이어야 할 이름에 NotExist가 보이면 캐시된 실패입니다.
DNS 플러시가 도움이 되는 경우
| 상황 | 플러시가 필요한 이유 |
|---|---|
| 사이트나 서버가 새 주소로 옮겼는데 이 PC는 여전히 예전 주소로 접속한다 | 예전 레코드가 아직 로컬 캐시에서 만료되지 않았다 |
| 설정에서 DNS 서버를 바꿨다 | 이전 서버가 준 응답이 아직 캐시에 남아 있다 |
| hosts 파일을 고쳤는데 변경이 무시되는 것 같다 | 캐시에 hosts 파일에서 미리 불러온 항목과 그 이름의 이전 응답이 들어 있다 |
| VPN이나 프록시를 켜거나 껐는데 일부 이름이 여전히 반대쪽으로 확인된다 | 다른 경로로 가져온 레코드가 아직 캐시에 남아 있다 |
| 로컬 개발용 도메인이 새 곳을 가리키게 바꿨다 | 캐시된 응답이나 캐시된 "존재하지 않음"이 재사용되고 있다 |
| 어떤 이름이 여기서는 안 되는데 같은 네트워크의 휴대폰에서는 된다 | 실패한 조회가 부정 항목으로 캐시됐을 수 있다 |
어느 경우든 해결 방법은 같습니다. 플러시한 다음 Windows가 지금 무엇으로 확인하는지 살펴보고(아래 확인 섹션 참고) 앱에서 다시 시도합니다. 브라우저는 탭만 새로 고치지 말고 완전히 종료했다가 다시 여세요. 이유는 다음 섹션에 있습니다.
DNS 플러시로 해결되지 않는 경우
이름에 응답하는 곳은 여러 군데이고 Windows 캐시는 그중 하나일 뿐이며, 플러시가 건드리는 것도 그곳뿐입니다.
- 인터넷 제공업체나 사이트 자체가 다운됐다. 모든 사이트가 안 되거나 같은 네트워크의 다른 기기도 안 된다면 문제는 상위에 있습니다. 플러시해도 달라지는 게 없습니다.
- 공유기나 DNS 제공업체가 예전 레코드를 갖고 있다. 이들도 응답을 캐시합니다. 로컬 플러시로는 그쪽이 새 레코드를 더 빨리 가져오게 할 수 없고, 그쪽 사본이 만료될 때까지 기다려야 합니다.
- 브라우저가 직접 이름을 확인한다. Chrome 도움말 페이지에 따르면 보안 DNS는 기본적으로 자동 모드로 켜져 있고, Chromium 기반 브라우저는 자체 호스트 확인 캐시를 둡니다. Chromium의 net-internals 페이지에는 "Host resolver cache" 아래에 "Clear host cache" 버튼이 있습니다(소스). Chrome에서는
chrome://net-internals/#dns, Edge에서는edge://net-internals/#dns를 열고 클릭하세요. 같은 페이지의 Sockets 섹션에는 "Flush socket pools"도 있는데, Chromium은 여기에 "May break pages with active connections"라고 표시해 두었으니 쓰려면 중요한 탭부터 닫으세요. - DNS 서버 설정 자체가 잘못됐다. Windows가 틀린 응답을 주거나 아예 응답하지 않는 서버를 가리키고 있다면, 플러시는 같은 서버에 다시 묻는 것뿐입니다. 설정 › 네트워크 및 인터넷 › Wi-Fi › 알려진 네트워크 관리(또는 이더넷)에서 네트워크를 선택한 뒤 IP 할당 옆의 편집에서 확인하세요. Microsoft의 네트워크 설정 페이지는 자동(DHCP)이 공유기나 액세스 포인트에서 DNS 서버 주소를 받아 온다고 설명하며 이를 권장합니다. VPN을 쓰는 회사 PC라면 여기를 바꿨을 때 내부 이름이 깨질 수 있으니, 먼저 PC 관리자에게 물어보세요.
- 페이지가 안 열리는 게 아니라 느리기만 하다. 조회 결과를 캐시하는 건 바로 재사용이 빠르기 때문입니다. 다운로드가 느리거나 동영상이 끊기는 건 DNS 문제인 경우가 드물고, 캐시를 비우면 다음 몇 번의 조회는 빨라지기는커녕 조금 느려집니다.
캐시를 플러시하고 확인하는 명령
명령 프롬프트나 터미널에서:
ipconfig /flushdns
ipconfig /displaydns
PowerShell에서:
Clear-DnsClientCache
Get-DnsClientCache
Microsoft의 두 문서 모두 이 명령에 관리자 권한이 필요하다고 적혀 있지 않으며, Mole for Windows도 권한 상승 없는 일반 프로세스에서 같은 플러시를 실행합니다. 관리되는 PC에서 액세스 오류가 나오면 터미널이나 명령 프롬프트를 관리자 권한으로 실행해 거기서 명령을 실행하세요. 플러시는 디스크에서 아무것도 지우지 않고 재시작도 필요 없습니다. 앱이 다시 이름을 조회하면서 캐시는 다시 채워집니다.
속도를 높이겠다고 플러시를 예약하거나 시작 스크립트에 넣지는 마세요. 채워진 캐시가 빠른 길이고, 플러시는 특정 레코드가 틀렸을 때만 도움이 됩니다.
캐시를 탓하기 전에 hosts 파일 확인하기
hosts 파일에 적힌 이름은 DNS보다 우선합니다. Microsoft의 hosts 초기화 문서는 그 폴더를 %WinDir%\System32\Drivers\Etc, 보통은 C:\Windows\System32\drivers\etc로 안내합니다. 파일 이름은 확장자 없는 hosts입니다. 같은 문서에 따르면 기본 파일에는 #로 시작하는 주석 줄과 localhost의 루프백 매핑만 들어 있습니다.
개발 도구, 광고 차단기, 오래된 튜토리얼이 가끔 여기에 줄을 추가하고 그대로 두고 갑니다. 문제가 있는 도메인이 이 파일에 있다면 그렇게 확인되는 이유가 그 줄입니다. 바꾸려면 먼저 사본을 남기고(Microsoft 문서에서는 기존 파일 이름을 Hosts.old로 바꿉니다), 관리자 권한으로 실행한 편집기에서 필요한 줄만 고친 다음 .txt 확장자가 붙지 않게 저장하고, ipconfig /flushdns를 실행해 캐시에 남은 예전 미리 불러온 항목을 지우세요. 파일을 삭제하거나 권한을 바꾸지는 마세요.
더 무거운 초기화와 각각이 바꾸는 것
Microsoft의 Wi-Fi 문제 해결 문서는 다음 명령을 함께 나열하고, 관리자 명령 프롬프트에서 이 순서대로 실행하라고 안내합니다:
netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns
하는 일은 서로 크게 다르고, DNS와 관련된 건 마지막 하나뿐입니다:
ipconfig /release는 DHCP 해제를 보내며, ipconfig 문서에 따르면 주소를 자동으로 받도록 설정된 어댑터의 TCP/IP를 비활성화합니다./renew로 새 주소를 받을 때까지 오프라인 상태가 되니, 원격 데스크톱 세션에서 이것만 단독으로 실행하지 마세요.ipconfig /renew는 DHCP에 새 구성을 요청합니다. 주소를 자동으로 받도록 설정된 어댑터에서만 쓸 수 있습니다.netsh winsock reset은 Winsock 카탈로그를 깨끗한 상태로 되돌리고 사용자 지정 계층화 서비스 공급자(LSP)를 제거합니다(netsh winsock). 일부 VPN 클라이언트와 보안 도구가 이런 공급자를 설치하므로 실행 후 해당 앱을 확인하세요.netsh int ip reset은 레지스트리의 TCP/IP와 DHCP 매개변수 키를 덮어쓰며, Microsoft의 TCP/IP 초기화 문서에 따르면 TCP/IP를 제거했다가 다시 설치하는 것과 같은 효과입니다. 관리자 권한과 재시작이 필요하고, 문서의 예시 로그를 보면 고정 IP 주소, 게이트웨이, DNS 서버가 초기화됩니다. 이 중 하나라도 직접 설정했다면 먼저 적어 두세요.- 네트워크 초기화(설정 › 네트워크 및 인터넷 › 고급 네트워크 설정 › 네트워크 초기화)는 모든 네트워크 어댑터와 그 설정을 제거한 뒤, PC가 다시 시작되면 기본값으로 다시 설치합니다. Microsoft의 Wi-Fi 문서는 VPN 클라이언트 소프트웨어나 Hyper-V 가상 스위치를 다시 설치하고 설정해야 할 수 있고, 알려진 네트워크가 공용 네트워크 프로필로 설정될 수 있다고 경고합니다.
증상이 이름 하나가 예전 주소로 확인되거나 확인되지 않는 것뿐이라면 이 중 어느 것도 필요 없습니다. 플러시와 DNS 서버, hosts 파일 확인으로도 설명되지 않을 때, 연결이 전반적으로 망가진 경우를 위한 단계로 생각하세요.
해결됐는지 확인하기
- 캐시에만 물어서 Windows가 그 이름에 대해 무엇을 갖고 있는지 봅니다:
powershell
Resolve-DnsName example.com -CacheOnly
Resolve-DnsName에 -CacheOnly를 붙이면 "로컬 캐시만 사용해 이 쿼리를 확인"합니다. 플러시 직후에 한 번, 앱에서 다시 시도한 뒤에 한 번 더 실행하면 어떤 응답이 캐시됐는지 알 수 있습니다.
- 평소대로 한 번, hosts 파일을 건너뛰고 한 번 더 확인해서 비교합니다:
powershell
Resolve-DnsName example.com
Resolve-DnsName example.com -NoHostsFile
두 응답이 다르면 hosts 파일의 한 줄이 원인입니다.
- DNS 서버에 직접 묻습니다. nslookup 문서에 따르면 두 번째 인수가 쿼리할 서버이고, 생략하면 nslookup은 기본 DNS 이름 서버를 사용합니다.
cmd
nslookup example.com
nslookup example.com 1.1.1.1
설정된 서버는 예전 주소를, 다른 서버는 새 주소를 돌려준다면 예전 레코드가 아직 상위에 캐시돼 있는 것이니 기다리면 해결됩니다. 둘 다 예전 주소를 돌려준다면 레코드가 아직 바뀌지 않은 것입니다.
- 문제가 있던 브라우저나 앱을 종료했다가 다시 열고, Chrome이나 Edge라면 호스트 캐시도 지웁니다.
Mole이 하는 일
Mole for Windows의 최적화에는 네트워크 및 검색 그룹에 "DNS 캐시 플러시"가 있습니다. Windows의 DnsFlushResolverCache 함수를 호출해 ipconfig /flushdns와 같은 Windows DNS 클라이언트 캐시를 비우며, 관리자 확인 창 없이 실행됩니다. Windows 도움말 페이지에 최적화의 다른 유지 관리 작업과 함께 나와 있고, Windows 최적화가 하는 일에서 각 작업이 어떤 증상에 대응하는지 설명합니다.
Mole의 네트워크 복구는 이게 전부입니다. Winsock이나 TCP/IP를 초기화하지 않고, 주소를 해제하거나 갱신하지 않으며, 네트워크 어댑터를 다시 설치하지 않고, VPN 연결, 고정 주소, hosts 파일, 브라우저 자체 호스트 캐시도 건드리지 않습니다. 그런 작업은 위의 명령을 쓰세요. 이름이 안 열려서가 아니라 브라우저가 느려서 이 글을 찾았다면, 브라우저 저장 공간은 Windows 캐시 가이드에서 다룹니다.
자주 묻는 질문
Windows 11에서 DNS를 플러시하려면 어떻게 하나요?
명령 프롬프트나 터미널에서 ipconfig /flushdns를, 또는 PowerShell에서 Clear-DnsClientCache를 실행하세요. 둘 다 바로 적용되고 재시작이 필요 없습니다.
DNS를 플러시하면 Chrome이나 Edge의 DNS 캐시도 지워지나요?
아니요. chrome://net-internals/#dns나 edge://net-internals/#dns를 열고 "Clear host cache"를 클릭한 다음 브라우저를 다시 여세요.
DNS 캐시를 플러시해도 안전한가요?
네. 캐시된 조회 결과만 버리고, Windows는 다음 요청 때 다시 가져옵니다. 흔히 함께 소개되는 netsh int ip reset이나 네트워크 초기화 같은 초기화 명령은 바꾸는 범위가 훨씬 넓어서 고정 설정이나 VPN 어댑터가 사라질 수 있습니다.
플러시했는데도 사이트가 예전 주소로 가는 이유는 무엇인가요?
hosts 파일, 브라우저 자체 캐시, 그리고 설정된 DNS 서버에 nslookup으로 물었을 때 여전히 예전 주소가 나오는지 확인하세요. 서버나 공유기가 아직 예전 레코드를 갖고 있다면, 그 사본이 만료될 때까지는 로컬 플러시로 바꿀 수 없습니다.