nslookup은 DNS 이름 서버에 질의하여 도메인 이름과 IP 주소 간 매핑 정보를 확인하는 명령어입니다. 단순한 조회뿐 아니라 사용할 네임서버를 직접 지정해 응답을 비교함으로써 DNS 문제 원인(로컬 캐시, 리졸버, 권한 네임서버 등)을 좁히는 데 유용합니다.
리눅스 배포판에 따라 nslookup은 기본으로 설치되어 있지 않을 수 있습니다. 이 경우 아래 명령으로 설치해야 합니다.
sudo apt update
sudo apt install dnsutils -y
yum install bind-utils -y
설치가 완료되면 아래 명령으로 정상 설치 여부를 확인할 수 있습니다.
nslookup --version
버전 정보가 출력되면 설치가 완료된 것입니다.
가장 기본적인 형태는 아래와 같습니다.
nslookup example.com
# 또는 특정 네임서버에 질의
nslookup example.com 8.8.8.8
첫 번째 명령은 시스템에 설정된 기본 리졸버(예: /etc/resolv.conf의 nameserver)를 사용해 질의합니다. 두 번째 명령은 구글 퍼블릭 DNS(8.8.8.8)를 직접 지정해 응답을 비교할 때 사용합니다.
nslookup은 대화형 모드와 비대화형 모드를 모두 지원합니다. 유용한 옵션과 예시는 아래와 같습니다.
nslookup -type=A example.com
nslookup -type=MX example.com
nslookup 1.2.3.4
$ nslookup
> server 8.8.4.4
> set type=NS
> example.com
> exit
대화형 모드에서는 set 명령으로 조회 타입을 바꾸고, server 명령으로 질의 대상 네임서버를 지정할 수 있어 다양한 비교가 가능합니다.
DNS 문제를 진단할 때는 아래 순서로 점검하세요.
telnet ns.example.com 53
또는 방화벽 규칙 점검.예: nslookup으로 특정 서버에서 응답이 다를 때는 네임서버별 응답을 캡처해 차이를 분석하면 원인(레플리케이션 지연, TTL 문제, 잘못된 존 파일 등)을 파악할 수 있습니다.
증상: 브라우저에서 도메인 접속 실패, ping도 실패.
# 1) 기본 조회
nslookup yourdomain.example
# 2) 퍼블릭 DNS에 질의
nslookup yourdomain.example 8.8.8.8
# 3) 권한 네임서버 직접 질의
nslookup yourdomain.example ns1.nameserver.com
분석: 세 서버의 결과를 비교해 권한 네임서버가 올바른 레코드를 반환하는지 확인합니다. 권한 네임서버가 올바르면 로컬/리졸버 캐시 문제, 아니라면 존 파일/레코드 설정 문제를 의심합니다.
nslookup -type=MX example.com
# MX 레코드 우선순위와 대상 호스트가 정확한지 확인
nslookup은 리눅스 환경에서 DNS 문제를 빠르게 좁히는 데 유용한 도구입니다. 이 글에서 소개한 기본 명령, 옵션, 점검 순서를 익히면 네트워크·서비스 장애 해결 시간을 단축할 수 있습니다. 실무에서는 권한 서버와 퍼블릭 리졸버 간 응답을 반드시 비교해 원인을 명확히 하세요.