Ubuntu DNS 설정 가이드 (22.04/24.04): 확인, 변경 및 이름 해석 문제 해결

目次

1. Introduction

Ubuntu에서 인터넷을 사용할 때 “웹사이트가 로드되지 않는다”, “apt update가 실패한다”, “내부 서버 호스트명을 확인할 수 없다”와 같은 문제가 갑자기 발생할 수 있습니다.
놀랍게도 흔히 발생하는 원인 중 하나는 DNS(이름 해석) 설정입니다.

간단히 말해 DNS는 도메인 이름(예: google.com)을 IP 주소로 변환하는 시스템입니다.
DNS가 제대로 작동하지 않으면 네트워크에 연결되어 있어도 웹사이트나 서버에 접근할 수 없습니다.

이 글에서는 주요 키워드 “ubuntu dns settings”에 맞춰, 초보자도 이해하기 쉽게 Ubuntu에서 DNS 설정을 확인하고 변경하는 방법을 명확히 정리하고 설명합니다.

1.1 What You’ll Learn in This Article

이 글을 다 읽고 나면 다음을 할 수 있게 됩니다:

  • Ubuntu에서 현재 DNS 설정 확인하기
  • Ubuntu Desktop(GUI)에서 DNS 설정 변경하기
  • Ubuntu Server(CLI)에서 DNS를 영구적으로 설정하기
  • systemd-resolved/etc/resolv.conf의 관계 이해하기
  • DNS 변경이 적용되지 않거나 이름 해석이 실패하는 경우 문제 해결하기

1.2 Who This Article Is For

다음과 같은 분들에게 적합한 내용입니다:

  • Ubuntu를 처음 사용하고 “DNS”라는 용어가 아직 명확하지 않은 분
  • VPS나 홈 서버에서 Ubuntu Server를 운영 중인 분
  • 네트워크는 연결되어 있지만 웹과 업데이트가 작동하지 않는 분
  • DNS를 고정하고 싶으신 분(예: Google DNS / Cloudflare DNS 사용)

1.3 Ubuntu DNS Settings Can Be Confusing: “Where Should You Change It?”

Ubuntu DNS 설정은 “DNS를 어디에 입력해야 하는가”라는 한 곳만 존재하지 않기 때문에 어려워 보일 수 있습니다.

환경에 따라 Ubuntu는 DNS를 여러 방식으로 관리합니다:

  • Ubuntu Desktop : GUI(네트워크 설정)를 통해 구성하는 경우가 많음
  • Ubuntu Server : Netplan(설정 파일)으로 관리하는 경우가 많음
  • 공통 구성 요소 : systemd-resolved가 백그라운드에서 이름 해석을 담당할 수 있음

또한, 네트워킹 가이드에서 자주 언급되는 /etc/resolv.conf는 Ubuntu 설정에 따라 동작 방식이 달라질 수 있으며, 경우에 따라 직접 편집해도 적용되지 않을 수 있습니다.

이를 모르면 다음과 같은 상황에 쉽게 빠질 수 있습니다:

  • 설정을 바꿨지만 아무 변화가 없음
  • 작동했다가 재부팅 후 다시 원래대로 돌아감
  • 어느 문서의 지침을 믿어야 할지 모름

이 글에서는 그런 혼란을 피하기 위해 Ubuntu DNS 설정을 체계적으로 정리하고 명확히 설명합니다.

1.4 Supported Ubuntu Versions

이 글은 주로 다음과 같은 일반적으로 사용되는 Ubuntu 버전을 전제로 합니다:

  • Ubuntu 22.04 LTS
  • Ubuntu 24.04 LTS

하지만 핵심 DNS 개념과 확인 방법은 다른 버전에서도 크게 다르지 않습니다.
다만 Netplan 파일 이름과 같은 작은 세부 사항은 버전에 따라 차이가 있을 수 있습니다.

2. DNS Basics (Key Terms)

Ubuntu에서 DNS를 올바르게 구성하려면, DNS가 무엇을 하는지와 어디에서 관리되는지를 대략적으로 이해하는 것이 도움이 됩니다. 여기서는 초보자 친화적으로 핵심만 다룹니다.

2.1 What Is DNS? (A Quick Explanation Is Enough)

DNS(Domain Name System)는 도메인 이름을 IP 주소로 변환하는 메커니즘입니다.

예를 들어 브라우저에서 다음과 같이 접근할 수 있습니다:

  • https://www.google.com

하지만 컴퓨터는 보통 IP 주소를 사용해 통신합니다.

  • 142.250.xxx.xxx와 같은 숫자 형태의 “주소”

