web-dev-qa-db-ja.com

Ubuntu 12.04-ホスト名を解決できません

Ubuntu 12.04をインストールした小さなdediサーバーがあります。デスクトップがインストールされているので、x2go経由でアクセスします。

2日前まではすべて正常に動作し、再起動後にインターネットアクセスが失われ、「ホスト名を解決できません」というエラーが表示され始めました。

Googleにpingしようとすると、次のようになります:

ping: unknown Host google.com

いくつかのサイトにアクセスするために、それらをhostsファイルに追加しましたが、ほとんどのサイトでは機能しますが、すべてではありません。もちろん、これは単なる一時的な解決策です。

「システム設定-ネットワーク」を調べると、次のようになります。

私はあまり有能ではないので、他にどのような情報を投稿すればよいかわかりませんが、私が知りたいことは何でも聞いてください。

ありがとうございました。

5
Threshold

問題は純粋にDNSに関連しています。 / etc/resolv.confファイルにDNSネームサーバーエントリがなかったため、/ etc/hostsエントリ外のホストにホスト名でpingを実行しているときに名前解決が失敗していました。

Ubuntu 12.04では、Network Managerパッケージは、ネットワーク関連機能を提供します(古いnetworkingプログラムではなく)resolvconf(およびdnsmasqある程度)大量のDNS機能を提供するプログラム。しかし驚くべきことに、あなたの場合はresolvconfがインストールされていないため、/ etc/resolv.confファイルを手動で更新する必要があります。

コマンドを実行することで

echo "nameserver 8.8.8.8" | Sudo tee /etc/resolv.conf

基本的に、Googleの無料DNSサーバー(8.8.8.8)をネームサーバーとして設定しています。

このコマンドは、テキスト「nameserver 8.8.8.8」を「/etc/resolv.conf」ファイルに挿入し、画面にもテキストを表示します。このようにして、ホスト名をIPアドレスに解決する作業用の名前リゾルバがあります。

ここで注意すべき非常に重要なことは、GoogleのDNSを使用していることです。これは理想的ではありません。ISPのDNSを使用する必要があります。 ISPにDNSアドレス(複数の場合もあります)を提供するよう依頼し、ネームサーバーとしてアドレスを追加します。ただし、ISPのDNSが何らかの理由で失敗した場合のバックアップとして、GoogleのDNSを保持できます。 ISPのDNSがvv.xx.yy.zzであると仮定します。したがって、次のコマンドを実行してプライマリDNSとして作成し、GoogleのDNSをバックアップとして保持する必要があります。

echo "nameserver vv.xx.yy.zz" | Sudo tee /etc/resolv.conf && echo -e "nameserver 8.8.8.8" "\nnameserver 8.8.4.4" | Sudo tee -a /etc/resolv.conf

teeコマンドの-aスイッチを参照してください。これは、上書きではなく追加に使用されます。ここで、8.8.4.4はGoogleのDNSでもあります。

/ etc/resolv.confに必要な数だけネームサーバーを追加できますが、それはやり過ぎです。シンプルでコンパクトなままにしてください。

9
heemayl