catsridingCATSRIDING|OCEANWAVES
Dev

Linux 환경에서 ifconfig로 네트워크 인터페이스 정보 확인하기

jynn@catsriding.com
Mar 13, 2024
Published byJynn
999
Linux 환경에서 ifconfig로 네트워크 인터페이스 정보 확인하기

Network Interfaces with ifconfig in Linux

리눅스에서 네트워크 상태를 빠르게 파악하는 데에는 ifconfig 명령어가 효과적입니다. 이를 이용하면, 현시점에서 시스템의 네트워크 인터페이스 상황을 쉽게 확인할 수 있습니다.

예를 들어, eth0라는 인터페이스에서 현재 상태, IPv4 주소, MTU, 넷마스크, 브로드캐스트 주소, MAC 주소, 송수신 패킷 수 등 상세한 정보를 한눈에 확인할 수 있습니다. 특히, 넷마스크를 이용해 IP 주소를 네트워크 주소 부분과 호스트 주소 부분으로 구별하는 방법을 이해하면, 네트워크 관리 작업을 효율적으로 수행할 수 있습니다. 이러한 정보를 활용하면, 인터페이스의 문제 발생 시 즉시 대응하고, 성능 최적화 작업에도 도움이 됩니다.

다음은 ifconfig 명령어를 실행시킨 결과의 예시입니다. 콘솔에서 이 명령어를 입력하면, 리눅스 시스템이 현재 가지고 있는 네트워크 인터페이스 정보를 확인할 수 있습니다:

$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
        inet 172.31.46.244  netmask 255.255.240.0  broadcast 172.31.15.255
        ether 02:aa:bb:cc:dd:ee  txqueuelen 1000  (Ethernet)
        RX packets 235620  bytes 2147483647 (1.9 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 99369  bytes 2147483647 (1.3 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • eth*:
    • eth는 "Ethernet"을 의미하고, *는 Ethernet 인터페이스의 인덱스 번호를 나타내는 자리 표시자로 숫자 인덱스를 표시합니다.
    • 인덱스 번호는 시스템 내에서 여러 Ethernet 인터페이스를 구분하는 데 사용됩니다.
    • 여기서 eth0는 첫번째 Ethernet 인터페이스를 의미합니다. 하나 이상의 인터페이스가 존재했다면 두 번째 Ethernet 인터페이스는 eth1, 세 번째 Ethernet 인터페이스는 eth2와 같이 구분합니다.
  • lo:
    • lo는 "Local Loopback"의 줄임말입니다.
    • 네트워크 인터페이스 중 하나로서 시스템 내부에서만 통신을 수행합니다.
    • 주로 컴퓨터가 자기 자신과 통신하는 데 사용됩니다.
    • lo 인터페이스의 IP 주소는 보통 localhost라고 불리우는 127.0.0.1입니다. 이 주소로 보내진 패킷은 현재 컴퓨터로만 전송됩니다.
  • flags: 인터페이스의 상태를 나타내는 플래그로 다음의 상태들이 포함됩니다.
    • UP: 인터페이스가 활성화되어 있음.
    • BROADCAST: 브로드캐스트 주소로 패킷을 보낼 수 있음.
    • RUNNING: 인터페이스가 동작 중임.
    • MULTICAST: 멀티캐스트 주소로 패킷을 보낼 수 있음.
  • inet: 인터페이스의 IPv4 주소입니다.
  • mtu: MTU(Maximum Transmission Unit)는 네트워크 인터페이스가 한 번에 전송할 수 있는 최대 바이트 수입니다. 여기서는 9,001바이트 입니다.
  • netmask:
    • 넷마스크는 IP 주소를 네트워크 주소 부분과 호스트 주소 부분으로 나누는 데 사용됩니다
    • 예를 들어, 넷마스크 255.255.240.0은 이진수로 11111111.11111111.11110000.00000000입니다. 이 넷마스크에 대한 이진 표현에서 1의 수는 20개이므로, 이 넷마스크는 / 표기법으로는 /20으로 표현됩니다.
    • 이 넷마스크를 사용하면 IP 주소의 상위 20비트(왼쪽에서 오른쪽으로)는 네트워크를 식별하고, 나머지 12비트는 그 네트워크 내의 특정 호스트를 식별하는 데 사용됩니다.
  • broadcast: 인터페이스의 브로드캐스트 주소입니다. 이 주소로 패킷을 보내면 해당 IP 네트워크에 있는 모든 호스트에게 전송됩니다.
  • ether: 이 인터페이스의 MAC(Media Access Control) 주소입니다.
  • RX packets : 인터페이스가 받은 (RX, Received) 패킷의 수와 총 바이트 수 입니다.
  • RX errors: 이 인터페이스가 받은 패킷(RX, Received)에 대한 에러 상황과, 드롭된 패킷, 오버런(버퍼 초과), 프레임 에러 등의 정보를 나타냅니다.
  • TX packets: 인터페이스가 보낸 (TX, Transmitted) 패킷의 수와 총 바이트 수 입니다.
  • TX errors: 에러 상황과 드롭된 패킷, 오버런(버퍼 초과), 캐리어 에러, 충돌 등에 대한 정보입니다.
  • Linux
  • Shell