따라서 DNS는 뒤에서 다음과 같은 변환을 수행합니다:

  • www.google.com142.250.xxx.xxx

이 변환을 이름 해석(name resolution)이라고 하며, 시스템이 올바른 서버에 연결할 수 있게 해줍니다.

다시 말해 DNS는 인터넷의 “전화번호부” 혹은 “주소록”과 같은 역할을 합니다.

2.2 When DNS Settings Matter

Ubuntu에서 DNS 설정이 특히 중요한 경우는 다음과 같습니다:

  • 웹사이트가 로드되지 않음(하지만 Wi‑Fi/LAN은 연결됨)
  • apt update 또는 snap 업데이트 실패
  • Docker 또는 Kubernetes 환경에서 이름 해석 실패
  • 내부 호스트명(예: intra-server.local)을 해석할 수 없음
  • VPN 연결 중에만 특정 도메인을 해석할 수 없음
  • 광고 차단 DNS 또는 더 빠른 DNS를 사용하고 싶음

DNS는 네트워킹이 정상 작동하는지 여부와 밀접하게 연결되어 있기 때문에, 문제 해결 과정에서 지속적으로 등장합니다.

2.3 DNS 서버란? (어디에 물어보나요?)

DNS 변환은 PC가 스스로 계산하는 것이 아닙니다.
보통 DNS 서버에 질의하고 결과를 받습니다.

Ubuntu가 이름 해석을 수행할 때 일반적으로 다음 흐름을 따릅니다.

  1. Ubuntu가 DNS 서버에 질의
  2. DNS 서버가 “이 도메인은 이 IP와 매핑됩니다”라고 응답
  3. Ubuntu가 해당 IP에 연결

DNS 서버는 다음과 같은 곳에서 제공됩니다.

  • 라우터(가정용 Wi‑Fi 라우터가 DNS를 할당)
  • 회사/내부 DNS 서버
  • 공개 DNS(Google DNS, Cloudflare DNS 등)

잘 알려진 공개 DNS 옵션은 다음과 같습니다.

  • Google Public DNS : 8.8.8.8 / 8.8.4.4
  • Cloudflare DNS : 1.1.1.1 / 1.0.0.1

단일 “정답”이 있는 것은 아니며, 중요한 것은 여러분의 환경과 목표에 맞는 선택을 하는 것입니다.

2.4 Ubuntu에서 DNS 설정이 다소 까다로운 이유

Windows 및 일부 다른 OS에서는 DNS를 변경하는 위치가 비교적 직관적입니다.
하지만 Ubuntu에서는 설정 방식이 다양할 수 있습니다.

  • GUI(NetworkManager)로 관리
  • Netplan으로 관리
  • systemd-resolved가 DNS 처리를 중앙 집중화
  • /etc/resolv.conf가 실제 파일이 아닌 링크일 수 있음

그 결과 온라인 가이드를 보면 다음과 같은 상충되는 조언을 마주할 수 있습니다.

  • “그냥 /etc/resolv.conf를 편집하세요”
  • “아니요—Netplan을 설정해야 합니다”
  • systemd-resolved 설정을 바꿔야 합니다”

혼란스러울 수 있습니다.

하지만 걱정하지 마세요.
“모든 것이 잘못됐다”는 것이 아니라, 올바른 절차는 여러분의 Ubuntu 구성에 따라 달라진다는 의미입니다.

이 문서에서는 어떤 접근 방식이 적용되는지 식별하는 방법도 설명합니다.

2.5 Ubuntu DNS 관리에서 마주하게 될 주요 파일 및 구성 요소

DNS 설정 가이드에 자주 등장하는 용어를 간단히 정의해 보겠습니다.

2.5.1 /etc/resolv.conf란?

/etc/resolv.conf는 오랫동안 Linux에서 사용되어 온 전통적인 DNS 설정 파일입니다.

보통 내용은 다음과 같습니다.

nameserver 8.8.8.8
nameserver 1.1.1.1

하지만 Ubuntu에서는 이 파일이 항상 직접 사용되는 것은 아닙니다.

현대 Ubuntu에서는 /etc/resolv.conf심볼릭 링크인 경우가 많으며, 다른 파일을 가리킵니다. 예를 들어:

  • systemd-resolved가 자동 생성한 파일
  • NetworkManager가 생성한 파일

이 때문에 직접 편집하면 나중에 덮어써질 수 있습니다.

2.5.2 systemd-resolved란?

systemd-resolved는 Ubuntu에서 DNS 이름 해석을 관리하는 서비스입니다.

주요 특징:

  • DNS 설정을 중앙 집중화하기 쉬움
  • DNS 캐싱 제공
  • Wi‑Fi, VPN 등 여러 인터페이스를 동시에 처리 가능

