DNS

VPN에서 내부 이름이 확인되지 않습니다

macOS는 한 도메인의 쿼리를 한 DNS 서버로 보내고 다른 쿼리는 다른 서버로 보낼 수 있습니다. VPN은 내부 이름에 이 분할 DNS를 사용합니다.

적용 대상: 현재 지원되는 모든 macOS 버전.확인일: 2026년 10월 29일

증상

  • intranet.corp.example 같은 내부 이름은 실패하지만 공개 사이트는 작동합니다.
  • 내부 IP 주소는 작동하지만 이름은 작동하지 않습니다.
  • dig 또는 nslookup은 실패하지만 브라우저는 작동하거나, 그 반대입니다.

가능한 원인

  • VPN이 해당 도메인의 리졸버를 추가하지 않습니다. VPN은 어떤 도메인을 자체 DNS 서버로 보낼지 macOS에 알려야 합니다.
  • macOS 규칙을 건너뛰는 테스트 도구. dig은 앱이 사용하는 도메인별 리졸버가 아닌 /etc/resolv.conf의 서버를 사용합니다.
  • 수동 DNS 서버. Wi-Fi에 직접 설정한 DNS 서버는 내부 이름을 알지 못합니다.
  • 검색 도메인이 없는 짧은 이름. intranet 같은 짧은 이름을 전체 이름으로 만들려면 검색 도메인이 필요합니다.

확인 방법

  1. VPN에 연결합니다. 모든 리졸버를 표시하고 회사 도메인에 대한 domain 줄이 있는 리졸버를 찾습니다.

    scutil --dns
  2. dig이 아닌 macOS 리졸버를 통해 이름을 조회하세요.

    dscacheutil -q host -a name intranet.corp.example
  3. 서비스의 검색 도메인을 표시합니다.

    networksetup -getsearchdomains Wi-Fi

해결 방법

  1. VPN이 사용해야 하는 도메인과 DNS 서버를 관리자에게 문의하세요.

  2. 도메인별 리졸버 폴더가 없으면 만드세요.

    sudo mkdir -p /etc/resolver

    관리자 암호가 필요합니다.

  3. 도메인 이름으로 파일을 만드세요. 서버마다 nameserver 줄을 하나씩 추가하세요.

    sudo nano /etc/resolver/corp.example

    관리자 암호가 필요합니다.

  4. 내부 DNS 서버의 주소를 한 줄에 입력하세요.

    nameserver 10.0.0.53
  5. 파일을 저장하세요. scutil --dns을 실행하고 새 도메인을 찾으세요.

  6. 전체 이름을 사용하거나 시스템 설정 > 네트워크 > 해당 서비스 > 세부사항 > DNS에서 검색 도메인을 추가하세요.

  7. 파일이 더 이상 필요하지 않으면 제거하세요.

    sudo rm /etc/resolver/corp.example

    관리자 암호가 필요합니다.

Kilobat 사용

  1. 비공개 이름의 경우 why는 요청을 보낸 VPN 리졸버와 해당 리졸버의 응답 여부를 알려줍니다.

    kilobat why intranet.corp.example

질문

브라우저는 작동하지만 dig는 실패하는 이유는 무엇인가요?

dig에서 /etc/resolv.conf에 있는 서버에 쿼리합니다. 브라우저는 macOS 리졸버를 사용하며, 이 리졸버도 도메인별 리졸버를 사용합니다.

/etc/resolv.conf를 편집해도 되나요?

아니요. resolver 매뉴얼 페이지에 따르면 macOS가 이 파일을 자동으로 관리합니다. 네트워크 설정 또는 /etc/resolver를 사용하세요.

출처

2026년 10월 29일 확인했습니다.