ifconfig는 UNIX 계열 운영 체제에서 네트워크 인터페이스의 상태를 확인하고 설정을 변경하기 위해 사용되는 명령줄 유틸리티이다. 원래는 BSD 4.3에서 도입된 netstat와 함께 제공되었으며, 이후 Linux, macOS, FreeBSD 등 다양한 시스템에 이식되었다.
주요 기능
- 인터페이스 정보 표시
ifconfig만 입력하면 현재 활성화된 네트워크 인터페이스와 각각의 IP 주소, 넷마스크, 브로드캐스트 주소, MAC 주소 등 기본 정보를 출력한다.
- 인터페이스 활성화·비활성화
ifconfig eth0 up– 지정된 인터페이스를 활성화한다.ifconfig eth0 down– 지정된 인터페이스를 비활성화한다.
- IP 주소 및 기타 파라미터 설정
ifconfig eth0 192.168.1.10 netmask 255.255.255.0– IP 주소와 넷마스크를 지정한다.ifconfig eth0 broadcast 192.168.1.255– 브로드캐스트 주소를 지정한다.
- MTU, 전송 모드 등 고급 옵션
ifconfig eth0 mtu 1500– 최대 전송 단위(MTU)를 설정한다.ifconfig eth0 promisc– 프라미스쿠스 모드(모든 패킷 수신)로 전환한다.
옵션 요약 (일부)
| 옵션 | 의미 |
|---|---|
-a |
시스템에 존재하는 모든 인터페이스를 표시한다(비활성화된 인터페이스 포함). |
-s |
간단한 요약 형태로 인터페이스 상태를 출력한다. |
-v |
상세 정보를 표시한다(버전 및 추가 진단 메시지 포함). |
-h |
사용법을 출력한다. |
역사 및 현재 상황
- 역사:
ifconfig는 1980년대 초 BSD UNIX에 처음 구현되었다. Linux에서는 1992년 이후net-tools패키지에 포함되어 널리 사용되었다. - 현대 Linux에서의 위치: 많은 최신 Linux 배포판은
net-tools대신iproute2패키지의ip명령을 기본 네트워킹 관리 도구로 채택하고 있다. 이에 따라ifconfig는 기본적으로 설치되지 않을 수 있으며, 필요 시 별도로net-tools패키지를 설치해야 한다. - 대체 명령:
ip addr,ip link,ip route등은ifconfig와 동일한 기능을 제공하면서 보다 세밀한 제어를 가능하게 한다.
지원 플랫폼
| 운영 체제 | 기본 제공 여부 | 비고 |
|---|---|---|
| Linux (대부분) | 패키지에 따라 다름 (net-tools 필요) |
최신 배포판에서는 ip 명령이 권장됨 |
| macOS | 기본 제공 | BSD 기반 구현 사용 |
| FreeBSD, OpenBSD, NetBSD | 기본 제공 | BSD 계열에서 지속적으로 사용 |
| Solaris | 일부 버전에서 제공 | ifconfig와 ipadm이 병존 |
사용상의 주의점
- 보안: 인터페이스 설정을 변경하려면 일반적으로 루트 권한이 필요하다. 잘못된 설정은 네트워크 연결 장애를 초래할 수 있다.
- 호환성: 스크립트 등에서
ifconfig를 사용할 경우, 대상 시스템에net-tools가 설치되어 있는지 확인하는 것이 필요하다.
참고 문헌 및 자료
- Unix 및 Linux 시스템 매뉴얼 페이지(
man ifconfig). - BSD 운영 체제와 Linux 배포판의 공식 문서.
net-tools프로젝트의 공개 소스 코드 및 릴리스 노트.
※ 위 내용은 널리 알려진 기술 문서와 공식 매뉴얼을 기반으로 작성되었으며, 별도의 추정이나 확인되지 않은 정보는 포함하지 않았다.