환경에 따라 실제 “DNS 설정의 중심”이 될 수 있습니다.

2.5.3 Netplan이란?

Netplan은 Ubuntu Server에서 주로 사용되는 네트워크 구성 시스템입니다.
YAML 파일을 통해 네트워크 설정을 정의합니다.

DNS는 Netplan 설정에 포함될 수 있으며, 다음과 함께 지정됩니다.

  • IP 주소
  • 게이트웨이
  • DNS 서버

서버 환경에서 모든 것을 한 번에 관리할 수 있어 표준적인 접근 방식입니다.

2.6 DNS를 변경할 때 가장 중요한 점: 영구성

Ubuntu에서 DNS를 설정할 때 가장 중요한 포인트—특히 서버에서는—다음과 같습니다.

  • 설정이 재부팅 후에도 유지될까? (영구성)

일시적으로 DNS를 바꿀 수는 있지만, 다음 상황에서 원래대로 돌아갈 수 있습니다.

  • 재부팅 시
  • 네트워크 재연결 시
  • DHCP 갱신 시
  • VPN 연결 해제 시

이 문서에서는 “빠른 해결책”이 아니라 목표에 맞게 DNS 설정을 올바르게 영구화하는 방법에 초점을 맞춥니다.

3. Ubuntu에서 현재 DNS 설정 확인 방법

DNS 설정을 변경하기 전에 먼저 Ubuntu가 현재 어떤 DNS를 사용하고 있는지 확인해야 합니다.
이 단계를 건너뛰면 잘못된 곳을 수정하게 되어 아무런 개선도 이루어지지 않을 수 있습니다.

이 섹션에서는 Desktop과 Server 환경 모두에서 Ubuntu의 DNS 설정을 확인하는 신뢰할 수 있는 방법들을 살펴보겠습니다.

3.1 resolvectl 로 DNS 확인 (권장)

Ubuntu가 systemd-resolved를 사용하고 있다면 DNS를 확인하는 가장 정확한 방법은 resolvectl입니다.

다음 명령을 실행하십시오:

resolvectl status

다음과 같은 정보를 확인할 수 있습니다:

  • 현재 사용 중인 DNS 서버
  • DNS를 제공하는 인터페이스(와이파이 / 이더넷 / VPN)
  • 설정된 검색 도메인(있는 경우)

출력에 예상하지 못한 DNS 서버(예: 라우터 IP)가 표시된다면, 이는 느리거나 불안정한 이름 해석의 원인일 수 있습니다.

3.2 /etc/resolv.conf 확인 (하지만 주의)

많은 가이드에서 /etc/resolv.conf를 확인하라고 하는데, 이는 과거에 DNS 설정을 담고 있었기 때문입니다.

다음 명령으로 확인할 수 있습니다:

cat /etc/resolv.conf

일반적인 출력 예시는 다음과 같습니다:

nameserver 127.0.0.53
options edns0 trust-ad
search example.local

127.0.0.53이 보인다면 보통 Ubuntu가 systemd-resolved를 사용하고 있으며 /etc/resolv.conf가 로컬 스텁 리졸버를 가리키고 있다는 뜻입니다.

이 경우 실제 DNS 서버는 resolvectl status 명령을 사용해 확인하는 것이 좋습니다.

3.3 /etc/resolv.conf가 심볼릭 링크인지 확인

Ubuntu에서는 /etc/resolv.conf가 종종 심볼릭 링크(symlink) 형태입니다.
이 경우 직접 파일을 편집해도 변경 사항이 지속되지 않을 수 있습니다.

다음 명령으로 확인하십시오:

ls -l /etc/resolv.conf

아래와 같은 결과가 나오면 심볼릭 링크입니다:

/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

이는 최신 Ubuntu에서 정상적인 동작이며, DNS가 이 파일을 직접 편집하는 것이 아니라 시스템 서비스에 의해 관리되고 있음을 의미합니다.

3.4 NetworkManager 로 DNS 확인 (Desktop 사용자)

Ubuntu Desktop을 사용 중이라면 DNS가 보통 NetworkManager에 의해 관리됩니다.
다음 명령으로 현재 활성 연결의 설정을 확인할 수 있습니다:

nmcli dev show

다음과 같은 행을 찾아보세요:

  • IP4.DNS[1]
  • IP4.DNS[2]

이는 NetworkManager가 현재 연결에 사용하고 있는 DNS 서버를 보여줍니다.

3.5 간단한 DNS 기능 테스트 (이름 해석이 작동하는가?)

