Linux 네트워크 인터페이스 관리: ifconfig 명령어 활용

Linux 시스템에서 ifconfig 명령어는 네트워크 인터페이스의 설정을 확인하고 수정하는 데 사용되는 강력한 도구입니다. 네트워크 환경이 변경될 때 이 명령어를 통해 해당 설정을 즉시 조정할 수 있습니다.

명령어 기본 형식

ifconfig [네트워크 장치] [옵션]

주요 기능

ifconfig 명령어는 네트워크 장치의 상태를 표시하고, IP 주소, 서브넷 마스크, MAC 주소 등의 네트워크 설정을 구성하는 데 활용됩니다. 또한, 인터페이스를 활성화하거나 비활성화하는 등의 작업도 수행할 수 있습니다.

주요 옵션

  • up: 지정된 네트워크 장치를 활성화합니다.
  • down: 지정된 네트워크 장치를 비활성화하여 해당 인터페이스를 통한 IP 트래픽을 차단합니다.
  • arp: 해당 인터페이스에서 ARP(Address Resolution Protocol) 지원을 활성화하거나 비활성화합니다.
  • -promisc: 인터페이스를 Promiscuous 모드로 설정합니다. 이 모드에서는 인터페이스로 향하는 모든 패킷을 수신합니다.
  • -allmulti: 인터페이스를 All-multicast 모드로 설정합니다. 이 모드에서는 인터페이스로 향하는 모든 멀티캐스트 패킷을 수신합니다.
  • -a: 시스템의 모든 네트워크 인터페이스 정보를 표시합니다.
  • -s: 각 인터페이스에 대한 요약 정보를 표시합니다. (netstat -i와 유사)
  • add [IPv6 주소]/[prefix length]: 지정된 인터페이스에 IPv6 주소를 추가합니다.
  • del [IPv6 주소]/[prefix length]: 지정된 인터페이스에서 IPv6 주소를 삭제합니다.
  • mtu [바이트 수]: 인터페이스의 최대 전송 단위(MTU)를 설정합니다.
  • netmask [서브넷 마스크]: 인터페이스의 서브넷 마스크를 설정합니다.
  • address [IP 주소]: 인터페이스에 IPv4 주소를 할당합니다.
  • txqueuelen [길이]: 인터페이스의 전송 큐 길이를 설정합니다.

사용 예시

1. 네트워크 인터페이스 정보 확인

현재 활성화된 네트워크 인터페이스의 상세 정보를 확인합니다.

ifconfig

출력 예시:

eth0: flags=4163  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::a00:27ff:fe8e:4d81  prefixlen 64  scopeid (unique)
        ether 08:00:27:8e:4d:81  txqueuelen 1000  (Ethernet)
        RX packets 12345  bytes 6789012 (6.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5432  bytes 1234567 (1.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 100  bytes 8000 (7.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 100  bytes 8000 (7.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • eth0: 첫 번째 이더넷 인터페이스를 나타냅니다.
  • inet: IPv4 주소, netmask: 서브넷 마스크, broadcast: 브로드캐스트 주소를 표시합니다.
  • inet6: IPv6 주소를 표시합니다.
  • ether: MAC 주소 (하드웨어 주소)를 표시합니다.
  • UP: 인터페이스가 활성화되었음을 나타냅니다.
  • RUNNING: 네트워크 케이블이 연결되어 있고 정상 작동 중임을 나타냅니다.
  • lo: 로컬 루프백 인터페이스입니다. 자체 테스트 등에 사용됩니다.

2. 네트워크 인터페이스 활성화/비활성화

특정 네트워크 인터페이스를 켜거나 끕니다.

# eth0 인터페이스 활성화
sudo ifconfig eth0 up

# eth0 인터페이스 비활성화
sudo ifconfig eth0 down

주의: SSH로 서버에 접속한 상태에서 인터페이스를 비활성화하면 연결이 끊어질 수 있습니다. 다중 네트워크 인터페이스가 없는 경우, 비활성화 후 원격으로 다시 활성화하기 어려울 수 있으므로 주의해야 합니다.

3. IPv6 주소 설정 및 삭제

특정 인터페이스에 IPv6 주소를 할당하거나 제거합니다.

# eth0 인터페이스에 IPv6 주소 추가
sudo ifconfig eth0 add 2001:db8::1/64

# eth0 인터페이스에서 IPv6 주소 삭제
sudo ifconfig eth0 del 2001:db8::1/64

4. MAC 주소 변경

네트워크 인터페이스의 MAC 주소를 변경합니다. 이 작업은 보통 일시적이며, 시스템 재부팅 시 원래의 MAC 주소로 복구될 수 있습니다. 영구적인 변경을 위해서는 하드웨어 설정이나 관련 설정 파일을 수정해야 할 수 있습니다.

# eth0 인터페이스 비활성화
sudo ifconfig eth0 down

# eth0 인터페이스의 MAC 주소 변경
sudo ifconfig eth0 hw ether 00:11:22:33:44:55

# eth0 인터페이스 활성화
sudo ifconfig eth0 up

5. IP 주소 및 서브넷 마스크 설정

네트워크 인터페이스에 IP 주소와 서브넷 마스크를 설정합니다.

# IP 주소만 설정
sudo ifconfig eth0 192.168.1.150

# IP 주소 및 서브넷 마스크 설정
sudo ifconfig eth0 192.168.1.150 netmask 255.255.255.0

# IP 주소, 서브넷 마스크, 브로드캐스트 주소 설정
sudo ifconfig eth0 192.168.1.150 netmask 255.255.255.0 broadcast 192.168.1.255

IP 주소 설정 후 인터페이스가 활성화되면 라우팅 테이블에 해당 정보가 자동으로 추가됩니다. 인터페이스가 비활성화되면 라우팅 테이블에서 해당 정보가 제거됩니다.

6. ARP 프로토콜 활성화/비활성화

ARP 프로토콜의 지원 여부를 설정합니다.

# eth0 인터페이스에서 ARP 활성화
sudo ifconfig eth0 arp

# eth0 인터페이스에서 ARP 비활성화
sudo ifconfig eth0 -arp

7. 최대 전송 단위(MTU) 설정

인터페이스를 통해 전송할 수 있는 최대 데이터 패킷 크기를 설정합니다.

# eth0 인터페이스의 MTU를 1480 바이트로 설정
sudo ifconfig eth0 mtu 1480

참고: ifconfig 명령어로 변경된 네트워크 설정은 일시적이며, 시스템 재부팅 시 초기화됩니다. 영구적인 설정을 위해서는 /etc/network/interfaces (Debian/Ubuntu 계열) 또는 /etc/sysconfig/network-scripts/ifcfg-* (Red Hat/CentOS 계열)와 같은 네트워크 설정 파일을 수정해야 합니다.

태그: ifconfig linux 네트워크 네트워크 인터페이스 IP 주소 설정

7월 20일 04:26에 게시됨