리눅스에서 DNS 문제를 진단하고 네트워크 트러블 슈팅을 진행할 때 유용하게 사용되는 명령어가 2개 있다.
nslookup 명령어는 DNS 서버에 특정 값을 전송하여 도메인, IP 주소, 기타 정보 등을 확인하는 데 사용된다.
# 명령어 기본 문법 nslookup <옵션> <도메인 or IP 주소># 도메인으로 IP 주소 조회 nslookup example.com![]()
example.com도메인이 1개의 IP 주소를 가지고 있음을 확인할 수 있다.
(도메인에 따라 1개 이상의 IP 주소를 가지는 경우도 있다.)# 도메인으로 IP 주소 조회 (특정 DNS 서버를 사용) # 구글에서 공개한 DNS 서버를 8.8.8.8으로 명시 nslookup example.com 8.8.8.8# IP 주소로 도메인 이름 조회 (역방향 조회) nslookup 93.184.215.14
dig명령어는 최근에 만들어진 명령어로 nslookup 명령어보다 다양한 기능과 결과를 확인할 수 있다.
이러한 이유료 nslookup 명령어 보다 dig명령어를 선호하는 경우가 있다.
# 명령어 기본 문법 dig <옵션> <도메인 or IP 주소># dig 명령어 옵션 +short : 필수 정보만을 표시(축약 표현) +trace : DNS 쿼리의 전체 경로를 추적하여 각 단계와 관련된 서버를 표시 (DNS 트러블 슈팅에 유용하게 사용) -t <레코드 타입> : DNS 레코드 타입을 지정 (MX, NS 등...) -x <IP 주소> : 역방향 조회 수행# 도메인으로 IP 주소 조회 dig example.com
✅ 출력 결과에 대한 각 행의 설명
# dig 명령어의 버전과 실행한 쿼리의 도메인 이름 ; <<>> DiG 9.20.0-2ubuntu3-Ubuntu <<>> example.com # dig 명령어에 설정된 옵션 표시 (+cmd 옵션은 기본으로 설정된 옵션) ;; global options: +cmd # DNS 서버로부터의 응답 ;; Got answer: # DNS 응답 헤더에 대한 정보 (쿼리 종류, 응답 상태, 쿼리 고유 ID) ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43743 # DNS 응답에 대한 플래그 및 섹션 정보 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 # EDNS 관련 정보 표시 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;example.com. IN A # 쿼리에 대한 응답이 포함된 섹션으로 도메인 이름, TTL, 인터넷 클래스, 레코드 타입, IP 주소를 확인할 수 있다. # A : IPv4 # AAAA : IPv6 # MX : 메일 서버 등... ;; ANSWER SECTION: example.com. 0 IN A 93.184.215.14 # 쿼리를 처리한 시간 및 DNS 서버 정보 및 응답 메시지 크기 ;; Query time: 10 msec ;; SERVER: 127.0.0.11#53(127.0.0.11) (UDP) ;; WHEN: Sat Nov 30 17:13:09 KST 2024 ;; MSG SIZE rcvd: 56이 외에도 nslookup 명령어가 사용하는 기능 대부분을 사용할 수 있다.
# 도메인으로 IP 주소 조회 (특정 DNS 서버를 사용) # 구글에서 공개한 DNS 서버를 8.8.8.8으로 명시 dig @8.8.8.8 example.com# IP 주소로 도메인 이름 조회 (역방향 조회) # -x 옵션을 사용 dig -x 93.184.215.14