본문으로 건너뛰기

리눅스에서 시스템에 할당된 IP를 확인하는 방법은 무엇인가요?

💡 리눅스에서 IP 주소를 확인하는 주요 명령어는 ifconfigip 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 비교

기능ifconfigip addr
사용 편의성쉬움 (익숙함)중간 (표준 도구)
가상 IP 표시❌ 일부만 표시✅ 모두 표시
상세 정보기본 정보상세 정보
CentOS 7 이상비권장 (deprecated)권장 (표준)
패키지net-toolsiproute2
관리 가능성읽기 위주읽기 + 설정 변경

권장 사용:

  • 일상적인 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

4.4 특정 IP가 할당된 인터페이스 찾기

[root@cafe24 ~]# ip addr | grep "1.234.56.79"
    inet 1.234.56.79/32 scope global eth0

4.5 MAC 주소 확인

[root@cafe24 ~]# ip link show eth0 | grep link/ether | awk '{print $2}'
00:30:48:90:27:96

5. 기타 유용한 명령어

5.1 hostname -I

간단하게 시스템의 모든 IP 주소를 출력합니다.

[root@cafe24 ~]# hostname -I
1.234.56.78 1.234.56.79 10.0.0.1

5.2 ip route

기본 게이트웨이와 라우팅 테이블을 확인합니다.

[root@cafe24 ~]# ip route
default via 1.234.56.1 dev eth0
1.234.56.64/28 dev eth0  proto kernel  scope link  src 1.234.56.78

기본 게이트웨이 확인:

[root@cafe24 ~]# ip route | grep default | awk '{print $3}'
1.234.56.1

네트워크 인터페이스 통계 정보를 확인합니다.

[root@cafe24 ~]# ip -s link show eth0
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
    RX: bytes  packets  errors  dropped overrun mcast
    26627598804 127206680 0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    20224029801 130053738 0       0       0       0

5.4 nmcli (NetworkManager)

CentOS 7 이상에서 NetworkManager를 사용하는 경우:

[root@cafe24 ~]# nmcli device show eth0

6. IP 주소 추가 및 삭제

6.1 IP 주소 추가 (ip addr)

임시 추가 (재부팅 시 사라짐):

[root@cafe24 ~]# ip addr add 1.234.56.80/32 dev eth0

추가 확인:

[root@cafe24 ~]# ip addr show eth0 | grep 1.234.56.80
    inet 1.234.56.80/32 scope global eth0

6.2 IP 주소 삭제

[root@cafe24 ~]# ip addr del 1.234.56.80/32 dev eth0

6.3 영구 설정 (재부팅 후에도 유지)

CentOS 6 이하:

/etc/sysconfig/network-scripts/ifcfg-eth0:0 파일 생성:

DEVICE=eth0:0
BOOTPROTO=static
IPADDR=1.234.56.80
NETMASK=255.255.255.255
ONBOOT=yes

네트워크 재시작:

[root@cafe24 ~]# service network restart

CentOS 7 이상:

[root@cafe24 ~]# nmcli connection modify eth0 +ipv4.addresses 1.234.56.80/32
[root@cafe24 ~]# nmcli connection up eth0

7. 트러블슈팅

7.1 ifconfig 명령어 없음 (CentOS 7 이상)

오류:

-bash: ifconfig: command not found

원인:

  • CentOS 7부터 기본 설치되지 않음
  • net-tools 패키지 누락

해결 1: net-tools 설치

[root@cafe24 ~]# yum install net-tools -y

해결 2: ip 명령어 사용 (권장)

[root@cafe24 ~]# ip addr

7.2 가상 IP가 보이지 않음

증상:

  • LVS/keepalived 설정했으나 ifconfig에서 VIP가 안 보임

확인:

[root@cafe24 ~]# ip addr show eth0

원인:

  • ifconfig는 일부 가상 IP를 표시하지 못함

7.3 인터페이스가 DOWN 상태

확인:

[root@cafe24 ~]# ip link show eth0
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500

UP 상태로 변경:

[root@cafe24 ~]# ip link set eth0 up

또는:

[root@cafe24 ~]# ifconfig eth0 up

8. Best Practices

  1. LVS/keepalived 사용 시: 항상 ip addr 명령어 사용
  2. 스크립트 작성 시: ip 명령어 사용 (표준)
  3. CentOS 7 이상: ip 명령어 학습 권장
  4. 빠른 확인: hostname -I 활용
  5. 가상 IP 설정 후: 반드시 ip addr로 확인

9. 참고 자료