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 계열)와 같은 네트워크 설정 파일을 수정해야 합니다.