ubuntu2204_resolv_conf
2026-02-27 by Gemini & I.Ishimaru
Ubuntu 22.04 で /etc/resolv.conf が 127.0.0.53 に戻るのを防ぐ
Ubuntu 22.04 では、systemd-resolved や resolvconf パッケージの影響で、/etc/resolv.conf を編集しても再起動時に nameserver 127.0.0.53 へ書き換えられてしまう。これを物理的に固定する方法。
1. 現在の状態を確認
現在の resolv.conf がシンボリックリンク(参照)かどうかを確認する。
# ls -l /etc/resolv.conf (結果例: /etc/resolv.conf -> ../run/resolvconf/resolv.conf)
2. 自動生成されるリンクを削除
OSによる自動更新を止めるため、現在のリンクファイルを削除する。
# rm /etc/resolv.conf
3. 固定用のファイルを新規作成
実体ファイルとして作成し、使用したいDNSサーバーを記述する。
# vi /etc/resolv.conf
*** 記述内容例 nameserver 8.8.8.8 nameserver 8.8.4.4
4. ファイルを物理的に保護(書き換え禁止)
root 権限やシステムサービスによる上書きを防止するため、不変属性 (Immutable bit) を付与する。
# chattr +i /etc/resolv.conf
5. 動作確認
nslookup を実行し、Server が指定した IP になっているか確認する。
# nslookup iscb.net Server: 8.8.8.8 Address: 8.8.8.8#53
補足:設定を変更したくなった場合
属性がついたままだと編集できないため、一時的にロックを解除する必要がある。
- ロック解除: # chattr -i /etc/resolv.conf
- 再ロック: # chattr +i /etc/resolv.conf
用語解説
- シンボリックリンク
- Windowsのショートカットのようなもの。実体は別の場所にある。
- chattr +i (不変属性)
- ファイルを「絶対に編集・削除できない状態」にするコマンド。rootでも解除するまで操作不能になる。
- 127.0.0.53
- systemd-resolved が提供するローカルスタブリゾルバ(DNSの中継役)のIP。