DNS 서버가 올바르게 설정되어 있더라도 네트워크나 방화벽 문제로 이름 해석이 실패할 수 있습니다.
따라서 간단한 테스트를 수행해 보는 것이 도움이 됩니다.

다음 명령을 시도해 보세요:

ping -c 1 google.com

정상적으로 이름이 해석되고 ping이 성공한다면 DNS가 정상적으로 동작하고 있는 것입니다.

다음과 같은 오류가 발생한다면:

ping: google.com: Temporary failure in name resolution

이는 DNS가 실패하고 있음을 강력히 시사합니다.

네트워크 자체가 정상인지 확인하려면 공개 IP 주소로 직접 ping을 시도해 볼 수도 있습니다:

ping -c 1 1.1.1.1

IP 주소에 ping이 성공하지만 도메인 이름에 실패한다면, 문제는 거의 확실히 DNS와 관련된 것입니다.

4. Ubuntu Desktop에서 DNS 설정 변경 방법 (GUI)

Ubuntu Desktop을 사용 중이라면 가장 쉽고 안전하게 DNS 설정을 변경하는 방법은 GUI 네트워크 설정을 이용하는 것입니다.
이 방법은 초보자에게 친숙하며, 설정이 재부팅 후에도 유지됩니다.

4.1 Ubuntu Desktop에서 DNS 변경 (Wi‑Fi)

Wi‑Fi 연결의 DNS를 변경하려면 다음 절차를 따르세요:

  1. Settings(설정) 열기
  2. Network(네트워크) 또는 Wi‑Fi 선택
  3. 연결된 Wi‑Fi 네트워크 선택
  4. gear icon(톱니바퀴 아이콘) 클릭(연결 설정)
  5. IPv4 탭 열기
  6. DNS 항목을 Automatic(자동)에서 Manual(수동)로 전환
  7. 원하는 DNS 서버 입력
  8. 설정 저장

입력할 수 있는 예시 DNS 서버:

  • Cloudflare: 1.1.1.1, 1.0.0.1
  • Google: 8.8.8.8, 8.8.4.4

저장 후 Wi‑Fi를 끊었다가 다시 연결하거나, Wi‑Fi를 껐다 켜서 변경 사항이 적용되었는지 확인합니다.

4.2 Ubuntu Desktop에서 DNS 변경 (유선 Ethernet)

유선 연결의 경우 절차가 거의 동일합니다:

  1. 설정 열기
  2. 네트워크 로 이동
  3. 유선 아래에서 톱니바퀴 아이콘 클릭
  4. IPv4 탭 열기
  5. DNS를 자동에서 수동으로 전환
  6. DNS 서버 입력
  7. 저장

이 방법은 특히 개발 작업이나 원격 액세스를 위해 일관된 DNS 동작이 필요할 때 데스크톱에서 안정적인 접근 방식입니다.

4.3 IPv6 DNS 설정 (선택 사항)

환경에서 IPv6을 사용한다면 IPv6 탭에서 DNS를 설정할 수도 있습니다.

예시 IPv6 DNS 서버:

  • Cloudflare IPv6: 2606:4700:4700::1111 / 2606:4700:4700::1001
  • Google IPv6: 2001:4860:4860::8888 / 2001:4860:4860::8844

IPv6을 사용하지 않거나 확실하지 않은 경우, IPv6 DNS를 자동으로 두어도 무방합니다.

4.4 변경이 적용되었는지 확인

GUI를 통해 DNS를 변경한 후, 다음 명령으로 확인합니다:

resolvectl status

또는 NetworkManager 출력을 확인하려면:

nmcli dev show | grep DNS

그 다음 이름 해석을 다시 테스트합니다:

ping -c 1 google.com

정상적으로 동작한다면 DNS 설정이 성공적으로 적용된 것입니다.

4.5 흔한 실수: “라우터 DNS가 여전히 사용됨”

수동으로 DNS를 설정했음에도 라우터 IP가 DNS 서버로 표시되는 경우가 있습니다. 이는 다음 상황에서 발생할 수 있습니다:

  • 연결이 제대로 재연결되지 않음
  • 다른 네트워크 프로필이 활성화됨
  • VPN이 DNS 설정을 덮어씀

이럴 때는 연결을 끊었다가 다시 연결하거나, 일시적으로 VPN을 비활성화한 뒤 resolvectl status 로 다시 확인해 보세요.

5. Ubuntu Server에서 DNS 설정 변경하기 (Netplan 방법)

Ubuntu Server에서는 DNS 구성을 주로 Netplan을 통해 관리합니다.
이 방법은 Ubuntu Desktop과 달리 YAML 파일을 편집하고 적용하는 방식입니다.

