네트워크 설정 · 4 min read · Sep 29, 2025

CentOS에서 네트워크 인터페이스 이름을 eth0으로 변경하는 방법

이 기사에서는 리눅스 인터페이스 이름 지정에 대해 배웁니다. 이는 AlmaLinux, CentOS 및 Rocky Linux와 같은 RHEL 기반 리눅스 배포판을 위해 작성되었습니다. 리눅스에서 네트워크 인터페이스가 eth(X), ens(X), eno(X) 등으로 어떻게 이름이 지정되는지 배울 것입니다.

먼저, 리눅스 시스템에서 네트워크 인터페이스의 이름 지정 개념에 대해 배우고, 전통적인 이름 지정 방식, biosdevname 및 시스템 udev 정책을 포함합니다.

1. 전통적인 이름 지정 규칙

전통적인 이름 지정 규칙은 리눅스 커널 드라이버에서 제공하는 기본 전통적인 인터페이스 이름 지정 방식입니다. 우리가 아는 바와 같이, 전통적인 이름 지정 규칙은 이더넷 장치의 경우 eth(n), 무선 LAN 장치의 경우 wlan(n), usbnet의 경우 usb(n)입니다.

전통적인 이름 지정 규칙에서는 모든 네트워크 하드웨어가 커널 드라이버에 의해 동일하게 처리됩니다. 연결 유형에 대한 정보를 제공하기에는 충분하지만, 사용자가 익숙한 하드웨어의 본질에 대해서는 그다지 많은 정보를 제공하지 않습니다.

2. Biosdevname

Biosdevname은 Dell에서 시작한 프로젝트로, 네트워크 장치의 일관된 이름 지정을 제공합니다. Biosdevname은 시스템 BIOS에서 제안한 하드웨어의 물리적 위치에 따라 네트워크 장치에 대한 일관된 이름 지정 메커니즘을 제공하는 udev 유틸리티 도우미입니다.

아래는 biosdevname에서 제공하는 기본 이름 지정 정책입니다:

  • 온보드 네트워크 장치는 “ em[_] “로 이름이 지정됩니다.
  • 추가 NIC 장치는 “ pp[_] “로 이름이 지정됩니다.

자세한 내용:

  • em = 온보드 네트워크 장치
  • = 해당 PCI 슬롯
  • = NIC의 포트 번호 (다중 포트 NIC가 있는 경우)
  • = SRIOV 및/또는 NPAR 인스턴스 인덱스
  • 추가 NIC의 ‘ p ‘는 각각 PCI 슬롯과 포트를 나타냅니다.

3. Systemd Udev 규칙

현재 Ubuntu, CentOS 및 Debian과 같은 일부 인기 있는 리눅스 배포판은 시스템 및 서비스 관리자로 Systemd를 사용하고 있습니다. 그리고 197 버전부터 systemd는 biosdevname과 유사한 네트워크 인터페이스에 대한 기본 이름 지정 정책 및 방식을 추가했습니다.

아래는 Systemd 기반 시스템의 네트워크 인터페이스 이름 지정에 대한 5가지 정책입니다:

  1. 온보드 네트워크 장치는 ‘eno1’, ‘eno2’ 등으로 이름이 지정됩니다.
  2. 펌웨어/BIOS에서 제공하는 PCI Express 핫플러그 슬롯 인덱스 번호를 포함하여 ‘ens1’로 이름이 지정됩니다. 첫 번째 정책이 실패할 경우 적용됩니다. 주로 VMWare 및 KVM과 같은 가상 머신에서 사용됩니다.
  3. 하드웨어 커넥터의 물리적 위치를 포함하는 이름(예: enp2s0)은 적용 가능한 경우 적용되며, 그렇지 않으면 모든 다른 경우에 대해 직접적으로 5번 방식으로 돌아갑니다.
  4. 인터페이스의 MAC 주소를 포함하는 이름(예: enx78e7d1ea46da)은 기본적으로 사용되지 않지만 사용자가 선택할 경우 사용할 수 있습니다.
  5. 다른 모든 방법이 실패할 경우 전통적인 예측할 수 없는 커널 이름 지정 방식이 사용됩니다(예: eth0).

이제 리눅스 인터페이스 이름 지정 규칙에 대해 배웠습니다.

다음으로, 네트워크 인터페이스 이름을 전통적인 ‘et0’, eth1 등으로 변경하는 방법을 보여드리겠습니다. 이를 수행하는 두 가지 방법이 있으며, ‘biosdevname’을 통해 네트워크 인터페이스 이름을 변경하거나 ‘systemd udev 규칙’을 통해 변경할 수 있습니다.

1. Biosdevname 비활성화를 통해 인터페이스 이름을 eth0으로 변경하기

우리가 위에서 알았듯이, biosdevname은 시스템 BIOS에서 제안한 대로 네트워크 인터페이스의 이름을 지정하기 위해 Dell에서 만든 udev 유틸리티입니다. 기본적으로 biosdevname 패키지는 리눅스 시스템에 설치되어 있습니다.

리눅스 시스템에서 biosdevname을 비활성화하려면, 시스템의 grub 구성 파일을 편집하여 부팅 수준에서 비활성화해야 합니다.

더 진행하기 전에, 다음 명령어를 사용하여 시스템의 현재 인터페이스를 확인해 보겠습니다.

ifconfig -a  
ip addr

아래는 결과입니다.

