UbuntuのDNS設定方法まとめ|22.04/24.04対応・GUI/Netplan/systemd-resolved解説

目次

1. はじめに

Ubuntuでインターネットを使っていると、突然「Webサイトが開けない」「apt update が失敗する」「社内サーバー名が引けない」といったトラブルに遭遇することがあります。
こうした問題の原因として意外と多いのが、DNS(名前解決)の設定です。

DNSは、ざっくり言えば 「ドメイン名(例:google.com)をIPアドレスに変換する仕組み」 です。
このDNSが正しく動いていないと、ネットワーク自体はつながっているのに、Webサイトやサーバーにアクセスできない…という状態になります。

この記事では、主要キーワード 「ubuntu dns設定」 に沿って、UbuntuでDNS設定を確認・変更する方法を、初心者にも分かりやすく整理して解説します。

1.1 この記事で分かること

この記事を最後まで読むと、次のことができるようになります。

  • Ubuntuで現在のDNS設定を確認できる
  • Ubuntu Desktop(GUI)でDNSを変更できる
  • Ubuntu Server(CLI)でDNSを永続的に設定できる
  • systemd-resolved/etc/resolv.conf の関係が理解できる
  • DNS設定が反映されない・名前解決できないときの原因を切り分けられる

1.2 この記事の対象読者

この内容は、次のような人に向いています。

  • Ubuntuを使い始めたばかりで、DNSという言葉がまだ曖昧な人
  • VPSや自宅サーバーでUbuntu Serverを運用している人
  • ネットはつながっているのにWebや更新ができず困っている人
  • DNSを固定したい(Google DNS / Cloudflare DNSなどを使いたい)人

1.3 UbuntuのDNS設定は「どこを触るべきか」が分かりにくい

UbuntuのDNS設定が難しく感じる理由は、単純に「DNSを入力する場所」が1つではないからです。

Ubuntuでは環境によって、DNSの管理方法が変わります。

  • Ubuntu Desktop:GUI(ネットワーク設定画面)で設定することが多い
  • Ubuntu Server:Netplan(設定ファイル)で管理することが多い
  • 共通要素systemd-resolved が裏で名前解決を管理している場合がある

さらに、ネットワーク関連の記事でよく出てくる /etc/resolv.conf は、Ubuntuの構成によっては「直接編集しても反映されない」ことがあります。

このあたりを知らないと、

  • 設定したのに直らない
  • 再起動したら戻った
  • どの記事の手順を信じればいいか分からない

という状態になりがちです。

この記事では、こうした混乱を避けるために、UbuntuのDNS設定を体系的に整理して解説していきます。

1.4 対応するUbuntuのバージョンについて

本記事は主に、現在よく使われている以下のUbuntuを想定しています。

  • Ubuntu 22.04 LTS
  • Ubuntu 24.04 LTS

ただし、DNSの考え方や確認方法は、他のバージョンでもほぼ共通です。
細かい挙動(Netplanの設定ファイル名など)だけが異なることがあります。

2. DNSの基礎知識(用語解説)

UbuntuでDNS設定を正しく行うには、まず「DNSが何をしているのか」「どこで管理されているのか」をざっくり理解しておくと失敗しにくくなります。
ここでは初心者向けに、必要最低限のポイントだけ整理します。

2.1 DNSとは?(超ざっくり理解でOK)

DNS(Domain Name System)は、ドメイン名をIPアドレスに変換する仕組みです。

たとえば、あなたがブラウザで次のようにアクセスするとします。

  • https://www.google.com

しかし、コンピュータ同士の通信は基本的に「IPアドレス」で行われます。

  • 142.250.xxx.xxx のような数字の住所

そこでDNSが裏側で、

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

という変換(名前解決)を行い、目的のサーバーに接続できるようにしてくれます。

つまりDNSは、インターネットの「電話帳」や「住所録」のような役割です。

2.2 DNS設定が重要になる場面

UbuntuでDNS設定が重要になるのは、主に次のような場面です。

  • Webサイトが開けない(でもWi-FiやLANはつながっている)
  • apt updatesnap の更新が失敗する
  • 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 DNS8.8.8.8 / 8.8.4.4
  • Cloudflare DNS1.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など)でも扱える

Ubuntuの環境によっては、DNSの設定はここが実質的な中心になります。

2.5.3 Netplanとは?

Netplanは、Ubuntu Serverなどでよく使われるネットワーク設定の仕組みです。
設定ファイル(YAML)を書いてネットワーク構成を定義します。

DNSもNetplanの設定に含めることができます。

  • IPアドレス
  • ゲートウェイ
  • DNSサーバー

などをまとめて管理できるため、サーバー用途では定番です。

2.6 DNSの設定変更で重要なのは「永続化」

UbuntuでDNSを設定するとき、特に重要なのは

  • 再起動しても設定が残るか?(永続化)

です。

DNSの設定は一時的に変更できる場合もありますが、次のタイミングで元に戻ることがあります。

  • 再起動した
  • ネットワークを再接続した
  • DHCP更新が走った
  • VPNが切断された

この記事では「その場しのぎ」ではなく、目的に応じて正しく永続化する方法を解説します。

3. UbuntuでDNS設定を確認する