이 섹션에서는 Netplan을 사용해 DNS 설정을 안전하게 업데이트하는 방법과 흔히 발생하는 YAML 실수를 피하는 방법을 배웁니다.

5.1 네트워크 인터페이스 이름 확인

먼저 네트워크 인터페이스 이름을 확인합니다.
서버에서는 ens3, ens160, enp0s3 등과 같은 이름을 사용합니다.

다음 명령을 실행하세요:

ip link

“UP” 상태이며 현재 활성 연결에 사용되는 인터페이스를 찾으세요.

5.2 Netplan 설정 파일 찾기

Netplan 설정 파일은 보통 /etc/netplan/ 디렉터리 아래에 있습니다.

다음 명령으로 파일 목록을 확인합니다:

ls /etc/netplan/

다음과 같은 파일이 보일 수 있습니다:

00-installer-config.yaml
01-netcfg.yaml

대개 하나의 주요 YAML 파일이 존재하며, 이 파일을 편집하게 됩니다.

5.3 Netplan YAML 편집하여 DNS 서버 지정

nano 등 편집기로 파일을 엽니다:

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

아래는 DHCP를 사용하면서 DNS 서버를 수동으로 지정하는 전형적인 예시입니다:

network:
  version: 2
  ethernets:
    ens3:
      dhcp4: true
      nameservers:
        addresses:
          - 1.1.1.1
          - 1.0.0.1

핵심 포인트:

  • nameservers 들은 올바르게 정렬되어야 합니다 (YAML 들여쓰기 중요).
  • addresses 는 리스트이므로 각 DNS 서버 앞에 - 를 사용합니다.

서버가 정적 IP를 사용한다면 DNS 설정은 정적 주소 설정과 함께 배치됩니다. 예시:

network:
  version: 2
  ethernets:
    ens3:
      dhcp4: false
      addresses:
        - 192.168.1.50/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

이 구성은 예측 가능한 네트워킹이 필요한 서버에서 흔히 사용됩니다.

5.4 Netplan 변경을 안전하게 적용

YAML을 편집한 뒤 설정을 적용합니다.

가장 안전한 권장 방법:

sudo netplan try

netplan try 는 변경을 일시적으로 적용하고 확인을 요청합니다.
네트워크 연결이 끊기면(예: SSH 세션 종료) 일정 시간 후 자동으로 원래 상태로 되돌아갑니다.

모든 것이 정상이라면 영구적으로 적용합니다:

sudo netplan apply

5.5 서버에서 DNS 설정 확인

현재 DNS 설정을 확인하려면:

resolvectl status

그 다음 이름 해석이 정상적으로 동작하는지 검증합니다:

ping -c 1 google.com

성공적으로 해결되면 DNS 구성이 정상적으로 작동하는 것입니다.

5.6 일반적인 Netplan 오류 및 회피 방법

Netplan YAML은 엄격합니다. 들여쓰기나 구문 오류 때문에 발생하는 문제가 많습니다.

들여쓰기 실수

YAML은 탭이 아니라 공백을 사용합니다. 하나의 잘못된 들여쓰기 수준만으로도 모든 것이 깨질 수 있습니다.

잘못된 인터페이스 이름

ens3으로 설정했지만 실제 인터페이스가 ens160인 경우 DNS 변경 사항이 적용되지 않습니다.

설정 적용을 잊음

파일을 편집했지만 netplan apply를 실행하지 않으면 아무 변화도 없습니다.

6. 권장 공용 DNS 제공업체 (어떤 것을 선택해야 할까요?)

DNS 제공업체를 선택하면 속도, 안정성, 프라이버시 및 신뢰성에 영향을 미칩니다.
다음은 Ubuntu에서 많은 사람들이 사용하는 일반적인 공용 DNS 서비스입니다.

6.1 Cloudflare DNS (빠르고 인기 있음)

Cloudflare DNS는 속도와 강력한 글로벌 인프라로 알려져 있습니다.

  • IPv4: 1.1.1.1 / 1.0.0.1
  • IPv6: 2606:4700:4700::1111 / 2606:4700:4700::1001

6.2 Google Public DNS (안정적이고 널리 사용됨)

Google DNS는 매우 잘 알려져 있으며 특히 문제 해결 시 안정적인 편입니다.

  • IPv4: 8.8.8.8 / 8.8.4.4
  • IPv6: 2001:4860:4860::8888 / 2001:4860:4860::8844

6.3 Quad9 (보안 중심)

Quad9는 악성코드 차단 및 보안 중심 DNS 해석을 원하는 사용자들이 자주 선택합니다.

  • IPv4: 9.9.9.9 / 149.112.112.112
  • IPv6: 2620:fe::fe / 2620:fe::9

