리눅스에서 시스템에 할당된 IP를 확인하는 방법은 무엇인가요?
💡 리눅스에서 IP 주소를 확인하는 주요 명령어는 ifconfig와 ip addr입니다. ifconfig는 기본 정보를 빠르게 확인할 때 유용하고, ip addr은 가상 IP를 포함한 상세 정보를 확인할 때 사용합니다.
설치 환경
- CentOS 5.x (64bit) 기준
- CentOS 6, 7, 8, Rocky Linux 8/9 모두 적용 가능
1. ifconfig - 네트워크 인터페이스 정보 확인
1.1 기본 사용법
ifconfig는 가장 일반적으로 사용되는 IP 확인 명령어입니다.
명령어:
[root@cafe24 ~]# ifconfig
출력 예시:
eth0 Link encap:Ethernet HWaddr 00:30:48:90:27:96
inet addr:1.234.56.78 Bcast:1.234.56.255 Mask:255.255.255.240
inet6 addr: fe80::230:48ff:fe90:2796/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:127206680 errors:0 dropped:0 overruns:0 frame:0
TX packets:130053738 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:26627598804 (24.7 GiB) TX bytes:20224029801 (18.8 GiB)
Interrupt:169 Memory:e0200000-e0220000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1066 errors:0 dropped:0 overruns:0 frame:0
TX packets:1066 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:55816 (54.5 KiB) TX bytes:55816 (54.5 KiB)
출력 정보 설명:
- eth0: 물리적 네트워크 인터페이스
- inet addr: IPv4 주소
- Bcast: 브로드캐스트 주소
- Mask: 서브넷 마스크
- HWaddr: MAC 주소
- RX/TX packets: 수신/송신 패킷 수
- RX/TX bytes: 수신/송신 바이트 수
1.2 특정 인터페이스만 확인
[root@cafe24 ~]# ifconfig eth0
1.3 IP 주소만 간단히 확인
[root@cafe24 ~]# ifconfig eth0 | grep "inet addr" | awk '{print $2}' | cut -d: -f2
1.234.56.78
1.4 모든 인터페이스 확인 (비활성 포함)
[root@cafe24 ~]# ifconfig -a
1.5 ifconfig의 한계
중요: LVS(Linux Virtual Server)나 keepalived로 설정한 **가상 IP(VIP)**는 ifconfig에서 표시되지 않을 수 있습니다.
예시:
- eth0에 기본 IP: 1.234.56.78
- eth0에 가상 IP: 1.234.56.79 (LVS/keepalived로 추가)
- ifconfig 출력: 1.234.56.78만 표시됨
- 실제 시스템: 1.234.56.78과 1.234.56.79 모두 할당됨
이럴 때는 ip addr 명령어를 사용해야 합니다.
2. ip addr - 상세 IP 정보 확인
2.1 기본 사용법
ip addr는 ifconfig보다 상세한 정보를 제공하며, 가상 IP도 모두 표시합니다.
명령어:
[root@cafe24 ~]# ip addr
또는 축약형:
[root@cafe24 ~]# ip a
출력 예시:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:30:48:90:27:96 brd ff:ff:ff:ff:ff:ff
inet 1.234.56.78/28 brd 1.234.56.255 scope global eth0
inet 1.234.56.79/32 scope global eth0
inet6 fe80::230:48ff:fe90:2796/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
link/ether 00:30:48:90:27:97 brd ff:ff:ff:ff:ff:ff
4: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
주요 차이점:
- eth0에 2개의 IP 주소 표시:
1.234.56.78/28: 기본 IP (ifconfig에서도 보임)1.234.56.79/32: 가상 IP (ifconfig에서 안 보임)
2.2 특정 인터페이스만 확인
[root@cafe24 ~]# ip addr show eth0
또는:
[root@cafe24 ~]# ip a show eth0
2.3 IPv4 주소만 확인
[root@cafe24 ~]# ip -4 addr
2.4 IPv6 주소만 확인
[root@cafe24 ~]# ip -6 addr
2.5 간단한 출력 (oneline)
[root@cafe24 ~]# ip -o addr
1: lo inet 127.0.0.1/8 scope host lo\ valid_lft forever preferred_lft forever
2: eth0 inet 1.234.56.78/28 brd 1.234.56.255 scope global eth0\ valid_lft forever preferred_lft forever
2: eth0 inet 1.234.56.79/32 scope global eth0\ valid_lft forever preferred_lft forever
2.6 IP 주소만 추출 (스크립트용)
[root@cafe24 ~]# ip -4 addr show eth0 | grep inet | awk '{print $2}' | cut -d/ -f1
1.234.56.78
1.234.56.79
3. ifconfig vs ip addr 비교
| 기능 | ifconfig | ip addr |
|---|---|---|
| 사용 편의성 | 쉬움 (익숙함) | 중간 (표준 도구) |
| 가상 IP 표시 | ❌ 일부만 표시 | ✅ 모두 표시 |
| 상세 정보 | 기본 정보 | 상세 정보 |
| CentOS 7 이상 | 비권장 (deprecated) | 권장 (표준) |
| 패키지 | net-tools | iproute2 |
| 관리 가능성 | 읽기 위주 | 읽기 + 설정 변경 |
권장 사용:
- 일상적인 IP 확인: ifconfig (익숙하고 빠름)
- LVS/keepalived 사용 시: ip addr (가상 IP 확인 필수)
- CentOS 7 이상 신규 시스템: ip addr (표준)
4. 실전 활용 예제
4.1 LVS/keepalived 가상 IP 확인
상황:
- LVS 로드밸런서 구성
- 기본 IP: 1.234.56.78
- 가상 IP (VIP): 1.234.56.100
ifconfig 확인:
[root@cafe24 ~]# ifconfig eth0
eth0 inet addr:1.234.56.78 Bcast:1.234.56.255 Mask:255.255.255.240
→ 가상 IP가 보이지 않음!
ip addr 확인:
[root@cafe24 ~]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
inet 1.234.56.78/28 brd 1.234.56.255 scope global eth0
inet 1.234.56.100/32 scope global eth0
→ 가상 IP 1.234.56.100 확인 가능!
4.2 모든 IP 주소 목록 출력
시스템의 모든 IPv4 주소 추출:
[root@cafe24 ~]# ip -4 -o addr | awk '{print $4}' | cut -d/ -f1
127.0.0.1
1.234.56.78
1.234.56.79
10.0.0.1
4.3 인터페이스별 IP 개수 확인
[root@cafe24 ~]# ip -4 addr | grep "inet " | awk '{print $NF}' | sort | uniq -c
1 eth0
1 eth0
1 lo