목차
유선 네트워크 설정
$ sudo vi /etc/network/interfaces
- 네트워크 주소를 자동으로 받아와서 설정해야할 경우
eth0을 활성화 시키고 DHCP를 통해 네트워크 주소를 자동으로 받아오도록 설정
(iface eth0 inet dhcp)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
2.네트워크 주소를 수동으로 직접 입력해야할 경우
네트워크 주소정보를 할당하고(iface eth0 inet static), ip주소(address)
,넷마스크(netmask) 게이트웨이(gateway) dns주소(dns-nameservers)를 입력
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.63.1 192.168.63.2
설정 후 네트워크 인터페이스를 재부팅함
sudo ifdown eth0
sudo ifup eth0
위 절차는 /etc/network/interfaces와 ifupdown을 사용하는 구형 Ubuntu 환경의 기록이다. 현대 Ubuntu 설치에서는 Netplan이나 NetworkManager가 인터페이스를 관리할 수 있으므로, 현재 설정 도구를 먼저 확인해야 한다. 장치 이름도 반드시 eth0인 것은 아니다.
ip link
ip addr
ip route
ip link에서 실제 장치 이름을 찾고, ip addr와 ip route로 현재 주소와 기본 경로를 확인한다. 원격 서버라면 네트워크 설정 변경으로 SSH 연결이 끊길 수 있으므로 콘솔 복구 수단을 확보한 뒤 적용한다.
기존 기록에서 주석 처리되어 있던 iface lo inet loopback은 위 예제에서 복원했다. ifupdown 설정을 실제로 사용하는 환경이라면 루프백 인터페이스 설정을 유지한다. 정적 주소 예제의 IP, 게이트웨이, DNS 주소는 설명용 값이므로 운영망의 실제 값으로 바꿔야 한다. 적용 뒤에는 ip addr, ip route, 이름 해석 결과를 각각 확인한다.
현재 시스템에서 설정 주체 찾기
먼저 장치 이름과 네트워크 설정을 실제로 관리하는 도구를 찾는다. 옛 문서의 eth0을 그대로 입력하면, 장치 이름이 enp1s0인 시스템에서는 설정이 적용되지 않는다. Ubuntu Server는 Netplan YAML을 통해 systemd-networkd에 설정을 전달할 수 있고, 데스크톱은 NetworkManager를 사용하는 경우가 많다. Netplan은 설정 형식이고 실제 네트워크 연결을 관리하는 백엔드는 별도로 있다는 점을 구분한다.
ip -br link
ip -br address
ip route
nmcli device status # NetworkManager가 설치된 경우
sudo netplan get # Netplan 설정을 쓰는 경우
ip -br link에서 유선 장치를 찾고 ip -br address에서 IP가 배정됐는지 본다. ip route의 default via는 외부로 나갈 기본 게이트웨이다. nmcli가 없다는 사실만으로 네트워크가 고장났다고 판단하지 않는다. 현재 사용 중인 백엔드와 설정 파일을 확인한 뒤 한 인터페이스를 한 곳에서 관리한다.
flowchart TD
장치[ip link: 실제 인터페이스 이름] --> 관리자{설정 관리자}
관리자 -->|Netplan| YAML["/etc/netplan/*.yaml"]
관리자 -->|NetworkManager| NM[nmcli 또는 연결 프로필]
YAML --> 적용[주소·기본 경로·DNS 확인]
NM --> 적용
적용 --> 진단{연결 검사}
진단 -->|IP도 안 됨| 경로[케이블·주소·게이트웨이]
진단 -->|IP는 되고 이름만 안 됨| DNS[DNS 설정]
Netplan에서 DHCP와 고정 주소 설정하기
아래는 enp1s0이라는 장치가 실제로 존재한다는 가정의 예시다. 설정 파일이 여러 개라면 먼저 sudo netplan get으로 병합된 결과를 확인한다. 파일 이름만 달리해 같은 장치를 중복 선언하면 나중에 적용되는 값 때문에 예상과 다른 결과가 날 수 있다.
# /etc/netplan/50-wired.yaml — DHCP 예시
network:
version: 2
renderer: networkd
ethernets:
enp1s0:
dhcp4: true
고정 주소를 쓸 때는 주소와 프리픽스(192.0.2.10/24), 기본 게이트웨이, DNS를 각각 지정한다. 다음 주소는 문서용 예시이므로 실제 운영망 값으로 바꿔야 한다. 장치가 NetworkManager의 관리 대상이라면 renderer도 그 환경에 맞춰 결정한다.
# /etc/netplan/50-wired.yaml — 정적 주소 예시
network:
version: 2
renderer: networkd
ethernets:
enp1s0:
dhcp4: false
addresses: [192.0.2.10/24]
routes:
- to: default
via: 192.0.2.1
nameservers:
addresses: [192.0.2.53]
주소를 입력했다고 인터넷 연결이 완성되는 것은 아니다. /24는 같은 링크의 주소 범위를 정하고, default 경로는 그 밖으로 보낼 패킷의 다음 홉을 정한다. DNS 서버는 example.com 같은 이름을 주소로 바꾼다. 이 셋 중 하나가 빠져도 증상이 달라진다.
안전하게 적용하고 결과 해석하기
원격 SSH에서 주소를 바꾸면 적용과 동시에 접속이 끊길 수 있다. 콘솔 접속 경로를 확보한 뒤 sudo netplan generate로 YAML 구문을 검사하고, sudo netplan try로 제한 시간 안에 새 설정을 시험한다. 연결이 유지될 때만 확인해 설정을 확정한다. 로컬 콘솔에서 netplan apply를 쓰는 경우에도 이전 설정 파일을 복구할 수 있도록 준비한다.
sudo netplan generate
sudo netplan try
ip -br address show dev enp1s0
ip route
ip route get 1.1.1.1
resolvectl query example.com
ip route get이 경로를 보여주지 못한다면 주소 또는 기본 경로부터 확인한다. IP 주소로는 통신되는데 resolvectl query만 실패한다면 DNS 설정과 서버 접근성을 확인한다. 링크 상태가 DOWN이면 YAML을 반복 수정하기 전에 케이블·가상 NIC·스위치 포트를 본다. DHCP 환경에서 주소가 없다면 DHCP 서버와 해당 네트워크 구간을 점검한다. 기존의 ifdown/ifup 명령은 ifupdown이 관리하는 예전 설정에서만 사용한다.
Netplan의 DHCP·고정 주소 예제와 Ubuntu의 Netplan·NetworkManager 관계 설명을 함께 참고한다.