마루옵스서버 · 네트워크 · AI 기술 노트

소개문의

Rocky Linux 9 고정 IP 설정: nmtui·nmcli와 연결 복구

광 포트가 있는 Cisco Ethernet 스위치

참고 사진 · 광 포트가 있는 Cisco Ethernet 스위치 · 사진: Pmauduit / 원본 / CC BY-SA 3.0 · 목록용 크기 조정

VM을 재부팅했더니 SSH 주소가 달라지는 일은 학습 환경에서도 꽤 번거로워요. 서버 주소를 고정하려면 IP 하나만 적는 것으로 끝나지 않습니다. 서브넷, 기본 게이트웨이, DNS와 DHCP 할당 범위를 함께 맞춰야 합니다.

이 글은 Rocky Linux 9.x의 NetworkManager를 기준으로 합니다. 화면에서 편하게 수정하려면 nmtui, 같은 작업을 기록하거나 반복하려면 nmcli를 쓰면 됩니다. 두 도구는 같은 연결 프로필을 다룹니다. RHEL 9 Ethernet 구성 문서에서도 이 두 경로를 안내합니다.

함께 보는 Linux 운영 글 · Rocky 9 고정 IP · Ubuntu 24.04 Netplan · Ubuntu 26.04·nmtui · systemd 서비스·로그 · LVM 루트 확장 · 일반 파티션 루트 확장

이 글의 목차

1. IP를 정하기 전에 연결된 망부터 확인한다

항목이 글의 예시실제 환경에서 확인할 곳
네트워크 장치ens33ip -br link의 장치명
고정 주소·프리픽스192.168.50.20/24관리자가 배정한 주소와 서브넷
기본 게이트웨이192.168.50.1현재 정상 연결의 ip route, 라우터·VMware 설정
DNS 서버192.168.50.1해당 주소에서 DNS를 제공하는지 확인
연결 프로필Wired connection 1nmcli connection show의 NAME·UUID

위 주소는 설명용입니다. /24는 IPv4에서 255.255.255.0과 같은 네트워크 마스크를 뜻합니다. 이 예시에서는 게이트웨이도 같은 192.168.50.0/24에 있습니다. 공유기가 게이트웨이라고 해서 DNS도 제공한다고 가정하면 안 됩니다.

VMware Workstation의 NAT 망, 브리지 망, Host-only 망은 서로 다른 연결입니다. NAT라면 Virtual Network Editor에서 해당 VMnet의 서브넷·NAT 게이트웨이·DHCP 범위를 확인하세요. Windows 호스트의 VMnet 주소를 게스트의 게이트웨이로 그대로 넣지 않습니다. 브리지에서는 실제 LAN의 주소 정책을 따르고, Host-only에는 인터넷으로 나가는 경로가 없을 수 있습니다.

수동 주소는 DHCP 풀 밖의 사용 가능한 주소를 배정받아 사용합니다. DHCP 예약으로 같은 주소를 계속 받는 방식도 관리하기 편해요. 예약은 DHCP 서버가 MAC 주소 등에 따라 주소를 배정하는 것이고, 여기서 다루는 고정 IP는 게스트 OS에 직접 값을 저장하는 방식입니다. 복제한 VM끼리 IP와 MAC이 겹치지 않는지도 확인합니다.

cat /etc/os-release
ip -br link
ip -4 -br address
ip -4 route
nmcli device status
nmcli -f NAME,UUID,TYPE,DEVICE connection show
nmcli --version

ens33은 장치 이름이고 Wired connection 1은 설정 묶음의 이름입니다. 서로 같을 필요가 없어요. 이름이 겹친 프로필은 UUID로 지정하면 구분할 수 있습니다. 이후 명령의 두 값은 실제 출력에 맞춰 바꿉니다.

2. 원래 프로필을 보관하고 콘솔을 준비한다

NIC='ens33'
PROFILE='Wired connection 1'
BACKUP_PROFILE='before-static-ens33'

nmcli connection show "$PROFILE"
sudo nmcli connection clone "$PROFILE" "$BACKUP_PROFILE"
sudo nmcli connection modify "$BACKUP_PROFILE" connection.autoconnect no

