리눅스 서버나 워크스테이션을 운영하다 보면 특정 기기의 IP를 고정해야 할 일이 반드시 생깁니다. 10년 전에는 dhclient.conf를 수정하거나 /etc/network/interfaces를 건드리는 게 일상이었지만, 최신 우분투(18.04 LTS 이후)에서는 Netplan이라는 도구가 표준으로 자리 잡았습니다.
과거에 제가 사용했던 send dhcp-requested-address 방식과 현재의 표준 방식을 비교하며 정리해 봅니다.
옛날 방식: dhclient로 특정 IP 요청하기
과거(2016년경)에는 /etc/dhcp/dhclient.conf 파일을 수정해 공유기(DHCP 서버)에 “나 이 IP 쓰고 싶어!”라고 요청을 보냈습니다.
# /etc/dhcp/dhclient.conf 수정 예시
send host-name = gethostname();
send dhcp-requested-address 192.168.0.77;
이 방식은 DHCP 프로토콜의 특성을 이용한 ‘요청’ 방식입니다. 하지만 서버가 거절하면 그만이고, 최근 리눅스 배포판에서는 네트워크 관리 체계가 바뀌면서 이 설정이 무시되는 경우가 많아졌습니다.
최신 방식: Netplan으로 고정 IP 선언하기
최신 우분투에서는 /etc/netplan/ 디렉터리에 있는 YAML 파일을 통해 네트워크를 제어합니다. 이제는 “요청”하는 수준이 아니라 시스템 차원에서 “고정”해버리는 방식이 권장됩니다.
Step 1. 네트워크 인터페이스 이름 확인
가장 먼저 내 랜카드의 이름을 알아야 합니다.
ip link show
보통 enp3s0, eth0 등의 이름으로 표시됩니다.
Step 2. Netplan 설정 파일 편집
/etc/netplan/ 폴더에 있는 설정 파일(예: 01-netcfg.yaml)을 엽니다.
sudo nano /etc/netplan/01-netcfg.yaml
Step 3. 고정 IP 설정 (YAML 작성)
과거의 복잡한 명령어 대신, 구조화된 YAML 형식을 사용합니다. 들여쓰기(공백 2칸)가 매우 중요하니 주의하세요.
network:
version: 2
renderer: networkd
ethernets:
enp3s0: # 확인한 인터페이스 명칭
dhcp4: no # DHCP 자동 할당 끄기
addresses:
- 192.168.0.77/24 # 고정할 IP와 서브넷 마스크
routes:
- to: default
via: 192.168.0.1 # 게이트웨이(공유기) 주소
nameservers:
addresses:
- 8.8.8.8 # DNS 서버 설정
- 8.8.4.4
설정 적용 및 검증
작성을 마쳤다면 아래 명령어로 설정을 적용합니다.
- 테스트 적용:
sudo netplan try
설정에 오류가 있으면 120초 후 자동으로 복구됩니다. 원격 접속 중일 때 안전합니다. - 최종 적용:
sudo netplan apply - 확인:
ip addr show [인터페이스명]
요약: 무엇이 달라졌나?
| 구분 | 과거 (dhclient) | 현재 (Netplan) |
|---|---|---|
| 설정 파일 | /etc/dhcp/dhclient.conf | /etc/netplan/*.yaml |
| 방식 | DHCP 서버에 선호 IP “요청” | OS 레벨에서 고정 IP “강제” |
| 특이사항 | dhclient.leases 캐시 삭제 필요 | YAML 들여쓰기 규칙 준수 필수 |
마치며
2016년에는 dhclient.leases 파일을 지워가며 고군분투했었는데, Netplan은 관리가 편해졌습니다. 다만 YAML 특유의 들여쓰기 오류 때문에 고생할 수 있으니 그 부분만 조심하면 됩니다.










댓글 남기기