우분투 ping·ifconfig·nslookup 사용법: 설치 방법, 주요 옵션, ip 명령 대체까지

우분투에서 ping, ifconfig, nslookup이 “command not found”로 나오면 각각 iputils-ping, net-tools, dnsutils 패키지를 설치하면 된다. 다만 ifconfig는 오래된 net-tools에 속하는 도구라서 요즘은 같은 정보를 ip addr로 확인하는 것이 일반적이고, ifconfig의 man 페이지도 링크 계층 정보는 iproute2의 ip link를 쓰라고 안내한다.4 이 글은 세 명령의 용도, 설치법, 자주 쓰는 옵션과 출력 읽는 법, 그리고 대체 명령을 정리한다.

세 명령은 각각 무엇을 확인하나?

명령 용도 설치 패키지
ping 대상 IP·도메인까지 통신이 되는지, 응답 시간은 얼마인지 iputils-ping
ifconfig 내 서버의 네트워크 인터페이스(NIC)와 IP 설정 net-tools
nslookup 도메인에 매핑된 IP(DNS 응답) 조회 dnsutils

우분투는 데비안 계열이라 패키지 관리자로 apt를 쓴다. CentOS 계열은 yum(또는 dnf)을 쓴다.

설치 전에 무엇부터 해야 하나?

패키지 목록을 먼저 갱신한다. 이 명령은 프로그램을 업그레이드하는 것이 아니라 설치 가능한 패키지 정보를 새로 받는다.

sudo apt update
우분투 터미널에서 sudo apt update를 실행한 화면
apt update 실행 화면

ping은 어떻게 설치하고 읽나?

설치 전에 실행하면 아래처럼 명령을 찾을 수 없다는 메시지가 나온다.

ping 명령을 실행했을 때 명령어를 찾을 수 없다고 나오는 화면
ping 미설치 상태
sudo apt install iputils-ping
ping -c 4 example.com
apt install iputils-ping 설치 진행 화면
iputils-ping 설치

ping은 ICMP ECHO_REQUEST를 보내고 상대가 ECHO_REPLY로 답하는 방식이다.2 옵션은 다음을 자주 쓴다.2

옵션 의미
-c N N번만 보내고 종료
-i 초 패킷 간격(기본 1초)
-s 바이트 데이터 크기(기본 56바이트)
-W 초 응답 대기 시간
-w 초 지정 시간이 지나면 종료

출력 예시는 다음과 같다(값은 예시).

64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=12.4 ms
...
4 packets transmitted, 4 received, 0% packet loss
rtt min/avg/max/mdev = 11.9/12.5/13.2/0.5 ms

time은 왕복 시간이고, packet loss는 응답을 받지 못한 비율이다. mdev가 클수록 지연이 들쭉날쭉하다는 뜻이다.2 응답이 하나도 없으면 종료 코드가 1이므로 스크립트에서 연결 여부 판단에도 쓸 수 있다.2 단, 일부 서버와 방화벽은 ICMP를 막아 두므로 ping이 실패해도 서비스가 죽었다고 단정할 수는 없다.

ping 명령으로 통신을 확인한 실행 결과 화면
ping 실행 결과

ifconfig는 어떻게 설치하고, 왜 ip 명령을 권하나?

sudo apt install net-tools
ifconfig
ifconfig -a

-a는 내려가 있는(down) 인터페이스까지 모두 보여 준다.4 출력에서 실제 NIC(예: enp1s0)와 도커가 만든 가상 NIC(docker0, veth 등)를 구분해서 보면 된다.

apt install net-tools로 ifconfig를 설치하는 화면
net-tools 설치
ifconfig 실행 결과에서 실제 NIC와 도커 가상 NIC가 함께 보이는 화면
ifconfig 실행 결과

ifconfig는 패키지를 따로 설치해야 하고, 최신 기능은 iproute2의 ip 명령에 집중돼 있다. 대체 명령은 다음과 같다.1

하려는 일 ifconfig ip 명령
IP·인터페이스 확인 ifconfig ip addr 또는 ip -br addr
링크 상태 확인 ifconfig -a ip link
인터페이스 켜기/끄기 ifconfig eth0 up/down ip link set eth0 up/down
라우팅 테이블 route(net-tools) ip route

-br 옵션은 ip addr show, ip link show 등에서 쓸 수 있는 요약 출력이다.1 인터페이스 이름은 서버마다 다르므로 eth0 대신 실제 이름으로 바꿔서 쓴다.

nslookup은 어떻게 설치하고 쓰나?

sudo apt install dnsutils
nslookup example.com
nslookup example.com 8.8.8.8

첫 번째 인자는 조회할 이름, 선택 인자인 두 번째는 질의할 DNS 서버다. 인자 없이 실행하면 대화형 모드로 들어가고 exit로 나온다. 질의 실패가 있으면 종료 코드 1을 돌려준다.3 도메인 설정이 반영됐는지, 어느 DNS 서버가 어떤 IP로 답하는지 확인할 때 쓴다. 특정 DNS 서버를 지정해 비교하면 내 서버의 DNS 설정 문제인지 도메인 자체 문제인지 구분하기 쉽다.

apt install dnsutils로 nslookup을 설치하는 화면
dnsutils 설치
nslookup으로 도메인에 매핑된 IP를 조회한 결과 화면
nslookup 실행 결과

더 자세한 조회가 필요하면 dig가 있다. dig example.com +short처럼 간단한 응답만 볼 수 있고, @서버로 질의 서버를 지정하며, MX 같은 레코드 유형도 지정할 수 있다. 우분투에서 dig는 bind9-dnsutils 패키지가 제공한다.5

연결이 안 될 때 어떤 순서로 점검하나?

  1. ip -br addr로 IP가 할당돼 있는지 확인한다.
  2. ping -c 3 게이트웨이IP로 내부망 연결을 본다. 게이트웨이는 ip route에서 default 항목에 나온다.
  3. ping -c 3 8.8.8.8로 외부 IP 연결을 본다.
  4. nslookup example.com으로 이름 풀이가 되는지 본다. 3번은 되고 4번만 안 되면 DNS 문제일 가능성이 높다.

참고 자료

  1. Ubuntu Manpages, ip(8)
  2. Ubuntu Manpages, ping(8)
  3. Ubuntu Manpages, nslookup(1)
  4. Ubuntu Manpages, ifconfig(8)
  5. Ubuntu Manpages, dig(1)