백업 프로필 이름은 기존 이름과 겹치지 않게 정합니다. 자동 연결을 끄는 이유는 다음 부팅 때 백업과 새 설정이 같은 장치를 놓고 경쟁하지 않게 하기 위해서입니다. 프로필에 민감한 정보가 들어갈 수 있으므로 출력 전체를 공개 게시판에 올리지 않습니다.

IP가 바뀌면 현재 SSH 연결이 끊길 수 있습니다. VMware 콘솔이나 원격 콘솔을 열어 둔 상태에서 진행합니다. 아래 nmtui와 nmcli는 같은 목적의 두 방법입니다. 한 방법으로 설정한 뒤 다른 방법을 다시 따라 할 필요는 없습니다.

3. nmtui에서 고정 IP를 입력한다

sudo dnf install -y NetworkManager-tui
sudo nmtui
  1. Edit a connection / 연결 편집에서 앞서 확인한 프로필을 선택하고 Edit로 들어갑니다.
  2. IPv4 CONFIGURATION을 Manual / 수동으로 바꾸고 Show를 펼칩니다.
  3. Addresses에 192.168.50.20/24, Gateway에 192.168.50.1, DNS servers에 실제 DNS 주소를 입력합니다. 필요 없는 이전 IPv4 주소가 남지 않게 확인합니다.
  4. 외부 통신을 맡는 NIC라면 Never use this network for default route를 선택하지 않습니다. 별도 내부망 NIC라면 기본 경로를 만들지 않는 구성이 맞을 수 있습니다.
  5. Automatically connect를 확인하고 저장합니다. IPv6는 기존 정책을 유지하며, IPv4 설정 때문에 일괄 비활성화하지 않습니다.
  6. 콘솔에서 연결을 다시 활성화한 뒤 실제 주소와 경로를 확인합니다.

Tab은 항목 이동, 방향키는 선택, Space는 체크박스 변경에 사용합니다. 저장은 프로필 변경이고, 이미 실행 중인 연결에 반영하는 일은 별도입니다. 현재 SSH에서 먼저 down을 실행하면 다음 up 명령을 입력할 기회를 잃을 수 있어요. 콘솔에서 아래처럼 해당 프로필을 다시 올립니다.

sudo nmcli connection up "$PROFILE" ifname "$NIC"

4. nmcli로 같은 값을 지정한다

다음은 nmtui를 대신하는 콘솔 작업 예시입니다. IPv4의 자동 할당 DNS를 섞지 않고 지정한 DNS를 사용합니다. IPv6에서 받아오는 DNS는 기존 IPv6 정책을 따릅니다. 기존에 정적 라우트를 별도로 운영했다면 ipv4.routes도 먼저 검토하세요. 아래 명령은 모든 기존 라우트를 지우는 명령이 아닙니다.

sudo nmcli connection modify "$PROFILE" \
  ipv4.method manual \
  ipv4.addresses '192.168.50.20/24' \
  ipv4.gateway '192.168.50.1' \
  ipv4.dns '192.168.50.1' \
  ipv4.ignore-auto-dns yes \
  ipv4.never-default no \
  connection.autoconnect yes

sudo nmcli connection up "$PROFILE" ifname "$NIC"

프로필 수정은 저장된 설정을 바꾸고, connection up은 장치에 활성화합니다. 설정을 바꿀 때마다 NetworkManager 전체를 재시작할 필요는 없습니다. 속성의 의미는 nmcli 공식 매뉴얼에서 확인할 수 있습니다.

원격 작업에서 체크포인트를 쓰려면

아직 값을 변경하기 전이라면 체크포인트 안에서 수정과 활성화를 함께 실행할 수 있습니다. 설치된 nmcli가 device checkpoint를 지원하는지 도움말로 확인합니다. 아래는 앞 절의 modify·up을 대신 실행하는 경로입니다.

nmcli device help
sudo nmcli device checkpoint --timeout 120 "$NIC" -- bash -c '
  nmcli connection modify "$1" \
    ipv4.method manual \
    ipv4.addresses "192.168.50.20/24" \
    ipv4.gateway "192.168.50.1" \
    ipv4.dns "192.168.50.1" \
    ipv4.ignore-auto-dns yes \
    ipv4.never-default no \
    connection.autoconnect yes &&
  nmcli connection up "$1" ifname "$2"