6.4 어떤 DNS를 선택해야 할까요?

모두에게 딱 맞는 최고의 선택은 없지만, 간단한 가이드라인은 다음과 같습니다:

  • 속도 우선: Cloudflare
  • 안정성/문제 해결: Google DNS
  • 보안 중심: Quad9

잘 모르겠다면 Cloudflare 또는 Google DNS부터 시작해 보고, 브라우징 및 업데이트가 더 안정적인지 확인해 보세요.

7. 문제 해결: DNS 변경이 적용되지 않거나 이름 해석이 여전히 실패함

Ubuntu DNS 설정을 변경했지만 여전히 작동하지 않을 수 있습니다. 이러한 상황은 흔하며 원인은 종종 캐시, 충돌하는 설정, VPN 재정의와 같은 간단한 문제입니다.

이 섹션에서는 Ubuntu 22.04/24.04에서 잘 작동하는 실용적인 문제 해결 단계를 살펴보겠습니다.

7.1 첫 번째 확인: IP 주소에 핑을 보낼 수 있나요?

DNS에만 집중하기 전에 네트워크 자체가 작동하는지 확인하세요.

공용 IP에 핑을 시도해 보세요:

ping -c 1 1.1.1.1

이것이 작동한다면 네트워크 연결은 정상일 가능성이 높습니다.

다음으로 도메인 이름을 테스트해 보세요:

ping -c 1 google.com

IP에 핑은 성공하지만 도메인에 실패한다면 DNS 문제일 가능성이 높습니다.

7.2 실제 사용 중인 DNS 확인

때때로 DNS를 설정했지만 DHCP, VPN 또는 다른 인터페이스 때문에 Ubuntu가 여전히 다른 DNS 서버를 사용하고 있을 수 있습니다.

다음 명령으로 활성 DNS 서버를 확인하세요:

resolvectl status

다음 항목을 확인하세요:

  • “Current DNS Server”가 어떤 인터페이스인지
  • DNS 서버가 설정한 것과 일치하는지

여전히 라우터 IP(예: 192.168.1.1)가 보인다면 수동 DNS가 제대로 적용되지 않은 것입니다.

7.3 DNS 캐시 플러시 (systemd-resolved)

Ubuntu는 DNS 결과를 캐시할 수 있습니다. DNS를 변경한 후에도 오래된 캐시 결과가 남아 있을 수 있습니다.

다음 명령으로 캐시를 플러시하세요:

sudo resolvectl flush-caches

그런 다음 다시 테스트하세요:

ping -c 1 google.com

7.4 이름 해석 서비스 재시작

캐시 플러시만으로 충분하지 않다면, 해석 서비스 재시작이 도움이 될 수 있습니다.

systemd-resolved 재시작:

sudo systemctl restart systemd-resolved

Ubuntu Desktop을 사용 중이라면 NetworkManager도 재시작할 수 있습니다:

sudo systemctl restart NetworkManager

그런 다음 다음 명령으로 DNS를 다시 확인하세요:

resolvectl status

7.5 DHCP에 의해 DNS가 덮어쓰기 (라우터 설정)

많은 가정용 네트워크에서 라우터의 DHCP가 자동으로 DNS 설정을 할당합니다.

수동으로 DNS를 설정했더라도 연결이 여전히 “자동”으로 구성되어 있으면 덮어쓰기될 수 있습니다.

이를 해결하려면:

  • 데스크톱: GUI에서 DNS가 Manual(수동)로 설정되어 있는지 확인하세요
  • 서버: Netplan의 nameservers 아래에 DNS가 정의되어 있는지 확인하세요

7.6 VPN 또는 기업 네트워크가 DNS를 무시함

VPN 소프트웨어는 종종 DNS를 자동으로 변경하여 이름 해석을 VPN 터널을 통해 라우팅합니다.

일반적인 증상은 다음과 같습니다:

  • VPN에 연결된 상태에서 내부 도메인만 해석됨
  • VPN에 연결한 후 공개 웹사이트가 작동하지 않음
  • VPN을 활성화하면 DNS 서버가 변경됨

확인하려면 VPN 연결 전후의 DNS를 비교해 보세요:

resolvectl status

DNS가 예상치 않게 변경된다면, VPN이 DNS를 덮어쓰고 있는 것입니다.

이 경우 VPN 클라이언트 내부에서 DNS 설정을 구성하거나, VPN 설정에 따라 split‑DNS 옵션을 조정해야 할 수 있습니다.

7.7 dig 또는 nslookup으로 직접 DNS 테스트하기

때때로 ping만으로는 충분하지 않습니다. DNS를 직접 조회하는 것이 유용합니다.