DNS設定を変更する前に、まずは 「今どうなっているか」 を確認するのが重要です。
Ubuntuでは環境によってDNSの管理方法が異なるため、最初に状態を把握しておくと失敗しにくくなります。

この章では、初心者でも迷わないように 確認手順を順番に 解説します。

3.1 まずは症状を整理する(DNS問題かどうか)

「DNSの問題っぽい」と思っても、実はネットワークそのものが切れているケースもあります。
最初に、次の2つを切り分けるのがコツです。

  • IP通信はできているか?
  • 名前解決ができているか?

3.1.1 IP通信の確認(pingでIP宛てに打つ)

まずはIPアドレスに対してpingを打ちます。

ping -c 4 8.8.8.8
  • 返信が返ってくる → ネットワーク自体は動いている可能性が高い
  • 返信が返ってこない → DNS以前に 回線やルーティングの問題 の可能性

3.1.2 名前解決の確認(ドメイン宛てにping)

次に、ドメイン名でpingします。

ping -c 4 google.com
  • IPは通るのに、ドメインが通らない
    DNS(名前解決)が原因の可能性が高いです

この2ステップは非常に重要なので、トラブル時は必ずやってください。

3.2 /etc/resolv.conf を確認する(DNSの入口)

Linuxでは伝統的に、DNS設定は /etc/resolv.conf を見れば分かることが多いです。
Ubuntuでもまずここをチェックします。

cat /etc/resolv.conf

出力例(よくあるパターン):

nameserver 127.0.0.53
options edns0 trust-ad
search .

ここで 127.0.0.53 となっている場合、Ubuntuは多くの場合 systemd-resolved経由でDNSを使っている 状態です。

3.2.1 /etc/resolv.conf がリンクかどうか確認する

Ubuntuでは /etc/resolv.conf がシンボリックリンクになっていることが多いので、次も確認します。

ls -l /etc/resolv.conf

例:

lrwxrwxrwx 1 root root 39 ... /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

このように表示されるなら、/etc/resolv.conf は「実体」ではなく、別のファイルを参照しているだけです。

つまり、ここを直接編集しても、上書きされて意味がないことがあります。

3.3 systemd-resolvedの状態を確認する(中核をチェック)

Ubuntu 22.04/24.04では、DNSの管理が systemd-resolved になっていることが多いです。
DNS設定を正しく把握するには、ここを見るのが確実です。

3.3.1 resolvectl でDNS情報を確認する

Ubuntuでは resolvectl コマンドでDNS状態を確認できます。

resolvectl status

見るべきポイントは次の通りです。

  • DNS Servers:現在使っているDNSサーバー
  • Current DNS Server:実際に優先されているDNS
  • Link(インターフェース)ごとの設定:Wi-Fiや有線、VPNで違う場合がある

3.3.2 systemd-resolved が動いているか確認する

サービスの稼働状況も確認できます。

systemctl status systemd-resolved
  • active (running) → 稼働中
  • inactive / failed → 停止している、または異常

DNSが不安定なとき、ここが落ちていることもあります。

3.4 nmcli(NetworkManager)でDNSを確認する(Desktopで有効)

Ubuntu DesktopではNetworkManagerがDNSを管理していることが多いです。
GUIで設定している場合でも、CLIから確認できます。

nmcli dev show | grep -E 'IP4.DNS|IP6.DNS'

出力例:

IP4.DNS[1]:                             192.168.1.1
IP4.DNS[2]:                             1.1.1.1

この表示がある場合、DNSはNetworkManager側から配布されている可能性が高いです。

3.5 Netplan設定の有無を確認する(Serverで重要)

Ubuntu ServerではNetplanがDNS設定を持っていることが多いです。
まず、設定ファイルが存在するか確認します。

ls /etc/netplan/

例:

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

などが表示されます。

3.5.1 Netplan設定ファイルの中身を見る

