네트워크 인터페이스 이름은 서버나 컴퓨터가 네트워크에 연결되기 위해 사용하는 하드웨어 및 소프트웨어 구성 요소의 식별자이다.
리눅스 시스템에서는 각 네트워크 카드나 인터페이스에 고유한 이름을 부여하여 구별하고 관리한다.
Ubuntu 16.04 이후부터는 예측 가능한 네트워크 디바이스명(Predictable Network Interface Names) 규칙을 사용한다.
이전의 eth0, eth1 같은 단순한 명명 방식에서 벗어나 더 체계적인 이름을 사용한다.
그럼 이제 예를 들어 명명 규칙 구조를 알아보자.
en: 이더넷(Ethernet)
wl: 무선 LAN
ww: 무선 WAN
o<숫자>: 온보드 디바이스 (예: eno1)
s<숫자>: PCI Express 핫플러그 슬롯 인덱스 (예: ens33)
p<버스>s<슬롯>: PCI 위치 (예: enp2s0)
x<MAC주소>: MAC 주소 기반 (예: enxb23fd2asff)
펌웨어/BIOS 정보 기반 온보드 디바이스 인덱스 (eno1)
펌웨어/BIOS 정보 기반 PCI Express 슬롯 인덱스 (ens1)
물리적 커넥터 위치 정보 (enp2s0)
MAC 주소 기반 (선택적)
전통적인 예측 불가능한 이름 (eth0)
ls /sys/class/net
# 더 권장
ip link show
그럼 대충 아래 처럼 나온다. 여기서 알 수 있는 법은.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
용도: 시스템 내부 통신용 가상 인터페이스
상태: UP, LOWER_UP (정상 작동)
특징: 모든 리눅스 시스템에 기본적으로 존재하는 루프백 인터페이스
사용 여부: SSH 접속용으로는 사용하지 않음
그리고 만약 docker 를 깔았다면 docker0 (Docker Bridge Interface)
도 있을 수 있다.