Ubuntu에서 DNS 구성 방법: Netplan 및 NetworkManager 설명

.

1. 소개: Ubuntu에서 DNS 구성의 중요성

DNS(도메인 네임 시스템)는 도메인 이름을 IP 주소로 변환하는 메커니즘입니다.
웹사이트를 열 때마다 운영 체제가 백그라운드에서 조용히 DNS 조회를 수행합니다.

Ubuntu를 사용할 때 다음과 같은 상황을 겪을 수 있습니다:

  • 페이지 로드가 “뭔가 느리다”는 느낌
  • 같은 네트워크가 다른 기기보다 느리게 느껴짐
  • LAN 내 내부 웹 서비스에 가끔 접근이 안 되는 경우

놀랍게도 이러한 문제는 연결 품질이 아니라 DNS 해석 속도가 느려서 발생하는 경우가 많습니다.

Ubuntu에서는 22.04 버전 이후부터 초보자에게 혼란을 주는 점이 하나 있는데, DNS를 설정하는 방법이 여러 가지라는 것입니다. 특히 두 가지 주요 접근 방식이 있습니다:

  • Netplan(주로 서버 및 GUI가 없는 환경에서 사용)
  • NetworkManager(GUI가 있는 데스크톱 환경에서 사용)

사용 중인 방법에 따라 절차가 달라지기 때문에, Ubuntu용 DNS 설정 가이드는 먼저 환경을 식별한 뒤 적절한 방법을 안내해야 합니다.

DNS는 단순한 부가 설정이 아니라 Ubuntu 전체 네트워크 스택의 “입구”와도 같습니다.

예를 들어 Google Public DNS(8.8.8.8)나 Cloudflare(1.1.1.1)로 전환만 해도 브라우저 응답성이 눈에 띄게 개선됩니다.
이 효과는 특히 VPS, 클라우드, 해외 네트워크 환경에서 뚜렷하게 나타납니다.

이 글에서는 다음을 명확히 구분하고 설명합니다:

  • GUI를 사용한 DNS 설정 방법
  • Netplan을 사용한 DNS 설정 방법
  • 설정 후 확인 방법

다음 섹션에서는 사용 중인 환경 유형을 먼저 판단하는 방법을 다룹니다.

2. Ubuntu에서 DNS를 구성하는 두 가지 주요 방법

Ubuntu에서는 “DNS 구성”이라는 목표가 동일하더라도 실제 방법은 사용 중인 네트워크 관리 시스템에 따라 달라집니다.
이 차이를 이해하지 못하고 진행하면 설정이 적용되지 않거나 재부팅 후 되돌아가는 문제에 직면할 수 있습니다.

우선 Ubuntu에는 두 가지 별개의 DNS 구성 경로가 있다는 점을 명확히 하겠습니다.