cat /etc/netplan/*.yaml

DNS設定が書かれている場合は、次のような記述が見つかることがあります。

nameservers:
  addresses:
    - 1.1.1.1
    - 8.8.8.8

ここに書かれているなら、DNSの変更はNetplan側で行うのが基本です。

3.6 DNS設定が反映されないときに見るべきポイント

「設定したのに効かない」「すぐ戻る」という場合、よくある原因は次の通りです。

3.6.1 DHCPがDNSを上書きしている

DHCP(ルーターなど)から自動配布されたDNSが優先され、手動設定が上書きされるケースがあります。

3.6.2 VPNがDNSを切り替えている

VPN接続時は、DNSがVPN側のものに切り替わることがあります。
この場合、VPNを切ると元に戻るため「設定が効かない」と感じやすいです。

3.6.3 /etc/resolv.conf を直接編集している

Ubuntuでは /etc/resolv.conf が自動生成されることが多いため、直接編集しても

  • 反映されない
  • 再起動で戻る

という状態になります。

3.7 ここまでで分かる「あなたのUbuntuはどのタイプか」

ここまでの確認で、おおむね次のどれかに分類できます。

  • Desktop(GUI中心):NetworkManager管理の可能性が高い
  • Server(Netplan中心):NetplanでDNSを設定するのが基本
  • systemd-resolved中心127.0.0.53 が見える場合はこれ

次の章からは、実際にDNSを変更する手順に入ります。

4. Ubuntu DNS設定の基本(GUI / CLI)

UbuntuのDNS設定は、環境によって「どこで設定するのが正解か」が変わります。
ここでは初心者が迷わないように、まずは Desktop向け(GUI)Server向け(CLI) に分けて解説します。

DNS設定の目的は共通で、最終的には次の状態を作ることです。

  • Ubuntuが問い合わせるDNSサーバーを、意図したものに変更する
  • その設定が再起動後も残る(永続化する)

4.1 GUIを使ったDNS設定(Ubuntu Desktop)

Ubuntu Desktopでは、多くの場合 NetworkManager がネットワーク設定を管理しています。
そのため、GUIで設定するのが一番シンプルです。

4.1.1 設定画面からDNSを変更する手順

Ubuntuのバージョンやデスクトップ環境によって多少表示は違いますが、基本的な流れは同じです。

  1. 画面右上のネットワークアイコンをクリック
    ネットワークアイコン
  2. 「設定(Settings)⚙️」を開く
    設定(Settings)
  3. 「ネットワーク」または「Wi-Fi」を選択
    ネットワーク」または「Wi-Fi」を選択
  4. 接続中のネットワークの「歯車(設定)⚙️」を開く
  5. 「IPv4」タブを開く
  6. DNS の欄を編集する

ここで重要なのは、DNSを手動指定したい場合は以下を選ぶことです。

  • 「自動(DHCP)」 → 手動(Manual)
    または
  • 「DNS自動」 → オフにする
    「DNS自動」 → オフにする

このあたりの表記はUbuntuのUIによって変わりますが、「自動DNSを無効にして手動入力する」という考え方は共通です。

4.1.2 DNSサーバーの入力例(よく使われるもの)

DNS欄には、複数のDNSサーバーを入力できます。
入力形式はUIによって異なりますが、多くはカンマ区切りです。

例:

  • Cloudflare DNS
    1.1.1.1, 1.0.0.1
  • Google Public DNS
    8.8.8.8, 8.8.4.4

4.1.3 設定を反映させる方法

GUIで設定したあと、反映されない場合は次を試してください。

  • Wi-Fiを一度オフ→オン
  • 有線なら接続を切断→再接続
  • PCを再起動(最後の手段)

確認コマンド例:

resolvectl status

または

nmcli dev show | grep -E 'IP4.DNS|IP6.DNS'

4.1.4 GUI設定が向いているケース

次のような用途ならGUI設定が最も簡単です。

  • 普段使いのPC(Ubuntu Desktop)
  • 自宅Wi-FiでDNSを変更したい
  • 特定のネットワークだけDNSを変えたい

4.2 CLIを使ったDNS設定(Server / Desktop共通)

Ubuntu ServerではGUIがないため、CLIで設定するのが基本です。
また、Desktopでも「確実に永続化したい」「構成を明示したい」場合はCLI設定が役立ちます。

ここで初心者がつまずきやすいポイントは、UbuntuのDNS設定が

  • Netplan
  • systemd-resolved
  • NetworkManager

の組み合わせで動いていることがある点です。

この章では、まず systemd-resolved を使う基本パターン を扱います。

4.2.1 systemd-resolvedの設定ファイルを編集する

systemd-resolvedが有効な環境では、次の設定ファイルが中心になります。

  • /etc/systemd/resolved.conf

編集には nano を使うのが簡単です。

sudo nano /etc/systemd/resolved.conf

中身はコメントが多いですが、DNSを指定したい場合は次の項目を設定します。

例(CloudflareとGoogleを指定):

[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=1.0.0.1 8.8.4.4

ポイントは次の通りです。

  • DNS= がメインのDNS
  • FallbackDNS= は予備(メインが死んだ時に使われる)

4.2.2 設定を反映する(サービス再起動)

編集したら、systemd-resolvedを再起動します。

sudo systemctl restart systemd-resolved

反映確認:

resolvectl status

4.2.3 /etc/resolv.conf が期待通りにならない場合

Ubuntuでは /etc/resolv.conf がリンクになっていることが多く、次のような表示になります。

ls -l /etc/resolv.conf

もし stub-resolv.conf を指している場合、/etc/resolv.conf には

  • nameserver 127.0.0.53

のように表示されることがあります。

これは異常ではなく、「ローカルのsystemd-resolvedが受け口になっている」だけです。
実際のDNSサーバーは resolvectl status を見れば分かります。

4.2.4 CLI設定が向いているケース

次のような場合はCLIでの設定が向いています。

  • Ubuntu Server(GUIなし)
  • VPSでDNSを固定したい
  • 社内DNSや特定DNSを強制したい
  • 設定内容をファイルで管理したい

4.3 どの方法を選ぶべきか(初心者向け結論)

迷ったら、次の基準で選べばOKです。

  • Ubuntu Desktopで普段使い → GUI(ネットワーク設定)
  • Ubuntu Server / VPS → Netplan(次章で解説)
  • DNSが頻繁に変わる・複雑 → systemd-resolvedを理解して調整

次の章では、Ubuntu Serverで特に重要な Netplanを使ったDNS設定 を詳しく解説します。

5. Netplanを使ったDNS設定(主にサーバー向け)

Ubuntu Server(特に22.04/24.04)でDNS設定を行う場合、最も重要になるのが Netplan(ネットプラン) です。
Netplanは、ネットワーク設定をYAML形式のファイルで管理する仕組みで、IPアドレスやゲートウェイだけでなく DNSサーバーもここで指定できます

この章では、初心者でも「どこをどう編集すればいいか」が分かるように、順番に説明します。

5.1 Netplanとは?(Ubuntuのネットワーク設定の中心)

Netplanは、Ubuntuでネットワークを設定するための仕組みです。
設定ファイルを編集し、netplan apply を実行することで反映します。

Netplanを使うと、次のような設定をまとめて管理できます。

  • DHCP(自動設定)を使うかどうか
  • 固定IPを設定するか
  • ゲートウェイ(デフォルトルート)
  • DNSサーバー(今回のテーマ)

5.2 Netplanの設定ファイルはどこにある?

Netplanの設定ファイルは通常ここにあります。

/etc/netplan/

まずは一覧を確認します。

ls /etc/netplan/

よくあるファイル名例:

  • 00-installer-config.yaml
  • 01-netcfg.yaml
  • 50-cloud-init.yaml

VPSやクラウド環境では 50-cloud-init.yaml があることが多いです。

5.3 NetplanでDNSを設定する基本形(DHCP + DNS指定)

多くの環境では、IPアドレスはDHCPで自動取得しつつ、DNSだけ固定したいケースがあります。
その場合は次のような形になります。

5.3.1 設定例(DHCPを使いながらDNSだけ指定)

例として、インターフェース名が eth0 の場合を示します。

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: true
      nameservers:
        addresses:
          - 1.1.1.1
          - 8.8.8.8

ポイントはここです。

  • dhcp4: true → IPはDHCPで取得
  • nameservers.addresses → DNSサーバーを指定

5.3.2 設定ファイルを編集する手順

例:00-installer-config.yaml を編集する場合

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

編集後は保存して閉じます。

5.4 Netplanで固定IP + DNSを設定する(サーバー運用向け)

固定IP環境では、DNSも明示しておくのが一般的です。
例として、固定IPとゲートウェイも含めた形を紹介します。

5.4.1 設定例(固定IP + DNS)

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: false
      addresses:
        - 192.168.1.50/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 192.168.1.1
          - 1.1.1.1

ここでの考え方は次の通りです。

  • まずルーター(社内DNS)を優先
  • 次に外部DNS(Cloudflareなど)を予備として追加

5.5 Netplan設定で初心者がやりがちなミス

Netplanは便利ですが、YAML形式のため 書き方ミスで反映できない ことがあります。
よくある落とし穴をまとめます。

5.5.1 インデント(スペース)がズレている

YAMLはインデントが命です。
タブではなく スペース を使うのが基本です。

例えば、次は間違いになりやすい例です(インデント崩れ)。

network:
version: 2
ethernets:
  eth0:
    dhcp4: true

正しくはこうです。

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: true

5.5.2 インターフェース名が違う

eth0 ではなく、環境によっては次のような名前になっていることがあります。

  • ens33
  • enp0s3
  • enp1s0

確認方法:

ip link

または

ip a

5.5.3 cloud-initに上書きされる

VPSやクラウド環境では cloud-init がNetplan設定を自動生成している場合があります。
その場合、50-cloud-init.yaml を直接編集しても、将来の再生成で戻る可能性があります。

このケースでは、運用方針として

  • cloud-initを無効化する
  • 追加のNetplanファイルで上書きする

などの対応が必要になることがあります。

(初心者の場合は、まずは「戻る可能性がある」と知っておくだけでも十分です)

5.6 Netplanの設定を反映する方法

編集が終わったら、設定を反映します。

5.6.1 反映前にテストする(推奨)

いきなり適用するとSSH接続が切れることがあるため、サーバーではテストが安全です。

sudo netplan try

このコマンドは、一定時間内に確認できなければ元に戻る仕組みです。
SSH作業中にネットワークが落ちる事故を防げます。

5.6.2 設定を適用する

問題なければ適用します。

sudo netplan apply

5.7 DNS設定が反映されたか確認する

Netplan適用後は、次の方法で確認できます。

5.7.1 resolvectlで確認する(おすすめ)

resolvectl status

DNS Serversに設定した値が出ていればOKです。

5.7.2 名前解決ができるか確認する

ping -c 3 google.com

または dig が入っている場合:

dig google.com

5.8 NetplanでDNSを設定するべき理由(結論)

Ubuntu Server環境では、DNSを適当に /etc/resolv.conf へ書くよりも、Netplanで管理する方が確実です。

  • 永続化しやすい
  • 構成が明示される
  • 再起動やDHCP更新でも安定しやすい

次の章では、初心者が混乱しやすい /etc/resolv.conf の扱い方と注意点 を整理していきます。

6. /etc/resolv.conf の扱い方と注意点

UbuntuでDNS設定を調べていると、ほぼ必ず出てくるのが /etc/resolv.conf です。
しかしこのファイルは、Ubuntuの環境によっては 「編集しても意味がない」 ことがあります。

この章では、初心者がハマりやすいポイントを整理しつつ、どう扱うのが安全なのかを解説します。

6.1 /etc/resolv.conf とは何か?

/etc/resolv.conf は、Linuxで古くから使われてきた DNS設定ファイル です。
中身には、名前解決で使うDNSサーバーが書かれます。

典型的な内容はこうです。

nameserver 8.8.8.8
nameserver 1.1.1.1

このファイルを見れば、

  • 「このPCはどのDNSサーバーに問い合わせるのか」

が分かる、というのが昔からの基本でした。

6.2 Ubuntuでは /etc/resolv.conf が「実体ではない」ことがある

最近のUbuntu(22.04/24.04)では、/etc/resolv.conf自動生成される仕組み の一部になっていることが多いです。

つまり、あなたが編集したつもりでも、

  • 再起動
  • ネットワーク再接続
  • DHCP更新
  • VPN接続/切断

などで 勝手に書き換えられる ことがあります。

6.2.1 まずはリンクかどうか確認する

次のコマンドで確認できます。

ls -l /etc/resolv.conf

よくある例:

lrwxrwxrwx 1 root root 39 ... /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

このように表示された場合、/etc/resolv.conf は実ファイルではなく

  • systemd-resolvedが生成するファイル

を参照しているだけです。

6.3 nameserver 127.0.0.53 は異常ではない

UbuntuでDNSを確認すると、次のような表示を見て不安になる人が多いです。

nameserver 127.0.0.53

これは「ローカルループバック(自分自身)」を指しています。

ですが、これは故障ではありません。
Ubuntuが systemd-resolved を使っている場合、

  • 127.0.0.53(ローカルの受け口)
    → その先に本物のDNSサーバー(1.1.1.1など)

という構造になっているだけです。

この状態では、実際に使われているDNSサーバーは resolvectl で確認するのが確実です。

resolvectl status

6.4 /etc/resolv.conf を直接編集するのは推奨される?

結論としては、基本的に 推奨されません

理由はシンプルで、

  • すぐ上書きされる可能性が高い
  • 永続化しない
  • どこが管理しているのか分からなくなる

からです。

6.4.1 例:編集しても戻るパターン

「DNSを変えたい」と思ってこう書いても、

nameserver 1.1.1.1
nameserver 8.8.8.8

数分後や再起動後に勝手に戻ってしまうことがあります。

このとき初心者は

  • 「反映されない…なぜ?」
  • 「Ubuntuは壊れてる?」
  • 「自分のやり方が間違ってる?」

となりがちですが、単に 管理元が別にある だけです。

6.5 正しいDNS設定は「管理元」に合わせて行う

UbuntuでDNS設定を確実に変更するには、/etc/resolv.conf ではなく

  • Netplan
  • NetworkManager(GUI)
  • systemd-resolved

など、実際の管理元に合わせて設定するのが正解です。

ここまでの記事で紹介した通り、基本の方針は次の通りです。

  • Desktop → GUI(NetworkManager)
  • Server → Netplan
  • systemd-resolved中心 → /etc/systemd/resolved.conf

6.6 どうしても /etc/resolv.conf を一時的に変えたい場合

まれに、次のような状況で一時的に変更したいことがあります。

  • どうしても今すぐ名前解決を復旧させたい
  • 復旧作業中で、恒久設定より優先して動かしたい
  • あるDNSで動作確認だけしたい

この場合、注意点としては

  • あくまで一時対応
  • 再起動やネットワーク変更で戻る前提

で扱うのが安全です。

6.6.1 一時的に編集する(例)

sudo nano /etc/resolv.conf

例:

nameserver 1.1.1.1
nameserver 8.8.8.8

ただしこの方法は、環境によっては保存すらできない場合があります(リンク先が生成物のため)。

6.7 DNS設定が複雑になりやすいケース(注意)

UbuntuのDNS設定が特にややこしくなるのは、次のようなケースです。

6.7.1 VPN利用時

VPNを使うと、VPN側がDNSを強制することがあります。

  • VPN接続中だけ社内ドメインが引ける
  • VPNを切ると外部DNSに戻る

というのはよくある挙動です。

6.7.2 Dockerや仮想環境が絡む場合

Dockerや仮想環境は、独自のDNS設定を持つことがあります。

  • ホストでは解決できるのにコンテナ内では解決できない
  • 逆にコンテナ内だけ変なDNSになっている

というパターンもあります。

6.8 /etc/resolv.conf の扱い方(初心者向け結論)

初心者向けに結論をまとめると、こう考えるのが安全です。

  • /etc/resolv.conf は「確認用」として見る
  • DNSを変更するなら「管理元(GUI/Netplan/systemd-resolved)」で行う
  • 直接編集は、緊急時の一時対応に留める

次の章では、DNS設定の応用として「UbuntuをDNSサーバーとして使う」話を軽く紹介します。

7. DNSサーバーを構築する方法(応用)

ここまでの内容は「UbuntuのDNS設定=クライアント側の設定」でした。
つまり、Ubuntuが どのDNSサーバーへ問い合わせるか を決める話です。

一方で、少し応用的な使い方として

  • Ubuntu自身をDNSサーバーとして運用する

という選択肢もあります。

「ubuntu dns設定」というキーワードで検索する人の中には、

  • 家庭内ネットワークで名前解決を整理したい
  • 小規模オフィスで社内DNSを持ちたい
  • VPSで自分専用のDNSを動かしたい

という人も一定数いるため、記事に入れておくと網羅性が上がります。

7.1 UbuntuをDNSサーバーにするメリット

DNSサーバーを自前で用意すると、次のようなメリットがあります。

7.1.1 LAN内の機器を「名前」で管理できる

家庭や社内のネットワークでは、機器が増えるほど管理が面倒になります。

例:

  • NAS:192.168.1.10
  • プリンター:192.168.1.20
  • 開発サーバー:192.168.1.30

これをDNSで名前解決できるようにすると、

  • nas.local
  • printer.local
  • devserver.local

のように、人間が覚えやすい形でアクセスできます。

7.1.2 広告ブロック・フィルタリング用途にも使える

DNSサーバーを自前で運用すると、ドメイン単位で制御しやすくなります。

  • 特定の広告ドメインをブロック
  • 社内で危険サイトを引けないようにする
  • 子供用ネットワークの制限

といった使い方も可能です。

7.1.3 キャッシュDNSで高速化できることがある

DNSサーバーは問い合わせ結果をキャッシュできます。
同じドメインへのアクセスが多い環境では、体感的に名前解決が速くなる場合があります。

7.2 DNSサーバー運用でよく使われるソフト

UbuntuをDNSサーバーとして使う場合、代表的なのは次の2つです。

7.2.1 BIND9(王道・本格派)

BIND9は、DNSサーバーソフトの中でも定番です。

  • 権威DNS(ゾーン管理)に強い
  • 本格的な社内DNS運用向き
  • 設定項目が多く、初心者には少し難しい

7.2.2 Unbound(軽量・キャッシュDNS向き)

Unboundは比較的軽量で、キャッシュDNS用途に向きます。

  • キャッシュDNSとして使いやすい
  • 設定がシンプル
  • 小規模環境に向く

7.3 「DNSサーバー構築」は今回どこまでやるべきか?

この記事の主目的は「UbuntuのDNS設定(クライアント側)」なので、
DNSサーバー構築を深くやりすぎると話が広がりすぎます。

そのため、この記事では次のスタンスが最適です。

  • 「DNSサーバー構築も可能」という選択肢を提示する
  • 興味がある人向けに、別記事へ誘導する(内部リンク)

例:

  • 「UbuntuでBIND9を使ってDNSサーバーを構築する方法」
  • 「UnboundでキャッシュDNSを作る方法」

このように分けるとSEO的にも強くなります。

7.4 初心者がDNSサーバー構築で注意すべき点

DNSサーバー運用は便利ですが、注意点もあります。

7.4.1 外部公開するとセキュリティリスクがある

DNSサーバーをインターネットに公開する場合、設定を間違えると

  • 不正利用される(オープンリゾルバ問題)
  • DDoS攻撃の踏み台にされる

などのリスクがあります。

家庭内・社内だけで使うなら、外部公開しない設計が基本です。

7.4.2 DNSが落ちるとネットワーク全体が止まる

DNSはインフラなので、DNSサーバーが落ちると

  • Webが見れない
  • 更新できない
  • サービスが不安定

といった問題が一気に起きます。

そのため運用するなら、

  • DNSサーバーを2台にする
  • fallback DNSを設定する

などの対策が理想です。

7.5 応用のまとめ

UbuntuはDNS設定を変更するだけでなく、
用途によっては DNSサーバーとして運用することも可能です。

ただし本格運用は難易度が上がるため、

  • まずはクライアント側DNS設定を理解する
  • 必要になったらDNSサーバー構築に進む

という順番が安全です。

次の章では、実際に困っている人が多い「DNSが効かない・名前解決できない」問題の対処法をまとめます。

8. トラブルシューティング(よくある問題と解決策)

UbuntuのDNS設定は、正しく変更したつもりでも

  • 反映されない
  • すぐ元に戻る
  • 一部のサイトだけ開けない

といったトラブルが起きやすい分野です。

この章では「ubuntu dns設定」で検索する人が最も困りやすいポイントを、原因→確認→解決策の順番で整理します。
初心者でも切り分けできるように、できるだけ手順を具体化しています。

8.1 まずはDNS問題かどうか切り分ける

DNSが原因かどうかは、最初にここで判定できます。

8.1.1 IP宛てにpingが通るか確認

ping -c 3 8.8.8.8
  • 通る → 回線は生きている可能性が高い
  • 通らない → DNS以前にネットワーク接続自体が怪しい

8.1.2 ドメイン宛てにpingが通るか確認

ping -c 3 google.com
  • IPは通るのにドメインが通らない
    → DNS(名前解決)の問題の可能性が高いです

8.2 DNSが効かない(名前解決できない)

DNSが原因っぽい場合、次の順で確認していくと早いです。

8.2.1 現在のDNSサーバーを確認する

まずは、Ubuntuが実際に使っているDNSサーバーを確認します。

resolvectl status

ここで見るポイントは次の通りです。

  • DNS Servers: に意図したDNSが出ているか
  • Wi-Fi / 有線 / VPN など、LinkごとにDNSが違っていないか

8.2.2 /etc/resolv.conf を確認する

cat /etc/resolv.conf

もし次のようになっていても異常ではありません。

nameserver 127.0.0.53

これは systemd-resolved が受け口になっているだけで、
実際のDNSサーバーは resolvectl status を見て判断します。

8.2.3 一時的にDNSサーバーを変えて確認する

切り分けとして、「今のDNSが壊れているだけ」かどうかを確認します。

例:Cloudflare DNSへ変更(※永続化ではなく検証目的)

  • DesktopならGUIでDNSを 1.1.1.1 に変える
  • ServerならNetplanでDNSを変える

そして、次で確認します。

ping -c 3 google.com

これで直るなら、元のDNS(ルーターや社内DNS)側が原因の可能性があります。

8.3 DNS設定を変えたのに反映されない

この症状は非常に多いです。
原因はだいたい「編集した場所が違う」「上書きされている」です。

8.3.1 /etc/resolv.conf を編集している(上書きされる)

Ubuntuでは /etc/resolv.conf が自動生成されることが多いため、直接編集しても反映されないことがあります。

確認:

ls -l /etc/resolv.conf

リンクになっている場合、管理元を変える必要があります。

  • Desktop → GUI(NetworkManager)
  • Server → Netplan
  • systemd-resolved → resolved.conf

8.3.2 Netplanを編集したのに反映していない

Netplanは編集しただけでは反映されません。
必ず適用が必要です。

sudo netplan apply

サーバーなら安全のため、まずはこれが推奨です。

sudo netplan try

8.3.3 YAMLの書き方ミス(インデント崩れ)

Netplanが効かない原因として多いのがYAMLのインデントミスです。

確認するなら次のコマンドが役立ちます。

sudo netplan generate

ここでエラーが出るなら、YAMLが崩れています。

8.4 DNSが「すぐ元に戻る」

この場合、DNSがどこか別の仕組みで上書きされています。

8.4.1 DHCPがDNSを配っている

家庭や社内では、ルーターがDHCPでDNSを配布していることが多いです。

  • DNSを固定したいなら「自動DNSをオフ」にする必要があります
  • DesktopならGUIで「自動DNS」を無効にするのが基本です

8.4.2 VPNがDNSを強制している

VPN接続中だけDNSが変わることがあります。

確認方法:

  • VPN接続中と切断後で resolvectl status を比較する

VPN接続時にだけ名前解決が変になる場合は、DNSがVPN側へ切り替わっている可能性が高いです。

8.5 一部のサイトだけ開けない/更新だけ失敗する

「ネットは動くけど一部だけおかしい」場合、DNS以外の要因も絡みます。

8.5.1 IPv6が原因で遅い・失敗する場合

環境によっては、IPv6が中途半端に使える状態になり

  • 名前解決はできる
  • でも通信が不安定

ということがあります。

この場合は、IPv6を無効化して改善するケースもありますが、
ネットワーク全体に影響するため慎重に判断してください。

8.5.2 キャッシュが悪さをしている場合

systemd-resolvedがキャッシュを持っている場合、
古い情報が残っているように見えることがあります。

キャッシュをクリアしたい場合は次を試します。

sudo resolvectl flush-caches

その後、再確認します。

resolvectl status

8.6 apt update が失敗する(名前解決エラー)

Ubuntuでよくあるのがこれです。

  • Temporary failure in name resolution
  • Could not resolve ...

この場合はDNSの問題である可能性が高いです。

確認すべき流れは次の通りです。

  1. IP宛てping(8.8.8.8)
  2. ドメイン宛てping(google.com)
  3. resolvectl status でDNS確認
  4. DNSを別のものに変更して再試行

8.7 トラブル時の最短チェックリスト(初心者向け)

最後に、困ったときの最短手順をまとめます。

  1. IPは通る?ping -c 3 8.8.8.8
  2. ドメインは通る?ping -c 3 google.com
  3. DNSサーバーは何になってる?resolvectl status
  4. Netplanを使ってる?ls /etc/netplan/
  5. 設定したなら反映した?sudo netplan apply

これだけで、DNS問題の大半は切り分けできます。

9. まとめ

この記事では、検索キーワード 「ubuntu dns設定」 をテーマに、UbuntuでDNS設定を確認・変更する方法を、初心者にも分かりやすいように整理して解説しました。

DNSは「ネットワークがつながっているのにWebが開けない」「更新が失敗する」といった問題の原因になりやすく、Ubuntuを使うなら避けて通れない重要ポイントです。

9.1 UbuntuのDNS設定は「環境によって正解が変わる」

UbuntuのDNS設定が分かりにくい理由は、設定場所が1つではないからです。

代表的には次の3パターンがあります。

  • Ubuntu Desktop(GUIあり)
    → NetworkManager(設定画面)でDNSを変更するのが基本
  • Ubuntu Server(GUIなし)
    → Netplan(YAMLファイル)でDNSを管理するのが基本
  • systemd-resolvedが中心の環境
    /etc/systemd/resolved.confresolvectl が重要

「どれが正しいか」ではなく、あなたのUbuntuがどの構成なのかを先に確認することが成功のコツです。

9.2 /etc/resolv.conf は「編集するより確認用」として使うのが安全

DNS設定でよく登場する /etc/resolv.conf は、Ubuntuでは自動生成されている場合があります。

そのため、

  • 直接編集しても反映されない
  • 再起動すると元に戻る

ということが起きます。

初心者の場合は、次のように考えると安全です。

  • /etc/resolv.conf は基本「確認用」
  • DNSを変えるなら「管理元(GUI / Netplan / resolved)」で変更する

9.3 トラブル時は「IP通信」と「名前解決」を分けて確認する

DNSの問題は、ネットワーク全体の問題と混ざりやすいです。
切り分けの基本はこの2ステップでした。

  • IP宛てping(ネットワーク自体の確認)
  • ドメイン宛てping(DNSの確認)

この2つをやるだけで、原因の方向性がかなり絞れます。

9.4 この記事の結論(初心者向けの最短ルート)

迷ったら、次の方針が最短です。

  • DesktopならGUIでDNSを変更
  • ServerならNetplanでDNSを設定
  • 状況確認は resolvectl status が確実

そして、DNSを変えたら最後に必ず

  • 名前解決ができるか(ping google.com など)
  • 設定が永続化しているか(再接続・再起動後)

をチェックすると安心です。

9.5 次にやるべきこと(おすすめ)

ここまで理解できたら、次のステップとして以下もおすすめです。

  • よく使うDNS(Cloudflare / Googleなど)を目的別に選ぶ
  • VPSや社内環境ならNetplan設定をテンプレ化して管理する
  • DNSトラブル用の確認コマンドをメモしておく

DNSは「一度分かるとずっと使える知識」なので、ここで整理しておくと後々かなり楽になります。

FAQ(よくある質問)

1. UbuntuでDNS設定を変更したのに反映されません。原因は何ですか?

最も多い原因は、設定した場所がUbuntuの管理元と一致していないことです。

よくあるパターンは次の通りです。

  • /etc/resolv.conf を直接編集したが、systemd-resolvedやNetworkManagerに上書きされた
  • Netplanを編集したが、netplan apply を実行していない
  • GUIで設定したが、自動DNS(DHCP)が有効のままで上書きされている

まずは次で「実際に使われているDNS」を確認するのが確実です。

resolvectl status

2. /etc/resolv.conf を直接編集しても大丈夫ですか?

結論として、恒久的な設定としてはおすすめできません

Ubuntuでは /etc/resolv.conf が自動生成されることが多く、

  • 再起動
  • ネットワーク再接続
  • DHCP更新

などで元に戻る可能性があります。

どうしても緊急対応で一時的に変更したい場合だけ使い、
本格的な設定は GUI / Netplan / systemd-resolved 側で行うのが安全です。

3. nameserver 127.0.0.53 と表示されますが異常ですか?

異常ではありません。
これはUbuntuが systemd-resolved を使っている場合によくある表示です。

127.0.0.53 は「自分自身(ローカル)」を指しており、
実際にはその先で

  • 1.1.1.1
  • 8.8.8.8
  • ルーターのDNS

などに問い合わせています。

実際のDNSサーバーを確認したい場合は、次が確実です。

resolvectl status

4. Ubuntu DesktopとUbuntu ServerではDNS設定方法が違いますか?

はい、違います。

  • Ubuntu Desktop:GUI(NetworkManager)で変更するのが一般的
  • Ubuntu Server:Netplan(YAML設定)で変更するのが一般的

ただし「DNSとは何か」「名前解決の仕組み」という意味では共通です。

5. DNSサーバーはどれを使うのがおすすめですか?

目的によって変わりますが、一般的に使われるのは次の2つです。

  • Cloudflare DNS1.1.1.1 / 1.0.0.1
  • Google Public DNS8.8.8.8 / 8.8.4.4

まずはどちらかに設定して、名前解決が安定するか試すのが現実的です。
社内ネットワークの場合は、社内DNSが必要なケースもあるので注意してください。

6. DNSを変えたらインターネットが遅くなることはありますか?

あります。DNSは通信そのものではなく「最初の名前解決」に関わるため、
状況によっては体感速度が変わることがあります。

ただし、遅さの原因がDNSではなく

  • 回線品質
  • Wi-Fiの電波
  • サーバー側の混雑

であることも多いので、DNSだけで全て解決するわけではありません。

7. apt update が失敗して「名前解決できない」と出ます。DNSが原因ですか?

可能性は高いです。
次の2つを確認すると切り分けできます。

ping -c 3 8.8.8.8
ping -c 3 google.com
  • IP宛ては通るのに、ドメインが通らない
    → DNSが原因の可能性が高いです

その場合は resolvectl status でDNSサーバーを確認し、DNS設定を見直してください。

8. DNS設定を変更したら、VPNや社内ネットワークに影響しますか?

影響することがあります。

特にVPNでは、接続時にDNSがVPN側へ切り替わることがあり、

  • 社内ドメインはVPN接続中だけ解決できる
  • VPNを切ると外部DNSに戻る

という挙動になることがあります。

VPNを使う場合は、DNSを固定しすぎると逆に不便になるケースもあるため、用途に合わせて調整するのがおすすめです。

9. DNSキャッシュを消したいときはどうすればいいですか?

systemd-resolvedを使っている場合は、次でキャッシュを削除できます。

sudo resolvectl flush-caches

DNSを変更したのに古い情報が残っているように見える場合は、この操作で改善することがあります。

10. DNS設定が正しくできたか最終確認する方法はありますか?

次の3つをやっておくと安心です。

  1. DNSサーバー確認
resolvectl status
  1. 名前解決の確認
ping -c 3 google.com
  1. 更新系コマンドの確認
sudo apt update

これで問題なければ、DNS設定はほぼ正常です。