
新Linux入門|/etc/resolv.confファイルによるDNS設定と管理
今回は、Linuxでネットワーク通信を行ううえで欠かせない仕組みである。
DNS(Domain Name System) の設定を行うファイル、
/etc/resolv.conf について解説します✨
DNSは、インターネットの「住所帳」のような存在で、
ホスト名(例:www.google.com)をIPアドレス(例:142.250.196.68)に変換してくれる仕組みです。
この変換を名前解決と呼びます。
Linuxでは、どのDNSサーバーを使うか、どのドメインを検索対象とするかを
/etc/resolv.confファイル に設定します。

🌐 /etc/resolv.confとは?
/etc/resolv.conf ファイルは、LinuxシステムがDNSを利用してホスト名を解決する際に参照する設定ファイルです。
ネットワーク通信のたびに、システムはこのファイルを見て「どのDNSサーバーに問い合わせるか」を判断します。
| 項目 | 内容 |
|---|---|
| ファイルの場所 | /etc/resolv.conf |
| 主な役割 | DNSサーバー情報を設定する |
| ファイル形式 | キーワード+値のペア形式 |
| 設定反映方法 | ネットワーク再起動または自動反映 |
| 管理主体 | NetworkManager または systemd-resolved(環境による) |
💬 AlmaLinux 9.6 では、NetworkManagerが自動的にこのファイルを生成・管理するため、
手動で書き換えた場合は上書きされることがあります。
🗂️ ファイルの基本構成
/etc/resolv.conf ファイルは以下のような形式で記述されます👇
nameserver [DNSサーバーのIPアドレス]
domain [ローカルドメイン名]
search [検索ドメイン名]
options [オプション]| キーワード | 説明 |
|---|---|
| nameserver | 使用するDNSサーバーのIPアドレスを指定(複数指定可) |
| domain | ローカルドメイン名を指定(省略可能) |
| search | 名前解決時に自動的に追加される検索ドメイン名を指定 |
| options | タイムアウトやリトライ回数などの動作を設定 |
📘 各行の構文は「キーワード」と「値」の組み合わせで構成され、
空白やタブで区切られています。
🧩 /etc/resolv.confの実例
以下は、典型的な設定例です。
[suzuki@AlmaLinux ~]$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4
search example.local
options timeout:2 attempts:3💬ポイント
- 8.8.8.8 と 8.8.4.4 はGoogleのDNSサーバー。
- search example.local により、web1 と入力すると自動的に web1.example.local が補完されます。
- options timeout:2 attempts:3 は、「2秒待って応答がなければ3回まで再試行」という意味です。
🧠 DNSクエリの流れ
名前解決の流れを簡単にまとめると、次のようになります。
1️⃣ アプリケーション(例:ping, curlなど)がホスト名を要求
2️⃣ システムはまず /etc/hosts を参照
3️⃣ 次に /etc/resolv.conf に基づき DNS サーバーに問い合わせ
4️⃣ DNSサーバーがIPアドレスを返す
💬ポイント
/etc/hosts がローカル優先、/etc/resolv.conf が外部問い合わせに使われます。
これらの順序は /etc/nsswitch.conf の設定で制御されています。
⚙️ 設定の反映方法
通常、/etc/resolv.conf の変更は即時反映されますが、
NetworkManagerが管理している環境では、再起動が必要な場合もあります。
変更を反映する方法
[root@AlmaLinux ~]# systemctl restart NetworkManagerまたは、ネットワークインターフェース単位で反映する場合
[root@AlmaLinux ~]# nmcli networking off
[root@AlmaLinux ~]# nmcli networking on💡ポイント
再起動しなくても、NetworkManagerが設定を自動で更新することがあります。
🔍 動作確認コマンド
設定が正しく反映されているかを確認するには、
dig または nslookup コマンドを使用します。
✅ digコマンド
[suzuki@AlmaLinux ~]$ dig www.google.com主な出力例
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 30 IN A 142.250.196.68
;; SERVER: 8.8.8.8#53(8.8.8.8)💬ポイント
「SERVER」の行で、どのDNSサーバーが問い合わせに使われたかを確認できます。
✅ nslookupコマンド
[suzuki@AlmaLinux ~]$ nslookup www.google.com
Server: 10.0.2.3
Address: 10.0.2.3#53
Non-authoritative answer:
Name: www.google.com
Address: 142.250.206.228
Name: www.google.com
Address: 2404:6800:400a:804::2004💡ポイント
こちらもシンプルにDNSサーバーの動作確認が可能です。
📜 digコマンドの解説
| 項目 | 内容 |
|---|---|
| コマンド | dig |
| 読み方 | Domain Information Groper |
| 主な用途 | DNSサーバーへ直接問い合わせ、応答を確認する |
| 使用権限 | 一般ユーザーでOK |
| オプション | 説明 |
|---|---|
| @サーバー | 問い合わせ先のDNSサーバーを指定(例:@8.8.8.8) |
| +short | 結果を簡潔に表示 |
| -x | 逆引き(IP → ホスト名)を実行 |
| +trace | ルートサーバーからの問い合わせ経路を表示 |
⚠️ 注意点
/etc/resolv.conf は便利ですが、AlmaLinux 9.6では
NetworkManager や systemd-resolved が自動生成・上書きすることがあります。
| 注意項目 | 内容 |
|---|---|
| 1 | NetworkManagerがこのファイルを再生成する可能性あり |
| 2 | 永続的に設定したい場合は「nmcli」で設定するのが推奨 |
| 3 | domain と search の併用に注意(両方指定した場合、searchが優先) |
| 4 | DNS設定の誤りはネットワーク通信全体に影響する可能性あり |
💡ポイント
手動編集する前に、nmcli device show コマンドで
現在のDNS設定を確認しておくのが安全です。
✅ まとめ
- /etc/resolv.conf は DNSサーバーの設定ファイル
- nameserver, search, options などを指定して名前解決を制御
- 設定変更は即時反映されるが、NetworkManagerが管理している場合は注意
- dig や nslookup で動作確認を行うのが基本
🌟ポイント
DNSの設定は、ネットワーク通信の「土台」になる大切な部分です。
正しく設定することで、ホスト名の解決がスムーズになり、
AlmaLinuxのネットワーク環境がより安定します!