Netplan (YAML 기반 구성)

  • 주로 서버 환경에서 사용
  • Ubuntu LTS 릴리즈 18.04 이후 표준화
  • 구성 파일은 /etc/netplan/*.yaml에 위치
  • systemd-resolved와 연동

GUI가 없는 VPS 인스턴스나 물리 서버에서는 Netplan이 거의 항상 올바른 가정입니다.
AWS, Vultr, ConoHa, Oracle Cloud 등과 같은 플랫폼에서 흔히 사용됩니다.

NetworkManager (GUI 기반)

  • 주로 데스크톱 PC(Ubuntu Desktop)에서 사용
  • IPv4/IPv6 설정 화면을 통해 DNS 지정 가능
  • 시각적 인터페이스 덕분에 이해가 쉬움

GUI가 활성화된 환경을 사용하고 있다면 이 설정이 가장 가능성이 높습니다.
전형적인 경우는 “Ubuntu를 일상적으로 사용하고 있는데, 브라우징이 느려서 DNS만 바꾸고 싶다”는 상황입니다.

사용 중인 환경 확인 방법

가장 간단한 방법은 /etc/netplan/에 파일이 존재하는지 확인하는 것입니다.

ls /etc/netplan/

YAML 파일이 있으면 Netplan이 사용 중일 가능성이 높습니다.
디렉터리가 비어 있거나 GUI 기반 시스템이라면 NetworkManager 설정을 확인하는 것이 더 수월합니다.

3. Netplan을 사용한 DNS 구성 (서버 환경)

Netplan은 YAML 파일을 사용해 네트워크 구성을 정의합니다.
GUI가 없는 Ubuntu Server 및 VPS 환경에서는 이 방법이 거의 보장됩니다.

여기서는 DNS 값을 수정하는 일반적인 경우에 초점을 맞추어, 최소하고 실용적인 예시를 제시합니다.

Netplan 구성 파일 열기

Netplan 구성 파일은 /etc/netplan/에 위치합니다.
파일 이름은 환경에 따라 다르며(예: 00-installer-config.yaml) 다음과 같이 확인할 수 있습니다.

ls /etc/netplan/

파일 이름을 확인했으면 편집기로 엽니다. 예를 들어:

sudo nano /etc/netplan/00-installer-config.yaml

예시: YAML에 DNS 항목 추가

아래 예시는 Google DNS와 Cloudflare DNS를 모두 설정하는 방법을 보여줍니다.

.“` network: version: 2 ethernets: ens33: dhcp4: true nameservers: addresses: [8.8.8.8, 1.1.1.1]

인터페이스 이름 `ens33`은 시스템에 따라 다릅니다.  
`ip a` 또는 `ip link`를 사용하여 확인하십시오.



### 구성 적용



편집 후, 구성을 즉시 적용하십시오:

sudo netplan apply

오류가 발생하면, YAML 파일의 들여쓰기 문제가 가장 흔한 원인입니다.  
공백을 꼼꼼히 확인하십시오. 탭은 허용되지 않습니다.



### DHCP와 고정 DNS를 함께 사용할 수 있나요?



이는 흔한 질문입니다. 예, DHCP로 IP 주소를 자동으로 할당받으면서 DNS 서버를 수동으로 지정할 수 있습니다.



예시:

dhcp4: true nameservers: addresses: [9.9.9.9]

이 경우 IP 주소는 자동이며, DNS는 고정됩니다.



## **4. NetworkManager 사용하기 (Ubuntu Desktop)**



데스크톱 용도로 Ubuntu를 사용한다면 터미널 없이 DNS 설정을 변경할 수 있습니다.  
“브라우저만 느려요” 혹은 “공용 DNS로 바꾸고 싶어요”와 같은 일반적인 경우에는 GUI 방식이 가장 빠릅니다.



### 설정 화면 여는 방법



1. 오른쪽 상단의 네트워크 아이콘을 클릭합니다  
2. “Settings” 또는 “Network Settings”를 엽니다  
3. 활성 연결(유선 또는 Wi‑Fi)을 선택합니다  
4. “IPv4” 탭으로 이동합니다



여기에서 DNS 입력 필드를 찾을 수 있습니다.  
Ubuntu 버전에 따라 정확한 문구는 약간 다를 수 있지만, 주소는 쉼표로 구분된 목록으로 입력할 수 있습니다.



### DNS 입력 예시 (IPv4)



Google DNS와 Cloudflare DNS를 사용하는 예시:

8.8.8.8, 1.1.1.1

값을 입력한 후 “Apply” 또는 “Save”를 클릭하고, 네트워크를 재연결하여 변경 사항이 적용되었는지 확인하십시오.



### IPv6를 사용할 때



같은 화면에 DNS 입력 필드가 있는 “IPv6” 탭도 있습니다.  
듀얼 스택 연결에서는 IPv4와 IPv6 모두에 대한 DNS를 지정해야 안정적일 수 있습니다.



### DHCP와 고정 DNS 결합하기



GUI에서도 “자동 IP, 수동 DNS”를 설정할 수 있습니다.  
매번 고정 IP를 수동으로 할당하고 싶지 않은 가정이나 사무실 Wi‑Fi 환경에 특히 유용합니다.



## **5. DNS 설정이 적용되었는지 확인하는 방법**



DNS 설정은 값을 입력하고 저장했다고 해서 끝나는 것이 아닙니다.  
설정이 실제로 적용되었는지 확인하는 것이 필수입니다.



Ubuntu에서는 다음 세 가지 방법으로 DNS를 확인할 수 있습니다.



### dig 명령으로 조회하기

dig google.com

출력에서 “SERVER:” 라인을 찾으십시오.  
현재 어떤 DNS 서버에 질의하고 있는지 알려줍니다.



예시 (발췌):

;; SERVER: 8.8.8.8#53(8.8.8.8)

여기서 8.8.8.8(Google) 또는 1.1.1.1(Cloudflare) 가 표시되는지 확인하십시오.



### resolvectl status 사용하기



이 방법은 systemd-resolved를 통해 정확한 정보를 제공합니다.

resolvectl status

현재 참조되는 네임서버가 각 네트워크 인터페이스별로 표시됩니다.  
NIC가 여러 개 있는 서버에서는 dig보다 이 방법이 더 신뢰할 수 있습니다.



### /etc/resolv.conf를 직접 편집하면 안 되는 이유

cat /etc/resolv.conf

이 파일은 현재 사용 중인 DNS를 보여줍니다.  
하지만 systemd-resolved가 생성한 결과 파일이며, 수동으로 편집하면 덮어써집니다. 따라서 직접 수정하는 것은 올바르지 않습니다.



## **6. 흔히 사용되는 DNS 제공업체 (초보자 친화적)**



DNS 주소는 직접 만들 수 있는 것이 아닙니다.  
대부분의 경우 공용 DNS 서비스를 사용합니다.



안정적이고 안전한 시작점을 원한다면 아래 중 하나를 선택하면 좋습니다:



ProviderDNS Address
Google Public DNS8.8.8.8 / 8.8.4.4
Cloudflare1.1.1.1
Quad99.9.9.9
OpenDNS208.67.222.222 / 208.67.220.220
DNS 서버를 하나가 아니라 두 개 지정하면 신뢰성이 높아집니다. 하나가 사용 불가능해지면 시스템이 자동으로 다른 서버로 전환합니다. 내부 기업 시스템(예: Active Directory)에 접근할 때는 내부 DNS 서버를 사용해야 합니다. 이 경우 공용 DNS보다 내부 이름 해석의 신뢰성을 우선시해야 합니다. **7. DNS는 종종 숨겨진 병목 현상입니다** 비록 DNS가 단순한 또 다른 설정처럼 보이지만, 인지된 네트워크 속도에 큰 영향을 미칩니다. 그 영향은 다음 상황에서 특히 명확해집니다: * 첫 페이지 로드가 비정상적으로 느리게 느껴집니다 * 핑은 빠르지만 웹 페이지가 천천히 로드됩니다 * 서버가 가볍지만 초기 SPA (React / Vue) 로드가 무겁습니다 이러한 증상은 반복적인 액세스 후에 일반적으로 개선되지만, 첫 번째 요청은 여전히 느립니다. 이는 DNS가 초기 게이트웨이 역할을 하기 때문입니다. 특히 VPS나 해외 지역(예: us-east 또는 eu-west)에서 공공 DNS는 ISP 기본 DNS보다 종종 우수합니다. DNS는 네트워크 혼잡으로 인한 지연이 쉽게 나타나는 지점입니다. Ubuntu뿐만 아니라 일반 웹 엔지니어에게 DNS 최적화는 고려할 첫 번째 “진입점” 최적화 중 하나입니다. **FAQ** **Q1: /etc/resolv.conf를 직접 편집했는데 재부팅 후에 되돌아갑니다. 왜 그런가요?** → Ubuntu에서 systemd-resolved가 `/etc/resolv.conf`를 생성합니다. 직접 편집할 의도가 아닙니다. Netplan 또는 NetworkManager를 통해 DNS를 구성해야 합니다. **Q2: Netplan인지 NetworkManager인지 모를 때는 어떻게 하나요?** → 먼저 `/etc/netplan/`을 확인하세요.

ls /etc/netplan/ “`

YAML 파일이 존재하면 Netplan이 사용 중일 가능성이 큽니다.
GUI 환경에서는 NetworkManager가 주요 후보입니다.

Q3: IP는 DHCP로 사용하면서 DNS만 고정할 수 있나요?
→ 네.
Netplan과 NetworkManager 모두 자동 IP와 수동 지정 DNS를 지원합니다.

Q4: DNS를 변경하면 항상 웹이 빨라지나요?
→ 항상 그런 것은 아닙니다.
DNS는 초기 이름 해석만 처리합니다.
첫 번째 단계를 종종 가속화하지만, 느린 이미지, CDN 또는 API가 여전히 병목이 될 수 있습니다.

Q5: WSL2 (Windows의 Ubuntu)에서도 절차가 동일한가요?
→ 아닙니다.
WSL2는 설계상 resolv.conf를 재생성합니다.
generateResolvConf=false와 같은 추가 설정이 필요합니다.
WSL은 고유한 DNS 구성 고려사항이 있습니다.

侍エンジニア塾