결과적으로 ‘ens3’와 ‘ens8’ 두 개의 네트워크 인터페이스가 있습니다.

다음으로, grub 구성 및 각 인터페이스의 네트워크 구성을 편집하여 CentOS 8 시스템에서 두 인터페이스의 이름을 ‘eth0’ 및 ‘eth1’로 변경하겠습니다.

- Grub2 설정

‘/etc/sysconfig/‘ 디렉토리로 이동하여 vim 편집기를 사용하여 ‘grub’ 구성을 편집합니다.

cd /etc/sysconfig/  
vim grub

‘GRUB_CMDLINE_LINUX’ 구성에서 biosdevname 및 net.ifnames 커널 매개변수를 비활성화하기 위한 다음 구성을 추가합니다.

net.ifnames=0 biosdevname=0

저장하고 닫습니다.

그 후, 아래와 같이 ‘grub2-mkconfig’ 명령을 사용하여 새로운 grub 구성을 생성합니다.

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

아래와 같은 결과를 얻을 수 있습니다.

- 네트워크 스크립트 편집

다음으로, ‘/etc/sysconfig/network-scripts/‘ 디렉토리에 위치한 구성에서 두 네트워크 인터페이스의 이름을 변경해야 합니다.

‘/etc/sysconfig/network-scripts/‘로 이동합니다.

cd /etc/sysconfig/network-scripts/

두 인터페이스 이름을 ‘ifcfg-ethX’로 변경합니다.

mv ifcfg-enp0s3 ifcfg-eth0  
mv ifcfg-enp0s8 ifcfg-eth1

그 후, 아래의 sed 명령을 사용하여 두 파일에서 두 인터페이스를 ‘ethX’로 변경합니다.

sed -i -e 's/enp0s3/eth0/g' ifcfg-eth0  
sed -i -e 's/enp0s8/eth1/g' ifcfg-eth1

이제 CentOS 8 시스템을 재부팅합니다.

sudo reboot

- 테스트

다시 로그인한 후, 다음 명령어를 사용하여 사용 가능한 네트워크 인터페이스를 확인합니다.

ifconfig  
ip addr

아래와 같은 결과가 표시됩니다.

CentOS 8 시스템의 두 네트워크 인터페이스가 변경되었으며 이제 전통적인 이름 지정 규칙을 사용하고 있습니다. 네트워크 인터페이스는 시스템 부팅 중 ‘biosdevname’을 비활성화하여 변경되었습니다.

- 선택적으로

시스템 부팅 시 변경 사항에 대한 세부 정보를 확인하려면 다음 명령어를 실행할 수 있습니다.

dmesg | grep -i eth

기본 인터페이스 이름이 전통적인 이름 ‘ethX’로 변경되었으며, 사용자 정의 udev 규칙을 통해 변경되었음을 확인할 수 있습니다.

2. Udev 규칙을 사용하여 인터페이스 이름을 eth0으로 변경하기

네트워크 인터페이스 이름을 전통적인 이름 지정 방식인 eth0 등으로 변경하는 또 다른 방법은 사용자 정의 udev 규칙을 만드는 것입니다. 사용자 정의 udev 규칙을 사용하면 시스템 부팅 후 네트워크 인터페이스가 변경됩니다.

- 사용자 정의 Udev 규칙 만들기

이제 ‘/etc/udev/rules.d/‘ 디렉토리로 이동하여 vim 편집기를 사용하여 ‘70-persistent-net.rules’라는 사용자 정의 규칙을 만듭니다.

cd /etc/udev/rules.d/  
vim 70-persistent-net.rules

mac 주소와 기본 인터페이스 ‘ens3’ 및 ‘ens8’를 자신의 것으로 변경하고 붙여넣습니다.

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:6c:a8:e6", ATTR{type}=="1", KERNEL=="ens3", NAME="eth0"  
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:97:cf:33", ATTR{type}=="1", KERNEL=="ens8", NAME="eth1"

저장하고 닫습니다.

- 네트워크 스크립트 편집

다음으로, ‘/etc/sysconfig/network-scripts’ 디렉토리로 이동합니다.

cd /etc/sysconfig/network-scripts/

두 인터페이스 이름을 ‘ifcfg-ethX’로 변경합니다.

mv ifcfg-enp0s3 ifcfg-eth0  
mv ifcfg-enp0s8 ifcfg-eth1

그 후, 아래의 sed 명령을 사용하여 두 파일에서 두 인터페이스를 ‘ethX’로 변경합니다.

sed -i -e 's/enp0s3/eth0/g' ifcfg-eth0  
sed -i -e 's/enp0s8/eth1/g' ifcfg-eth1

이제 CentOS 8 서버를 재부팅합니다.

sudo reboot

- 테스트

다시 로그인한 후, 다음 명령어를 사용하여 모든 사용 가능한 네트워크 인터페이스를 확인합니다.

ifconfig  
ip addr

그리고 할당된 새로운 인터페이스 ‘ethX’를 확인할 수 있습니다.

- 선택적으로

시스템 부팅 시 변경 사항에 대한 세부 정보를 확인하려면 다음 명령어를 실행할 수 있습니다.

dmesg | grep -i eth

‘ensX’ 이름이 전통적인 이름 ‘ethX’로 변경되었으며, 사용자 정의 udev 규칙을 통해 변경되었음을 확인할 수 있습니다.

참고

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.