ウェブサイト検索

「名前解決の一時的な失敗」問題の解決方法


ウェブサイトに ping したり、システムを更新したり、アクティブなインターネット接続が必要なタスクを実行しようとすると、端末に「名前解決の一時的な失敗」というエラー メッセージが表示されることがあります。

たとえば、Web サイトに ping を実行しようとすると、次のようなエラーが発生する可能性があります。

tecmint@ubuntu:~$ ping google.com
ping: linux-console.net: Temporary failure in name resolution

これは通常、名前解決エラーであり、DNS サーバーがドメイン名をそれぞれの IP アドレスに解決できないことを示します。これにより、Linux システム上でソフトウェア パッケージを更新、アップグレード、さらにはインストールできなくなるため、重大な課題が生じる可能性があります。

この記事では、「名前解決の一時的な失敗」エラーの原因のいくつかと、この問題の解決策について説明します。

1. resolv.conf ファイルが見つからないか、正しく構成されていない

/etc/resolv.conf ファイルは、Linux システムのリゾルバー構成ファイルです。これには、Linux システムがドメイン名を IP アドレスに解決するのに役立つ DNS エントリが含まれています。

このファイルが存在しない場合、または存在しても名前解決エラーが発生する場合は、root 権限を持つテキスト エディタで /etc/resolv.conf ファイルを作成するか、開きます。

sudo nano /etc/resolv.conf
OR
sudo vim /etc/resolv.conf

次に、nameserver キーワードに続けて DNS サーバーの IP アドレスを指定して、Google のパブリック DNS サーバーを追加します。

nameserver 8.8.8.8
nameserver 8.8.4.4

変更を保存し、 図に示すようにsystemd-resolved サービスを再起動します。

sudo systemctl restart systemd-resolved.service

リゾルバーのステータスをチェックし、リゾルバーがアクティブで期待どおりに実行されていることを確認することも賢明です。

sudo systemctl status systemd-resolved.service

次に、任意の Web サイトに ping を実行すると、問題が解決されるはずです。

ping google.com

ネットワーク接続を確認したら、ネットワーク管理ツールによって上書きされないように、/etc/resolv.conf ファイルを必ず編集してください。

これを行うには、/dev/null へのシンボリック リンクを作成します。

sudo ln -sf /dev/null /etc/resolv.conf

: 一部の Linux ディストリビューション、特にNetworkManager を使用する Linux ディストリビューションでは、/etc/resolv.conf ファイルが自動的に管理される場合があります。その場合、ファイルを手動で編集しても永続的な効果が得られない可能性があります。

代わりに、特定のディストリビューションに適切なネットワーク管理ツールまたは構成ファイルを使用して DNS 設定を構成する必要がある場合があります。このような場合に推奨される DNS 構成方法については、必ずディストリビューションのドキュメントまたはサポート リソースを参照してください。

2. ファイアウォールの制限

最初の解決策がうまくいかなかった場合は、ファイアウォールの制限により DNS クエリを正常に実行できない可能性があります。ファイアウォールを調べて、ポート 53 (DNS – ドメイン名解決に使用) とポート 43 (whois ルックアップに使用) が開いているかどうかを確認します。ポートがブロックされている場合は、次のようにポートを開きます。

UFW ファイアウォールで DNS ポートを開く

Debian ベースのディストリビューションでは、以下のコマンドを実行して、UFW ファイアウォールのポート 5343 を開く必要があります。

sudo ufw allow 53/tcp
sudo ufw allow 43/tcp
sudo ufw reload

ファイアウォールで DNS ポートを開くD ファイアウォール

RHEL ベースのディストリビューションでは、以下のコマンドを実行して、Firewalld ファイアウォールのポート 5343 を開く必要があります。

sudo firewall-cmd --add-port=53/tcp --permanent
sudo firewall-cmd --add-port=43/tcp --permanent
sudo firewall-cmd --reload

名前解決の一時的な失敗」エラーと、それをいくつかの簡単な手順で修正する方法について理解していただければ幸いです。いつものように、皆様からのフィードバックは大変ありがたく思っております。