리눅스에서 IP 주소를 확인하려면 먼저 ip -br address를 실행해 보세요. 인터페이스 이름과 주소가 한 줄씩 나옵니다. 기본 게이트웨이는 ip route show, 특정 목적지로 나갈 인터페이스는 ip route get으로 확인할 수 있어요.
ifconfig: command not found가 나와도 IP 주소를 조회하지 못하는 것은 아닙니다. ifconfig는 net-tools 패키지에 포함되어 있고, ip는 별도의 iproute2 도구 모음에 속합니다. 아래 예제는 Rocky Linux 9 계열과 Ubuntu 24.04를 중심으로, 조회부터 임시 변경까지 나눠 설명합니다.
이 글의 목차
자주 쓰는 ip 명령어
처음에는 아래 세 명령으로 주소, 인터페이스 상태, 경로를 확인하면 편해요. 조회 명령은 일반 사용자로 실행할 수 있습니다. -br은 결과를 짧게 보여주는 옵션입니다.
ip -br address
ip -br link
ip route show
| 확인할 내용 | 명령어 |
|---|---|
| 전체 IP 주소 | ip address show |
| ens192의 IPv4 주소 | ip -4 address show dev ens192 |
| 기본 게이트웨이 | ip -4 route show default |
| 특정 목적지의 경로 | ip route get 203.0.113.10 |
| 같은 링크의 IP·MAC 대응 | ip neigh show |
| 수신·송신 통계 | ip -s link show dev ens192 |
명령은 ip [옵션] 대상 동작 형태입니다. address는 IP 주소, link는 네트워크 인터페이스, route는 경로를 다룹니다. dev 뒤에는 대상 인터페이스 이름을 씁니다. ip a, ip addr, ip address처럼 줄여 쓸 수 있지만 아래에서는 의미를 읽기 쉽게 풀어 씁니다. 옵션과 대상 목록은 ip 매뉴얼에서 확인할 수 있습니다.
예제의 ens192는 실제 시스템의 ens160, enp0s3, eth0 등으로 바꿉니다. 먼저 ip -br link에서 이름을 확인하세요. 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24는 RFC 5737의 문서용 주소 대역이므로 실제 장비 설정에는 사용할 네트워크의 값을 넣습니다.
ip와 ifconfig 패키지 설치
명령어 이름과 패키지 이름이 서로 달라 헷갈리기 쉽습니다. ifconfig만 필요해도 설치할 패키지 이름은 net-tools입니다. ip 패키지 이름은 배포판에 따라 다릅니다.
| 계열 | ip 제공 패키지 | ifconfig 제공 패키지 |
|---|---|---|
| Rocky Linux·RHEL | iproute | net-tools |
| Ubuntu·Debian | iproute2 | net-tools |
Rocky Linux·RHEL
두 도구를 모두 설치하는 예제입니다. 이미 ip가 있고 ifconfig만 추가하려면 sudo dnf install net-tools로 설치하면 됩니다. 활성화된 배포판 저장소에 접근할 수 있어야 합니다.
sudo dnf install iproute net-tools
Ubuntu·Debian
패키지 목록을 갱신한 뒤 설치합니다. ifconfig만 필요하면 두 번째 명령에서 iproute2를 빼도 됩니다.
sudo apt update
sudo apt install iproute2 net-tools
설치 후에는 실행 파일과 실제 조회를 확인합니다. root 셸에서는 설치 명령의 sudo를 생략합니다. 패키지 확인 자료는 Debian net-tools 패키지와 Debian iproute2 파일 목록을 참고할 수 있습니다.
command -v ip
command -v ifconfig
ip -V
ifconfig -a
설치했는데 일반 사용자 셸에서만 ifconfig를 찾지 못하면 PATH, 즉 실행 파일 검색 경로를 확인합니다. /usr/sbin이 빠진 환경에서는 /usr/sbin/ifconfig -a로 실행할 수 있습니다. 조회를 위해 무조건 관리자 셸로 전환할 필요는 없습니다.
IP 주소 확인과 출력 읽기
특정 인터페이스의 주소를 자세히 보려면 address show를 사용합니다. -4는 IPv4만, -6은 IPv6만 출력합니다.
ip address show dev ens192
ip -4 address show dev ens192
ip -6 address show dev ens192
예를 들어 아래와 같은 IPv4 주소 줄이 나올 수 있습니다. 설명용 발췌이며 실제 주소는 환경마다 다릅니다.
inet 192.0.2.10/24 scope global ens192
192.0.2.10은 해당 인터페이스의 주소입니다. /24는 네트워크 부분이 24비트라는 CIDR 표기이며, 서브넷 마스크 255.255.255.0에 해당합니다. scope global은 링크 로컬·호스트 범위로 제한된 주소가 아니라는 뜻이며, 이 표시만으로 공인 IP나 인터넷 접속 가능 여부를 판단할 수는 없습니다.
한 인터페이스에 주소가 여러 개 있으면 각각의 inet 또는 inet6 줄을 확인합니다. dynamic이 붙은 주소는 영구 주소와 구분되지만, 그 표시 하나만으로 모든 주소의 설정 출처를 판단하지는 마세요. IPv6의 fe80::로 시작하는 링크 로컬 주소만 있다고 해서 외부 IPv6 통신까지 가능한 것도 아닙니다. 주소 속성은 ip-address 매뉴얼을 기준으로 읽습니다.
인터페이스 상태와 통계 확인
네트워크 인터페이스는 운영체제가 다루는 연결 지점입니다. 물리 NIC뿐 아니라 가상머신의 NIC, 브리지, 컨테이너용 가상 인터페이스도 여기에 포함됩니다. 상태와 MAC 주소는 다음 명령으로 확인합니다.
ip -br link
ip link show dev ens192
물리 이더넷에서는 UP 플래그가 관리상 활성화된 상태를, LOWER_UP이 하위 링크가 올라온 상태를 나타냅니다. state DOWN이거나 NO-CARRIER가 보이면 인터페이스 비활성화 여부, 케이블·스위치 포트, 가상머신 NIC 연결을 확인합니다. 루프백이나 일부 가상 인터페이스의 state UNKNOWN을 곧바로 장애로 판단하지는 않습니다.
수신·송신 카운터까지 보려면 -s를 붙입니다. RX는 수신, TX는 송신이며 errors와 dropped는 각각 오류와 폐기된 패킷을 확인하는 단서입니다.
ip -s link show dev ens192
오류 카운터가 0보다 크다는 이유만으로 현재 장애를 확정하지 않습니다. 같은 명령을 잠시 뒤 다시 실행해 수치가 계속 늘어나는지 비교하고 장비·드라이버 상태를 함께 살펴봅니다. 상태 변경과 통계 옵션은 ip-link 매뉴얼에 설명되어 있습니다.
기본 게이트웨이와 목적지 경로 확인
라우팅 테이블은 목적지별로 패킷을 어느 인터페이스와 다음 장비로 보낼지 정한 목록입니다. 먼저 IPv4 경로와 기본 경로를 확인합니다.
ip route show
ip -4 route show default
기본 경로가 아래처럼 표시되면 다른 구체적인 경로가 없는 목적지는 ens192를 통해 192.0.2.1로 보낸다는 의미입니다.
default via 192.0.2.1 dev ens192
하지만 기본 경로만 보면 특정 목적지에 적용되는 더 구체적인 경로를 놓칠 수 있어요. 실제로 커널이 선택하는 경로는 목적지를 지정해 확인합니다.
ip route get 203.0.113.10
다음은 위 기본 경로가 있는 환경의 출력 예입니다. via는 다음 홉인 게이트웨이, dev는 송신 인터페이스, src는 선택된 출발지 주소입니다. 사용자 ID 같은 부가 정보는 생략했습니다.
203.0.113.10 via 192.0.2.1 dev ens192 src 192.0.2.10
ip route get은 경로를 계산하는 조회입니다. 목적지에 실제 패킷을 보내거나 응답을 확인하지 않으므로, 이 결과만으로 방화벽·서버·외부 통신까지 정상이라고 판단할 수 없습니다. 동작과 출력 항목은 ip-route 매뉴얼을 참고합니다.
정책 라우팅을 사용하는 서버에서는 출발지나 별도 규칙에 따라 경로가 달라집니다. 기본 ip route show는 주 라우팅 테이블을 보므로, 예상과 다르면 규칙과 다른 테이블도 확인합니다. IPv6 경로는 -6으로 별도 조회합니다.
ip rule show
ip route show table all
ip -6 route show
같은 링크의 장치 확인: ip neigh
이웃 테이블은 같은 링크에서 통신할 IP 주소와 MAC 주소 등의 연결 정보를 저장합니다. IPv4에서는 ARP 테이블에 해당하고, IPv6 이웃 정보도 ip neigh로 확인할 수 있습니다.
ip neigh show
ip neigh show dev ens192
| 상태 | 읽는 방법 |
|---|---|
REACHABLE | 최근 도달 가능함을 확인한 이웃 |
STALE | 도달 가능 여부를 다시 확인할 시점인 캐시 항목 |
INCOMPLETE·FAILED | 주소 확인이 진행 중이거나 실패한 상태 |
STALE 자체는 통신 실패를 뜻하지 않습니다. 트래픽이 없으면 테이블이 비어 있을 수도 있어요. 외부 목적지는 보통 목적지 서버의 MAC 대신 같은 링크의 게이트웨이 항목을 확인합니다. 상태의 정확한 정의는 ip-neighbour 매뉴얼에서 확인할 수 있습니다.
IP 주소·경로·링크를 임시로 변경하는 예제
이 절은 네트워크 설정을 실제로 바꿉니다. 아래 명령은 각각 필요한 작업을 고르는 독립적인 예제입니다. 조회와 달리 관리자 권한이 필요하며, SSH로 접속 중인 인터페이스를 끄거나 사용 중인 주소·경로를 지우면 연결이 끊길 수 있습니다. 가상머신 콘솔 등 다른 접속 경로를 확보한 실습 환경에서 실행합니다.
보조 IPv4 주소 추가와 삭제
ens192에 192.0.2.10/24가 있고 같은 대역의 192.0.2.20을 추가하는 예제입니다. 실제 환경에서는 해당 주소가 비어 있는지와 네트워크 사용 계획을 먼저 확인합니다. add는 기존 주소를 교체하지 않고 새 주소를 더합니다.
sudo ip address add 192.0.2.20/24 dev ens192
ip -4 address show dev ens192
실습을 마치면 방금 추가한 주소만 삭제합니다. 주소와 프리픽스 길이, 인터페이스를 추가할 때와 동일하게 지정합니다. ip address flush는 여러 주소를 한꺼번에 지울 수 있으므로 이 작업에 사용하지 않습니다.
sudo ip address del 192.0.2.20/24 dev ens192
ip -4 address show dev ens192
특정 네트워크로 가는 경로 추가와 삭제
ens192가 192.0.2.0/24에 연결되어 있고, 같은 링크의 라우터 192.0.2.1이 198.51.100.0/24로 전달할 수 있다고 가정합니다. 목적지 대역과 게이트웨이는 실제 구성에 맞춰 바꿉니다.
sudo ip route add 198.51.100.0/24 via 192.0.2.1 dev ens192
ip route get 198.51.100.10
조회 결과에서 via 192.0.2.1과 dev ens192를 확인합니다. 이 명령은 내 서버의 경로만 추가하므로 라우터의 전달 설정과 반대편의 되돌아오는 경로까지 구성해 주지는 않습니다. 실습 경로를 제거하려면 같은 조건으로 삭제합니다.
sudo ip route del 198.51.100.0/24 via 192.0.2.1 dev ens192
인터페이스 비활성화와 활성화
실습용 인터페이스를 끄려면 down을 사용합니다. SSH 연결에 사용하는 인터페이스에는 실행하지 않습니다. 아래의 up을 원격에서 다시 입력할 수 있으리라고 가정해서도 안 됩니다.
sudo ip link set dev ens192 down
콘솔에서 다시 활성화한 뒤 상태를 확인합니다. up은 인터페이스를 관리상 활성화하는 동작이며, 그 자체로 DHCP 주소나 DNS 설정을 새로 만들어 주지는 않습니다.
sudo ip link set dev ens192 up
ip -br link show dev ens192
스크립트용 JSON 출력과 변경 감시
자동화에서 화면용 출력의 공백 위치를 잘라 쓰면 주소 개수나 출력 형식에 영향을 받을 수 있습니다. -j로 JSON 구조를 받아 처리할 수 있어요. JSON을 처리하는 별도 도구가 필요하면 해당 도구는 따로 설치합니다.
ip -j address show dev ens192
링크·주소·경로가 바뀌는 순간을 보고 싶을 때는 감시 명령을 실행합니다. 변화가 생길 때까지 아무 내용도 나오지 않을 수 있으며, 종료할 때는 Ctrl+C를 누릅니다.
ip monitor link address route
감시는 ip-monitor 매뉴얼에 설명된 네트워크 상태 변경을 보여줍니다. 패킷의 내용을 캡처하는 기능은 아닙니다.
ip와 ifconfig의 차이점
새로운 Linux 운영 절차를 만들 때는 ip를 기준으로 익혀 두면 주소·링크·경로·이웃 정보를 같은 명령 체계로 다루기 편합니다. 기존 스크립트나 오래된 문서가 ifconfig를 요구할 때는 net-tools를 추가 설치해 함께 사용할 수 있습니다. 패키지 설치만으로 현재 네트워크 설정이 다른 방식으로 전환되는 것은 아닙니다.
| 비교 항목 | ip | ifconfig |
|---|---|---|
| 주요 범위 | 주소·링크·경로·이웃·정책 라우팅 등 | 인터페이스 상태·주소 설정 중심 |
| 주소 표현 | CIDR 프리픽스, 여러 주소 조회 | IPv4는 보통 주소와 netmask 표시 |
| 자동화용 출력 | -j JSON 지원 | net-tools ifconfig에는 같은 JSON 옵션 없음 |
| IPv6 | -6으로 조회·설정 | IPv6 지원. IPv4 전용 명령은 아님 |
ifconfig는 옵션 없이 실행하면 활성 인터페이스를 보여주고, ifconfig -a는 비활성 인터페이스도 포함합니다. 모든 IP 주소를 확인할 때는 ip address show가 편합니다. 아래의 경로·ARP 명령은 ifconfig의 옵션이 아니라 같은 net-tools 패키지의 별도 명령입니다. 동작과 알려진 제약은 ifconfig 매뉴얼에서 확인할 수 있습니다.
| 작업 | net-tools 계열 | ip 대응 명령 |
|---|---|---|
| 인터페이스·주소 조회 | ifconfig -a | ip address show |
| 특정 인터페이스 조회 | ifconfig ens192 | ip address show dev ens192 |
| 인터페이스 활성화 | sudo ifconfig ens192 up | sudo ip link set dev ens192 up |
| 인터페이스 비활성화 | sudo ifconfig ens192 down | sudo ip link set dev ens192 down |
| 인터페이스 통계 | ifconfig ens192 | ip -s link show dev ens192 |
| 라우팅 테이블 | route -n 또는 netstat -rn | ip route show |
| IPv4 ARP 테이블 | arp -n | ip -4 neigh show |
대응표는 같은 작업을 찾기 위한 것으로 출력 형식이 완전히 같다는 뜻은 아닙니다. 특히 인터페이스에 IPv4 주소가 여러 개 있으면 ifconfig 출력만으로 주소 전체를 파악하기 어렵습니다. 그리고 netstat의 연결·포트 조회를 대신할 때는 ip가 아니라 iproute2 도구 모음의 ss를 사용합니다. 대응 관계는 netstat 매뉴얼에서도 안내합니다.
실행 중 자주 만나는 오류
| 오류·상황 | 확인할 항목 |
|---|---|
ip: command not found | iproute 또는 iproute2 설치와 PATH |
ifconfig: command not found | net-tools 설치와 /usr/sbin 검색 경로 |
Cannot find device | ip -br link에 나온 실제 인터페이스 이름 |
RTNETLINK answers: Operation not permitted | 설정 변경 권한. 컨테이너는 root여도 네트워크 관리 권한이 제한될 수 있음 |
RTNETLINK answers: File exists | 추가하려는 주소·경로가 이미 있는지 먼저 조회 |
Nexthop has invalid gateway | 게이트웨이가 해당 인터페이스에서 직접 도달 가능한 대역인지 확인 |
오류를 없애려고 기존 주소나 기본 경로를 먼저 지우지 않습니다. 현재 주소와 경로를 조회한 뒤 추가 대상이 맞는지 확인합니다. 게이트웨이 오류가 나면 onlink로 강제하기에 앞서 주소 프리픽스와 게이트웨이·인터페이스 조합부터 살펴보세요.
재부팅 후에도 유지하려면
ip address add, ip route add, ifconfig로 바꾼 커널의 현재 상태는 영구 설정 파일이나 연결 프로필에 자동 저장되지 않습니다. 재부팅하거나 NetworkManager 같은 관리 서비스가 연결을 다시 적용하면 사라지거나 덮어써질 수 있습니다. ip는 DNS 서버를 설정하는 명령도 아닙니다.
영구 주소와 DNS는 Rocky Linux의 nmtui·nmcli 고정 IP 설정 또는 Ubuntu의 Netplan 고정 IP 설정에서 관리합니다. 특정 대역의 경로를 유지하려면 Rocky Linux 정적 라우팅과 Ubuntu 정적 라우팅의 프로필·설정 파일 절차로 이어가면 됩니다.
지금 주소와 경로를 확인하는 목적이라면 ip -br address와 ip route get 목적지_IP부터 사용해 보세요. 값을 바꿔야 한다면 현재 연결을 유지할 방법을 확보하고, 재부팅 뒤에도 필요한 설정인지에 따라 임시 명령과 영구 설정을 선택합니다.
확인 기준: 2026년 10월 23일. Rocky Linux 9 계열·Ubuntu 24.04의 격리된 컨테이너에서 패키지 설치, 조회, 보조 주소·정적 경로 추가와 삭제, 가상 인터페이스 up·down, JSON 출력과 변경 감시를 확인했습니다. 물리 NIC의 장애, 실제 외부 목적지 통신, 호스트 재부팅 후 유지 여부는 이 실습의 검증 범위에 포함하지 않았습니다. 대표 사진은 네트워크 카드 참고 사진이며 실습 장비 사진은 아닙니다.



