RHEL 8 이상(RHEL 9 · 10, Rocky Linux 8 · 9 · 10 포함)에서 NetworkManager 의 nmcli 로 고정 IP 를 잡는 절차다. ifcfg 파일을 손으로 고치는 방법은 RHEL 8 에서만 호환되고 RHEL 9 부터는 기본으로 읽지 않으므로 nmcli 를 쓴다.
nmcli device status
nmcli connection show
ip addr
nmcli device status 의 DEVICE 열이 인터페이스 이름, CONNECTION 열이 그 인터페이스에 붙은 프로필 이름이다. 설치 직후에는 둘이 같은 경우가 많다(ens33 / ens33).
프로필 이름을 ens33, 주소를 192.168.240.100/24, 게이트웨이를 192.168.240.2 로 잡는 예다. 값은 환경에 맞게 바꾼다.
sudo nmcli connection modify ens33 ipv4.method manual \
ipv4.addresses 192.168.240.100/24 \
ipv4.gateway 192.168.240.2 \
ipv4.dns "8.8.8.8 1.1.1.1" \
connection.autoconnect yes
프로필이 없는 인터페이스면 새로 만든다.
sudo nmcli connection add type ethernet con-name ens33 ifname ens33 \
ipv4.method manual ipv4.addresses 192.168.240.100/24 \
ipv4.gateway 192.168.240.2 ipv4.dns "8.8.8.8"
DHCP 로 되돌리려면 ipv4.method auto 로 바꾸고 주소·게이트웨이를 비운다.
sudo nmcli connection modify ens33 ipv4.method auto ipv4.addresses "" ipv4.gateway ""
sudo nmcli connection down ens33 && sudo nmcli connection up ens33
ssh 로 접속한 상태라면 down 순간 세션이 끊길 수 있다. && 로 한 줄에 붙여 두면 up 까지 이어서 실행되므로 새 IP 로 다시 접속하면 된다.
ip addr show ens33
ip route show
cat /etc/resolv.conf
ping -c 3 8.8.8.8
nmcli 가 고친 결과는 파일에 남는다. 직접 편집했다면 sudo nmcli connection reload 로 다시 읽는다.
| 버전 | 파일 |
|---|---|
| RHEL 9 · 10 | /etc/NetworkManager/system-connections/ens33.nmconnection |
| RHEL 8 | /etc/sysconfig/network-scripts/ifcfg-ens33 |
RHEL 8 에서는 ifcfg 파일을 고치고 NetworkManager 에 다시 읽혀도 된다. RHEL 9 부터는 NetworkManager-initscripts-updown 패키지가 있어야 하고 권장하지 않는다.
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.240.100
PREFIX=24
GATEWAY=192.168.240.2
DNS1=8.8.8.8
sudo nmcli connection reload
sudo nmcli connection down ens33 && sudo nmcli connection up ens33
BOOTPROTO 는 고정 IP 일 때 none 이다. 옛 문서의 static 도 같은 뜻으로 동작하지만 공식 값은 none 이다.