' _ "$PROFILE" "$NIC"

성공 여부를 묻는 원래 터미널에서 확인해야 변경이 유지됩니다. 새 주소로 접속되는지 별도 창에서 확인하고, 열린 콘솔에서 확정하는 편이 안전합니다. 확인하지 않으면 제한 시간 뒤 복원을 시도합니다. 이 동작은 NetworkManager의 체크포인트 예제에 설명되어 있습니다. 체크포인트가 있어도 콘솔과 백업 프로필은 남겨 둡니다.

5. 주소·경로·DNS를 따로 검사한다

ip -4 address show dev "$NIC"
ip -4 route
ip route get 1.1.1.1
nmcli -f GENERAL,IP4 device show "$NIC"
ping -c 3 192.168.50.1
getent ahostsv4 example.com
curl --connect-timeout 5 --max-time 10 -I https://example.com

ip route get은 어떤 경로를 선택할지 보여 주며 패킷 도착을 보장하지 않습니다. 게이트웨이 통신, 이름 조회, HTTPS 응답은 각각 확인합니다. ICMP를 막는 망에서는 ping 실패만으로 연결 전체가 끊겼다고 단정하지 않습니다. 내부 서비스용 DNS가 필요하면 공용 DNS로 교체하기 전에 내부 이름 조회 요구를 확인하세요.

잘못 바뀌었을 때 되돌리기

콘솔에서 백업 프로필을 올리면 저장해 둔 원래 설정을 다시 사용할 수 있습니다. 이 예시는 백업의 자동 연결을 계속 끄고, 변경했던 프로필의 자동 연결도 잠시 꺼 두어 재부팅 때 잘못된 값이 다시 선택되지 않게 합니다.

sudo nmcli connection modify "$PROFILE" connection.autoconnect no
sudo nmcli connection up "$BACKUP_PROFILE" ifname "$NIC"

백업 설정을 최종 구성으로 채택했다면 확인 후 해당 백업 프로필의 connection.autoconnect yes를 설정합니다. 원래 프로필을 DHCP로 되돌리는 경로를 택한다면 아래처럼 주소·게이트웨이·수동 DNS를 비웁니다. 별도로 넣은 라우트가 있다면 그것도 DHCP 구성에 맞게 검토해야 합니다.

sudo nmcli connection modify "$PROFILE" \
  ipv4.method auto \
  ipv4.addresses '' \
  ipv4.gateway '' \
  ipv4.dns '' \
  ipv4.ignore-auto-dns no \
  connection.autoconnect yes
sudo nmcli connection up "$PROFILE" ifname "$NIC"

주소가 바뀐 뒤에도 재부팅을 거쳐 유지되는지, 다른 VM과 중복되지 않는지 확인하면 설정 작업을 마칠 수 있습니다. Ubuntu Server에서는 같은 NIC를 Netplan이 관리할 수 있으므로 Ubuntu 24.04 Netplan의 관리 주체 확인부터 진행합니다.

확인 범위 · 2026-10-18: Rocky Linux 9.8의 NetworkManager 1.54.3에서 프로필의 오프라인 생성·수정·DHCP 전환을 확인했습니다. 실제 주소 적용과 백업 프로필 복구는 Ubuntu 24.04.5 VM의 NetworkManager 1.46에서 격리된 보조 NIC로 실행했습니다. nmtui 입력 순서는 RHEL 9 공식 문서와 대조했으며, Rocky VM 부팅과 사용자의 VMware 네트워크에서 직접 적용한 결과는 아닙니다.

네트워크·systemd 예제 파일 내려받기 · Netplan YAML, 서비스·환경 파일과 스토리지 구조를 읽는 스크립트를 묶었습니다. 주소와 장치 이름은 실제 환경에 맞춰 바꿉니다. 디스크를 자동 확장하는 스크립트는 포함하지 않습니다.

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

닉네임·이메일·댓글 내용·IP 주소·브라우저 정보는 댓글 게시 및 관리에 사용됩니다. 이메일과 접속 정보는 공개 댓글에 표시하지 않습니다. 개인정보 요청은 운영자 이메일로 보내 주세요. 개인정보처리방침