Ubuntu Server에서 nmtui를 설치했는데 장치가 보이지 않는다면, 먼저 네트워크를 누가 관리하는지 확인해 보세요. 서버는 Netplan 설정을 systemd-networkd에 전달하는 구성이 흔하고, Desktop은 NetworkManager를 쓰는 경우가 많습니다. 도구를 추가하기 전에 현재 경로를 확인하면 설정 충돌을 줄일 수 있어요.
대상은 Ubuntu 24.04 LTS Server의 유선 IPv4입니다. 예제는 ens33에 192.168.50.24/24를 배정합니다. 주소·DNS·게이트웨이는 실제 망의 배정값으로 바꾸며, SSH 변경 작업에는 VM 콘솔을 준비합니다. Ubuntu의 구성 흐름은 공식 네트워크 문서를 기준으로 했습니다.
함께 보는 Linux 운영 글 · Rocky 9 고정 IP · Ubuntu 24.04 Netplan · Ubuntu 26.04·nmtui · systemd 서비스·로그 · LVM 루트 확장 · 일반 파티션 루트 확장
이 글의 목차
1. 현재 장치와 설정 파일을 확인한다
cat /etc/os-release
ip -br link
ip -4 -br address
ip -4 route
sudo netplan get
sudo netplan status -a
systemctl is-active systemd-networkd NetworkManager
sudo ls -la /etc/netplan
sudo ls -la /run/netplan /lib/netplan
마지막 명령은 디렉터리가 없으면 오류를 출력할 수 있습니다. 파일 존재 여부를 확인하는 단계입니다. 서비스가 active인지와 특정 NIC의 관리 주체가 무엇인지는 별개의 정보입니다. netplan status -a에서 해당 장치의 networkd·NetworkManager 표시도 확인합니다.
Netplan은 여러 YAML을 합쳐 읽습니다. 뒤 이름의 파일 하나가 앞 파일 전체를 지운다고 생각하면 기존 주소나 경로가 남을 수 있어요. 저장된 원본과 netplan get의 병합 결과를 함께 봅니다. /run/systemd/network 등 생성 결과를 직접 수정해도 다음 생성 때 덮어써질 수 있습니다. netplan generate의 파일 처리 설명을 참고하세요.
2. 기존 파일을 보관하고 한 곳으로 정리한다
net_backup_dir="/root/netplan-before-$(date +%Y%m%d-%H%M%S)"
sudo install -d -m 0700 "$net_backup_dir"
sudo cp -a /etc/netplan/. "$net_backup_dir/"
백업 디렉터리 이름을 기록합니다. 아래 예시는 ens33의 구성을 /etc/netplan/60-static.yaml로 모은 상태를 전제로 합니다. 기존 파일에 같은 ens33 정의가 있으면 백업 후 그 부분을 옮기거나 수정하세요. 다른 NIC·브리지·VLAN·IPv6 설정까지 지우지 않습니다. 파일명만 새로 추가하고 기존 DHCP 설정을 방치하지 않는 것이 중요합니다.
관리 도구가 배포하는 /run/netplan 설정이나 클라우드 공급자의 네트워크 정책이 있다면 그 관리 경로를 먼저 확인합니다. 직접 운영하는 VMware VM과 관리형 클라우드 인스턴스를 같은 조건으로 취급하지 않습니다.
3. 고정 IP용 YAML을 작성한다
sudoedit /etc/netplan/60-static.yaml
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: false
addresses:
- 192.168.50.24/24
routes:
- to: default
via: 192.168.50.1
metric: 100
nameservers:
addresses:
- 192.168.50.1
| 필드 | 이 예시에서 하는 일 |
|---|---|
| renderer: networkd | 실제 적용은 systemd-networkd가 담당 |
| dhcp4: false | IPv4 DHCP 주소 할당을 사용하지 않음 |
| addresses | 장치의 주소와 프리픽스 지정 |
| routes: to: default | 다른 망으로 나갈 기본 경로 지정 |
| nameservers | 이름 조회에 사용할 DNS 서버 지정 |
기본 경로는 routes로 표현했습니다. 이 구성에서 게이트웨이는 ens33과 같은 서브넷에 있어야 합니다. on-link를 추가해서 잘못된 게이트웨이를 억지로 통과시키지 않습니다. 192.168.50.1이 DNS 서비스를 제공하지 않는 망이라면 nameservers 값은 실제 DNS 주소로 바꿉니다. 필드별 동작은 Netplan YAML 명세에서 확인할 수 있습니다.
위 파일에는 IPv4 설정만 넣었습니다. 기존 IPv6 주소·RA·DHCPv6 정책이 명시되어 있었다면 필요한 필드를 함께 보존합니다. YAML은 탭 대신 공백으로 들여쓰고, 네트워크 설정에는 인증 정보가 들어갈 수 있으므로 파일 권한은 제한합니다.
sudo chmod 600 /etc/netplan/60-static.yaml
sudo netplan get
sudo netplan generate
4. netplan try로 적용하고 새 주소에서 확인한다
generate는 구문을 확인하고 백엔드 설정을 만드는 단계입니다. 아직 실제 통신 성공을 확인한 것은 아닙니다. VM 콘솔에서 아래 명령을 실행하고, 별도 터미널에서 새 주소로 SSH 접속을 확인합니다.
sudo netplan try --timeout 120
연결이 정상이고 원래 확인 창에서 변경을 확정하면 설정이 유지됩니다. 확정한 뒤 같은 작업을 위해 netplan apply를 다시 실행할 필요는 없습니다. 제한 시간 동안 확인하지 않으면 원래 실행 상태로 되돌리기를 시도합니다.
다만 netplan try 공식 문서에는 취소·시간 초과 뒤 실제 복원 여부를 확인하라는 주의사항이 있습니다. 편집한 디스크의 YAML까지 원래 내용으로 돌아왔다고 가정하지 마세요. 통신과 파일 내용을 확인한 뒤 재부팅 여부를 결정합니다.
ip -4 address show dev ens33
ip -4 route
resolvectl status ens33
resolvectl query example.com
getent ahostsv4 example.com
curl --connect-timeout 5 --max-time 10 -I https://example.com
/etc/resolv.conf에 보이는 127.0.0.53은 로컬 DNS 스텁일 수 있습니다. 실제 업스트림 DNS는 resolvectl status로 확인합니다. 파일에 nameserver를 직접 덧붙이는 방식보다 원래 설정의 nameservers를 수정하는 편이 유지 관리에 맞습니다.
cloud-init이 파일을 다시 만든다면
파일 머리말에 cloud-init이 생성했다는 설명이 있으면 재생성 정책을 확인합니다. 직접 관리하는 VM에서 네트워크 설정을 직접 맡기로 결정한 경우에는 아래 파일로 cloud-init의 네트워크 설정 생성 기능을 끌 수 있습니다. 다른 cloud-init 기능 전체를 끄는 설정은 아닙니다.
sudoedit /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
network:
config: disabled
이 파일을 만든다고 기존 50-cloud-init.yaml이 사라지지는 않습니다. 현재 설정을 직접 관리할 파일로 옮기고 중복 정의를 정리하는 작업은 따로 필요합니다. 공급자가 주소와 경로를 주입하는 클라우드에서는 해당 정책을 확인한 뒤 결정합니다. cloud-init의 네트워크 설정 비활성화 문서에 설정 범위가 설명되어 있습니다.
5. 복구와 DHCP 전환
실패하면 VM 콘솔에서 백업 파일을 복원합니다. 아래는 이번 작업에서 만든 파일이 60-static.yaml 하나인 경우입니다. 새로 만든 파일을 남긴 채 백업만 복사하면 다시 병합될 수 있으므로 그 파일을 먼저 제거합니다. 백업 경로 변수는 앞 절에서 기록한 실제 경로를 사용합니다.
sudo rm -f /etc/netplan/60-static.yaml
sudo cp -a "$net_backup_dir/." /etc/netplan/
sudo netplan generate
sudo netplan apply
cloud-init 설정까지 새로 만들었다면 그 파일의 복원·유지 여부도 원래 관리 정책에 맞춰 결정합니다. 원래 프로필 복구와 별개로 DHCP 구성으로 전환하려면 해당 NIC의 수동 addresses·routes·nameservers를 제거하고 다음처럼 정리합니다. 다른 YAML에 남은 수동 주소가 없어야 합니다.
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: true
이 파일도 저장 후 권한·generate·try 순서로 확인합니다. 네트워크가 여러 개라면 기본 경로를 어느 NIC에 둘지도 정해야 해요. Ubuntu 26.04·nmtui에서는 Ubuntu 26.04의 구성과 두 NIC 예제를 이어서 다룹니다.
확인 범위 · 2026-10-18: Ubuntu 24.04.5 VM의 격리된 보조 NIC에서 networkd 고정 주소 적용과 목적지별 경로 선택을 확인했습니다. 예제 YAML의 생성은 Ubuntu 26.04.1의 Netplan 1.2에서도 확인했습니다. VM의 기본 SSH NIC나 실제 VMware NAT 망의 주소를 바꾸는 작업은 수행하지 않았습니다.
네트워크·systemd 예제 파일 내려받기 · Netplan YAML, 서비스·환경 파일과 스토리지 구조를 읽는 스크립트를 묶었습니다. 주소와 장치 이름은 실제 환경에 맞춰 바꿉니다. 디스크를 자동 확장하는 스크립트는 포함하지 않습니다.




답글 남기기