Ubuntuで apt update
や ping archive.ubuntu.com
を実行した際に、次のようなエラーが出ることがあります。
E: Failed to fetch http://archive.ubuntu.com/... Temporary failure resolving 'archive.ubuntu.com'
このエラーは「ホスト名をIPアドレスに変換できない」、すなわちDNSの名前解決がうまくいっていないことを示しています。この記事では、その原因と修正方法を解説します。
エラーの原因
- DNS(名前解決)サーバにアクセスできていない
- ローカルのDNSキャッシュが動作していない
- プロキシやVPNなど特殊なネットワーク環境により名前解決が失敗している
ネットワーク接続とDNSの切り分け
まず、インターネットに接続できているかを確認します。
ping -c 4 8.8.8.8
このコマンドで応答がある場合は、ネットワーク接続は正常です。DNS設定に問題があると考えられます。
DNS設定の確認
現在のDNS設定を確認するには、次のコマンドを使用します。
cat /etc/resolv.conf
出力例:
nameserver 127.0.0.53
このように表示される場合、Ubuntuでは systemd-resolved によってDNSキャッシュが動作しており、実際のDNSサーバは別に設定されています。
DNSの修正方法(systemd-resolvedを利用している場合)
- 設定ファイルを開きます。
sudo nano /etc/systemd/resolved.conf
- [Resolve] セクションを以下のように編集します。
[Resolve]
DNS=8.8.8.8 1.1.1.1
FallbackDNS=8.8.4.4
Google DNS(8.8.8.8)や Cloudflare DNS(1.1.1.1)など、信頼性の高いDNSサーバを指定します。
- 設定を保存後、systemd-resolvedを再起動します。
sudo systemctl restart systemd-resolved
一時的な対応方法
再起動すると元に戻ることがありますが、応急処置として直接 /etc/resolv.conf
を書き換えることも可能です。
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
この方法はすぐに効果がありますが、永続化するには systemd-resolved の設定を正しく行う必要があります。
動作確認
DNSが機能しているかを確認するには、次のコマンドを使います。
ping archive.ubuntu.com
その後、apt update が正常に動作するか確認します。
sudo apt update
まとめ
確認項目 | 実行内容 |
---|---|
ネット接続確認 | ping 8.8.8.8 |
DNS設定の確認 | cat /etc/resolv.conf |
systemd-resolvedの設定修正 | /etc/systemd/resolved.conf にDNSを指定 |
DNS反映 | sudo systemctl restart systemd-resolved |
一時対応 | /etc/resolv.conf に直接設定 |
補足:VPNやプロキシ環境を使用している場合
VPNや企業ネットワークでは独自のDNSが指定されていることがあります。上記の手順を行っても解決しない場合は、ネットワーク管理者に確認しましょう。
おわりに
DNSの名前解決エラーは、適切な設定を行うことで簡単に解決できるケースが多いです。特に仮想環境やプロキシ配下では問題が起こりやすいため、ネットワーク設定を丁寧に確認することが重要です。
コメント