dig가 사용 가능한 경우:

dig google.com

dig가 설치되지 않은 경우 다음 명령으로 설치할 수 있습니다:

sudo apt update
sudo apt install -y dnsutils

nslookup도 사용할 수 있습니다:

nslookup google.com

DNS 조회가 시간 초과되면, 구성된 DNS 서버에 접근할 수 없거나 차단된 경우가 대부분입니다.

7.8 방화벽 또는 네트워크 제한으로 DNS 차단

DNS는 일반적으로 포트 53(UDP 및 경우에 따라 TCP)을 사용합니다.
일부 네트워크는 외부 DNS를 차단하여 자체 DNS 서버를 사용하도록 강제합니다.

이 경우 1.1.1.1과 같은 공개 DNS가 작동하지 않을 수 있으며, 네트워크에서 제공하는 DNS를 사용해야 할 수도 있습니다.

특히 다음 환경에서 흔히 발생합니다:

  • 기업 Wi‑Fi
  • 호텔 네트워크
  • 공용 네트워크

8. 고급: /etc/resolv.conf와 systemd-resolved 이해하기

“ubuntu dns settings”를 검색하면 /etc/resolv.conf가 자주 언급됩니다.
하지만 최신 Ubuntu에서는 이 파일이 오래된 Linux 튜토리얼이 설명하는 방식대로 동작하지 않을 수 있습니다.

핵심 아이디어는 다음과 같습니다:

  • /etc/resolv.conf는 보통 자동 생성됩니다
  • Ubuntu는 DNS 관리를 위해 systemd-resolved를 사용합니다

8.1 /etc/resolv.conf를 직접 편집하면 실패하는 이유

많은 Ubuntu 시스템에서 /etc/resolv.conf는 시스템 서비스가 관리하는 파일에 대한 심볼릭 링크입니다.

심볼릭 링크를 확인해 보세요:

ls -l /etc/resolv.conf

다음과 같은 출력이 보이면:

/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

수동 편집이 지속되지 않는 이유는 파일이 자동으로 재생성되기 때문입니다.

8.2 127.0.0.53의 의미

/etc/resolv.conf에 다음과 같은 내용이 있으면:

nameserver 127.0.0.53

이는 “DNS 서버가 고장났다”는 의미가 아닙니다.

보통 다음을 의미합니다:

  • Ubuntu가 로컬 스텁 리졸버를 사용하고 있음
  • systemd-resolved가 내부적으로 DNS 쿼리를 처리하고 있음

실제 업스트림 DNS 서버는 다른 곳에 설정되어 있으며, 다음 명령으로 확인할 수 있습니다:

resolvectl status

8.3 systemd-resolved를 직접 구성해야 할 경우

대부분의 경우 systemd-resolved 설정을 수동으로 편집할 필요가 없습니다.
데스크톱 사용자는 GUI 설정을, 서버 사용자는 Netplan을 이용하면 됩니다.

하지만 특별한 상황에서는 다음과 같은 경우에 직접 구성할 수 있습니다:

  • DHCP와 무관하게 시스템 전체에 적용되는 대체 DNS를 지정하고 싶을 때
  • 여러 인터페이스에 대한 DNS 동작을 설정하고 싶을 때
  • 복잡한 VPN split‑DNS 문제를 트러블슈팅할 때

다음 섹션에서는 systemd-resolved를 사용해 안전하게 대체 DNS를 설정하는 방법을 보여드리겠습니다.

9. 선택 사항: systemd-resolved로 대체 DNS 설정하기 (고급)

이 섹션은 Ubuntu에서 DNS 동작을 보다 깊게 제어하고 싶은 사용자들을 위한 선택 사항입니다.

대부분의 경우 다음 방법으로 DNS를 설정해야 합니다:

  • Ubuntu Desktop: GUI (네트워크 설정)
  • Ubuntu Server: Netplan YAML

하지만 기본 DNS가 사용 불가능해질 경우에도 Ubuntu가 이름을 해석할 수 있도록 대체 DNS를 정의하고 싶을 때가 있습니다.

9.1 “대체 DNS(Fallback DNS)”란?

대체 DNS는 현재 DNS 구성이 실패했을 때 Ubuntu가 사용할 수 있는 백업 DNS 서버를 의미합니다.

예를 들어, 네트워크에서 제공하는 DNS 서버(라우터 또는 기업 DNS)가 불안정해지면, 대체 DNS는 이름 해석의 완전한 실패를 방지할 수 있습니다.

9.2 현재 systemd-resolved 설정 확인

먼저, systemd-resolved가 활성화되어 있는지 확인하세요:

