티스토리 뷰

카테고리 없음

Windows PC에서 서버 이전 후에도 이전 IP로 접속될 때 DNS 캐시 확인

생각방 2026. 10. 27. 07:18

목차


    기업에서 사용하던 업무 시스템을 새로운 서버로 이전한 후 DNS 레코드까지 변경했는데, 특정 Windows PC에서만 이전 서버로 접속되는 경우가 있습니다.


    PC의 DNS캐시에 남은 기존주소와 신규 주소

    다른 PC에서는 신규 서버로 정상 접속되고 있어도 해당 PC에서는 이전 화면이 나타나거나 연결 오류가 발생할 수 있습니다. 예를 들어 신규 서비스 구축 후 시연을 진행할 때 기존 캐시를 따른다면 난감한 상황이 생기기 마련입니다. 이때 DNS 변경이 적용되지 않았다고 판단해 서버 설정부터 다시 확인하기 쉽습니다.


    하지만 원인을 찾기 전에 먼저 확인해야 할 것은 문제가 발생한 PC가 해당 도메인 이름을 어떤 IP 주소로 해석하고, 어떤 DNS를 바라보고 있는지입니다.


    이 글에서는 portal.example.com이라는 가상의 업무 시스템을 새 서버로 이전한 상황을 기준으로 Windows DNS 캐시를 확인하고, DNS 서버 응답과 비교해 원인을 구분하는 방법을 살펴보겠습니다.

    Windows DNS 캐시에 이전 IP 주소가 남는 이유

    Windows에서는 사용자가 도메인 이름으로 서버에 접속할 때 DNS를 통해 해당 이름에 대응하는 IP 주소를 확인합니다. 이 과정에서 이전에 조회한 DNS 응답은 로컬 DNS 클라이언트 캐시에 저장될 수 있습니다.


    DNS 캐시는 반복적인 이름 조회를 줄이는 역할을 합니다. 저장된 DNS 레코드는 TTL(Time to Live)이라는 유효 시간의 영향을 받으며, 유효한 캐시가 있으면 Windows가 DNS 서버에 다시 질의하지 않고 저장된 결과를 사용할 수 있습니다.


    예를 들어 서버 이전으로 portal.example.com의 A 레코드가 신규 IP로 변경되었더라도, 해당 PC에 이전 IP의 유효한 캐시가 남아 있다면 일정 기간 이전 주소가 사용될 가능성이 있습니다. Microsoft의 DNS 쿼리 및 조회 문서에서도 DNS 클라이언트가 로컬 캐시를 우선 활용하는 동작을 설명합니다.

    다만 Windows의 DNS 캐시에는 과거 DNS 응답뿐 아니라 로컬 hosts 파일에서 가져온 이름과 주소의 매핑도 포함될 수 있습니다. 따라서 캐시에서 이전 IP를 발견했다는 사실만으로 TTL이 남아 있기 때문이라고 단정해서는 안 됩니다.


    요약: 이전 IP가 보인다면 DNS 서버 설정을 변경하기 전에 해당 PC의 DNS 캐시와 로컬 이름 해석 설정을 구분해야 합니다.

    문제가 발생한 Windows PC에서 확인하는 순서

    문제를 조사할 때는 바로 캐시를 삭제하기보다 현재 상태를 먼저 기록하는 것이 좋습니다. 캐시를 삭제한 뒤에는 기존에 어떤 값이 저장되어 있었는지 다시 확인하기 어려울 수 있기 때문입니다.


    1. PC가 사용하는 DNS 서버 확인

    명령 프롬프트에서 다음 명령을 실행합니다.

    ipconfig /all

    출력 결과에서 현재 사용 중인 네트워크 어댑터의 DNS 서버 주소를 확인합니다. 유선 LAN과 무선 LAN, VPN이 함께 구성된 PC라면 실제 업무 연결에 사용되는 어댑터를 구분해야 합니다.

    여기서 확인한 DNS 서버는 이후 조회 결과를 비교할 기준이 됩니다.


    2. Windows DNS 캐시에 저장된 주소 확인

    다음 명령어로 DNS 캐시의 내용을 확인합니다.

    ipconfig /displaydns

    출력에서 문제가 되는 도메인 이름을 찾아 A 레코드와 IP 주소, 남은 TTL 등을 확인합니다. 캐시 항목이 많다면 PowerShell에서 특정 도메인만 조회할 수도 있습니다.

    Resolve-DnsName -Name portal.example.com -Type A -CacheOnly

    -CacheOnly 옵션은 로컬 캐시만 사용해 이름을 조회하도록 지정합니다. 결과가 없다고 해서 DNS 서버에 레코드가 없다는 뜻은 아니며, 해당 이름의 캐시가 현재 없을 수도 있습니다.

    두 명령어의 기능은 Microsoft의 ipconfig 및 Resolve-DnsName 문서에서 확인할 수 있습니다.


    3. DNS 서버가 응답하는 IP 주소 확인

    이번에는 다음 명령어를 실행합니다.

    nslookup portal.example.com

    nslookup은 Windows DNS 클라이언트의 로컬 캐시를 사용하지 않고 DNS 서버에 질의합니다. 따라서 PC의 캐시 내용과 DNS 서버가 반환하는 주소를 비교할 때 유용합니다.

    조회 결과에 표시된 DNS 서버가 실제로 확인하려는 서버인지도 함께 살펴봐야 합니다. Microsoft의 DNS 클라이언트 문제 해결 문서도 이 조회 방식의 차이를 안내합니다.


    4. 로컬 hosts 파일의 주소 매핑 확인

    캐시와 DNS 서버 응답이 다르거나, 캐시를 초기화한 뒤에도 이전 IP가 계속 나타난다면 Windows의 hosts 파일을 확인합니다.


    파일 위치는 C:\Windows\System32\drivers\etc\hosts입니다.


    이 파일에 도메인 이름과 이전 IP 주소가 직접 지정되어 있으면 DNS 서버의 응답과 다른 이름 해석 결과가 나타날 수 있습니다. Microsoft의 Windows DNS 클라이언트 이름 확인 문제 해결 문서에서도 이러한 상황을 별도로 설명합니다.

    설정이 확인되더라도 해당 항목이 업무 목적으로 등록된 것인지 확인한 후 변경해야 합니다.

    요약: ipconfig /displaydns로 로컬 정보를 확인하고 nslookup으로 DNS 서버의 응답을 비교하면 문제 범위를 좁힐 수 있습니다.

    로컬 DNS 캐시 조회와 DNS 서버 조회

    조회 결과에 따라 캐시 삭제 여부 판단하기

    DNS 캐시 문제인지 판단할 때 중요한 것은 단일 명령어의 결과가 아니라 서로 다른 조회 결과의 차이입니다.


    확인 결과 가능한 원인 다음 확인
    로컬 캐시는 이전 IP, DNS 서버 응답은 신규 IP PC의 DNS 캐시 또는 hosts 파일 영향 hosts 파일을 확인한 뒤 캐시 초기화
    로컬 캐시와 DNS 서버 응답이 모두 이전 IP DNS 서버가 이전 주소를 반환하는 상태 해당 DNS 서버의 레코드와 캐시 확인
    DNS 조회 결과는 신규 IP인데 애플리케이션은 이전 서버에 접속 Windows DNS 캐시 외의 요인 가능 애플리케이션의 이름 해석 방식과 기존 연결·프록시 설정 확인

    첫 번째 상황에서는 다음 명령어로 Windows DNS 클라이언트 캐시를 초기화할 수 있습니다.

    ipconfig /flushdns

    이 명령어는 Windows DNS 클라이언트 캐시를 비우고 다시 구성하도록 합니다. 캐시를 삭제한 뒤 도메인을 다시 조회해 신규 IP가 반환되는지 확인해야 합니다.

    다만 캐시 초기화는 DNS 서버의 레코드를 수정하는 작업이 아닙니다. DNS 서버가 여전히 이전 IP를 반환한다면 캐시를 삭제해도 동일한 주소를 다시 받을 수 있습니다.

    또한 hosts 파일에 이전 주소가 등록되어 있다면 단순한 캐시 초기화만으로 문제가 해결되지 않을 수 있습니다. 따라서 DNS 서버 응답과 로컬 설정을 확인한 후 필요한 조치만 선택하는 것이 적절합니다.

    요약: 로컬 캐시와 DNS 서버 응답이 다를 때 캐시 초기화를 검토하고, 둘 다 이전 IP라면 DNS 서버 측 확인이 우선입니다.

    DNS캐시 초기화

    자주 묻는 질문

    Q1. nslookup에서는 신규 IP가 나오는데 브라우저에서는 이전 서버가 보이는 이유는 무엇인가요?

    nslookup의 결과가 정상이라고 해서 브라우저의 실제 연결까지 동일하다는 뜻은 아닙니다. Windows DNS 캐시와 hosts 파일을 확인하고, 문제가 계속되면 브라우저 또는 애플리케이션의 별도 이름 해석 방식과 프록시, 기존 연결 여부를 살펴봐야 합니다.

    Q2. ipconfig /flushdns를 실행하면 모든 DNS 문제가 해결되나요?

    그렇지 않습니다. 이 명령어는 Windows DNS 클라이언트 캐시를 초기화할 뿐, DNS 서버의 레코드나 로컬 hosts 파일의 설정을 수정하지 않습니다. 원인이 다른 곳에 있다면 해당 설정을 별도로 확인해야 합니다.

    Q3. DNS 캐시 확인을 위해 Windows PC를 재부팅해야 하나요?

    일반적인 캐시 확인과 초기화를 위해 PC를 먼저 재부팅할 필요는 없습니다. ipconfig /displaydns로 현재 상태를 확인하고 필요한 경우 ipconfig /flushdns를 실행할 수 있습니다. 재부팅 여부보다 초기화 전후 이름 해석 결과를 비교하는 것이 문제 원인을 파악하는 데 도움이 됩니다.

    결론

    서버 이전 후 특정 Windows PC에서 이전 IP 주소가 계속 사용된다면, DNS 변경 작업 자체에 문제가 있다고 판단하기 전에 해당 PC의 이름 해석 결과부터 확인해야 합니다.


    점검의 핵심은 로컬 DNS 캐시의 주소와 DNS 서버가 반환하는 주소를 비교하는 것입니다. 두 결과가 다르면 PC의 캐시나 hosts 파일을 확인하고, 두 결과가 모두 이전 IP라면 DNS 서버의 레코드 또는 캐시 상태를 확인해야 합니다.


    실무에서는 문제가 발생한 PC의 도메인 이름, 캐시 조회 결과, 질의한 DNS 서버, 서버 응답 주소, 캐시 초기화 전후 결과를 기록해 두는 것이 좋습니다. 이 기록이 있으면 단순히 접속이 안 된다는 증상보다 명확하게 원인을 구분하고 후속 조치를 결정할 수 있습니다.

    참고자료