web-dev-qa-db-ja.com

間違ったDNS問題を修正するために、resolv.confファイルを編集する必要がありますか?

Ubuntuマシンが間違ったDNSサーバーを使用するという問題があります。何らかの理由で、マシンはlocalhostにDNS情報を照会します。

ネットワーク設定GUIにDNSサーバーを追加しましたが、/etc/resolv.confにはまだDNSサーバーアドレスとして127.0.0.1が含まれています。今、私は自分でファイルを編集するだけでいいと思っていましたが、手動でファイルを編集するべきではないと明示的に述べています。

ここで、ネットワーク設定GUIが正しい設定でファイルを生成しなかったので、新しいresolv.confファイルを自分で生成するにはどうすればよいですか?

35
Ahatius

これまでに投稿された回答のどれも対処していないのは、ローカルネームサーバーが実行されていると仮定して、nameserver 127.0.0.1/etc/resolv.confが含まれていることを質問者が理解できないという外観です。また、Ubuntu 12.04デスクトップでは、デフォルトでローカルネームサーバーが実行されています。つまり、127.0.0.1をリッスンするNetworkManagerによって制御されるdnsmasqプロセスがあります。 Ubuntu 12.10では、リスンアドレスが127.0.1.1に変更されました。

したがって、解決策はresolv.confに変更を加えないことです。質問者がローカルネームサーバーを使用することを想定している場合、それは正しいです。

ネームサービスが機能していない場合、ローカルネームサーバーに正しい転送アドレスが与えられていないか、他のネットワークの問題があります。

質問者は「ネットワーク設定GUI」を使用して「正しい設定でファイルを生成」しようとしましたが、これは機能しませんでした。これが何を意味するのか正確にはわかりませんが、ネームサーバーアドレスを入力して正しいタイミングでresolv.confになる正しい方法を以下に示します。私は、質問者がNetworkManagerではなくifupを使用してインターフェースを構成していると仮定します。

ほとんどの場合、インターフェイスはDHCPプロトコルを使用して構成されます。その場合、ローカルシステムで何も設定する必要はありません。 DHCPサーバーは、クライアントが使用するネームサーバーアドレスを認識し、この情報をDHCPクライアントに送信します。DHCPクライアントはこれをNetworkManagerに送信し、resolvconfに送信し、情報をresolv.confに入れます。したがって、この場合、構成が必要なのはDHCPサーバーです。

ローカルマシンのネットワークインターフェースが静的に構成されている場合、正しいネームサーバーアドレスをNetworkManagerに入力する必要があります(例:ネットワークインジケータ|接続を編集... |ワイヤレス| myconnection |編集... | IPv4設定|追加のDNSサーバー。

ローカルネームサーバーが正しく機能していない可能性があります。その場合、質問者は/etc/NetworkManager/NetworkManager.confを編集する必要があります

Sudo gedit /etc/NetworkManager/NetworkManager.conf

行をコメントアウトします

dns=dnsmasq

「[main]」セクション。行をコメントアウトするには、行の先頭に#を付けてからファイルを保存します。次に、network-managerを再起動します。

Sudo restart network-manager

この後、127。*アドレスではなくresolv.confに非ローカルネームサーバーアドレスが入力されます。

質問者がNetworkManagerではなくifupを使用してネットワークインターフェイスを構成している場合、- jmartin2279の答え が正しい:jmartin2279で説明した方法でネームサーバーアドレスを/ etc/network/interfacesに追加する必要があります。

他のいくつかの答えが助言するものとは反対に、一般的にはnotnameserverdomain、またはsearchオプションを追加する必要があります/etc/resolvconf/resolv.conf.d/のファイルに。それらの答えに対する私のコメントをご覧ください。

40
jdthood

Ifupを使用してインターフェースを静的に構成している場合は、/ etc/network/interfacesファイルに追加できます。

ターミナルを開き、次を入力します。

Sudo gedit /etc/network/interface*

次のように表示されるはずです。

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

編集先:

auto eth0
iface eth1 inet static
address 192.168.1.10 
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8

独自のネットワーク情報を使用します。これにより、DNSを設定できます。ここで複数のDNSサーバーを使用できます。

dns-nameservers 8.8.8.8 8.8.4.4

これを実行した後、実行します

ifdown eth0
ifup eth0
18
jmartin2279

Ubuntu 12.04では、resolv.confの処理が変更されました。

独自のネームサーバーアドレスを追加する場合は、/ etc/resolvconf/resolv.conf.d/headファイルを編集します

Sudo nano /etc/resolvconf/resolv.conf.d/head

そこにネームサーバーを追加します(例:Google open dns)

nameserver 8.8.8.8

ファイルを保存してから実行する

Sudo resolvconf -u

再起動などはありません。たぶん、ネットワークマネージャーを再起動する必要があります

Sudo service network-manager restart

できた.

コマンドでテストできます

nslookup www.google.com

結果は次のようになります

Server: 8.8.8.8
Address: 8.8.8.8#53
11
NickTux

/etc/resolv.confにさらにエントリを追加するには、/etc/resolvconf/resolv.conf.d/tailファイルを作成してそこに追加します。

ただし、/etc/resolv.conf127.0.0.1が含まれている場合、/etc/resolvconf/resolv.conf.d/tailにエントリを追加しても何も変わりません。 NetworkManagerでDNSサーバーのアドレスを静的に設定する必要があります。NetworkManagerは、127.0.0.1をリッスンするdnsmasqに送信します。

静的インターフェイスのDNS構成は、dns-nameserversの適切なifaceスタンザに追加される「dns-search」、「dns-domain」、および「/etc/network/interfaces」エントリとして設定する必要があります。

詳細については、 this を参照してください。

`さらに:

DNSを設定するgnome-network-adminという名前のGUIツールをインストールできます。それを試してみてください :

Sudo apt-get install gnome-network-admin
1
user61928