systemctl status systemd-resolved

실행 중이라면 계속 진행할 수 있습니다.

9.3 /etc/systemd/resolved.conf 편집

주요 구성 파일은 다음과 같습니다:

/etc/systemd/resolved.conf

nano로 열기:

sudo nano /etc/systemd/resolved.conf

내부에 다음과 같은 주석 처리된 줄이 있을 수 있습니다:

#DNS=
#FallbackDNS=

대체 DNS를 설정하려면 다음과 같은 줄을 추가하거나 수정하세요:

[Resolve]
FallbackDNS=1.1.1.1 1.0.0.1
DNS=

주의사항:

  • FallbackDNS에는 공백으로 구분된 여러 서버를 포함할 수 있습니다.
  • 대체 동작만 원한다면 DNS=를 비워 둘 수 있습니다.
  • DNS=를 설정하면 일부 설정에서 인터페이스별 DNS를 재정의할 수 있으므로 주의하세요.

9.4 systemd-resolved 재시작

파일 편집 후 서비스를 재시작하세요:

sudo systemctl restart systemd-resolved

9.5 대체 DNS가 인식되는지 확인

현재 리졸버 상태를 확인하세요:

resolvectl status

올바르게 구성했다면 출력에 대체 DNS가 나열되어야 합니다.

10. 자주 묻는 질문 (FAQ)

10.1 Ubuntu에서 Google DNS 또는 Cloudflare DNS를 사용하는 것이 안전한가요?

네, 일반적으로 안전하며 많은 사용자가 속도와 안정성을 위해 사용합니다.

그러나 DNS는 네트워크 프라이버시와 라우팅 동작의 일부이므로, ‘최선의’ 선택은 선호도와 환경에 따라 다릅니다.

10.2 재부팅 후 DNS 설정이 원래대로 돌아가는 이유는?

이것은 일반적으로 올바른 영구 방법 대신 일시적으로 DNS를 변경한 경우(예: /etc/resolv.conf를 직접 편집) 발생합니다.

영구 DNS 구성의 경우:

  • Ubuntu Desktop: GUI 설정에서 DNS 구성
  • Ubuntu Server: Netplan YAML에서 DNS 구성

10.3 /etc/resolv.conf127.0.0.53이 표시되는 이유는?

이것은 현대 Ubuntu에서 정상이며, Ubuntu가 systemd-resolved를 통해 로컬 스텁 리졸버를 사용하고 있음을 의미합니다.

실제 상위 DNS 서버를 보려면 다음을 사용하세요:

resolvectl status

10.4 브라우저에서는 DNS가 작동하지만 apt update가 실패합니다. 왜 그런가요?

이것은 프록시 설정, 방화벽 규칙, 또는 특정 도메인에 영향을 미치는 일시적인 DNS 해석 문제로 인해 발생할 수 있습니다.

Ubuntu 저장소에 대한 DNS 해석을 테스트해 보세요:

nslookup archive.ubuntu.com

저장소 도메인에 대한 이름 해석이 실패하면 DNS 서버를 조정하는 것이 도움이 될 수 있습니다.

10.5 DNS가 불안정하게 느껴지면 IPv6를 비활성화해야 하나요?

꼭 그렇지는 않습니다. IPv6는 널리 사용되며 종종 잘 작동합니다.

그러나 네트워크가 부분적인 IPv6 지원을 가진 경우 지연을 일으킬 수 있습니다.
더 안전한 접근은 IPv4 DNS를 올바르게 설정하고 성능을 먼저 확인하는 것입니다.

11. 요약

Ubuntu DNS 설정은 Netplan, NetworkManager, systemd-resolved와 같은 여러 시스템이 관련되어 있을 수 있으므로 혼란스럽게 느껴질 수 있습니다.

하지만 올바른 워크플로를 이해하면 문제 해결이 훨씬 쉬워집니다.

11.1 빠른 체크리스트

  • resolvectl status로 DNS 확인
  • 데스크톱 사용자: GUI 네트워크 설정을 통해 DNS 변경
  • 서버 사용자: Netplan YAML을 통해 DNS 설정하고 변경 적용
  • /etc/resolv.conf를 직접 편집하는 데 의존하지 마세요
  • 변경이 적용되지 않으면 캐시 플러시하고 서비스 재시작

이 단계를 따르면 대부분의 ‘Ubuntu에서 웹사이트를 열 수 없음’ 또는 ‘DNS가 작동하지 않음’ 문제를 빠르게 해결할 수 있습니다.

DNS 문제는 짜증날 수 있지만, 일관된 문제 해결 프로세스로 보통 해결할 수 있다는 장점이 있습니다.