DevOps/Linux

nslookup, ss - 네트워크 진단 명령어

okbear3 2025. 4. 12. 18:31

리눅스 환경에서 네트워크 관련 문제를 진단하고 해결하기 위해 주로 사용하는 명령어를 소개합니다.

  • nslookup - DNS 정보를 상세하게 확인할 때 사용되며, 도메인 이름과 IP 주소간의 변환, DNS 레코드 등을 확인
  • ss - netstat과 유사한 기능을 수행하면서도, 더욱 빠른 속도와 세부적인 소켓 상태를 제공하는 최신 유틸리티

 

nslookup - DNS 질의 도구

nslookup (Name Server Lookup) 는 도메인 이름을 IP 주소로, 또는 그 반대로 변환할 때 사용되는 도구입니다.
DNS 서버와 직접 통신하여 질의(query)를 수행함으로써 DNS 관련 문제의 원인을 분석할 수 있습니다.

 

nslookup [옵션] [도메인명]

#특정 도메인에 대한 기본 IP 확인
nslookup google.com 

#특정 DNS 서버 지정
nslookup google.com 8.8.8.8

#레코드 타입 지정
nslookup -query=MX example.com

 

ss (socket statistics) - 소켓 상태를 출력

ss는 소켓 상태를 출력해주는 명령으로 netstat 명령과 유사하다. 다른 도구에 비해 TCP 및 상태 정보에 대한 많은 정보를 제공한다.

 

ss [옵션] [필터]

 

주로 사용하는 옵션

옵션 설명
-a / --all 소켓의 모든 정보 출력
-n / --numeric 서비스명으로 리졸빙(resolving)하지 않고, 숫자값으로 출력
-r / --resolve 숫자값 형태의 주소나 포트 정보를 호스트명이나 서비스명으로 리졸빙해서 출력
-l / --listening 서비스 연결을 위해 대기중인 소켓 정보 출력
-o / --options 시간(timer) 관련 정보 출력
-e / --extend 소켓 정보를 확장해서 자세하게 출력
-p / --processes 소켓을 사용중인 프로세스 정보를 출력
-i / --info 시스템 내부의 TCP 정보를 출력
-s / --summary 소켓 관련 상태 정보를 요약해서 출력
-4 / --ipv4 ipv4 관련 정보 출력
-6 / --ipv6 ipv6 관련 정보 출력
-0 / --packet packet 관련 소켓 정보 출력
-t / --tcp tcp 관련 소켓 정보 출력
-u / --udp udp 관련 소켓 정보 출력
-f / --family 소켓의 특정 타입을 지정해서 출력. 지원되는 패밀리명에는 unit, inet, inet6, link, netlink가 있다.

 

사용 예시

ss #소켓에 연결된(ESTABLISH)정보만 출력한다.
ss -l #모든 리스닝 소켓 확인(TCP/UDP)
ss -tln #TCP 리스닝 소켓 확인
ss -tnp #소켓(TCP)에 연결된 프로세스 정보 확인
ss -s #전체 소켓 통계 (소켓 개수, 연결 상태 분류, 프로토콜 별 통계)
ss -i #상세한 내부 정보 출력(재전송 큐, 수신/전송 버퍼 상태), 네트워크 문제진단 시 사용

ss -tuln | grep '8080' #특정 포트를 사용하는 소켓 확인
ss- n | grep '192.168.10.22 #특정 IP와 연결된 상태 확인
ss -tn state established '( dport = :443 or sport = :443 )' #소켓의 출발지/목적지가 443인 연결 필터링
ss state established '( dport = :ssh or sport = :ssh)' -t #TCP 기반의 ssh 포트를 사용하는 소켓 정보 출력