Ubuntuマシンが間違ったDNSサーバーを使用するという問題があります。何らかの理由で、マシンはlocalhost
にDNS情報を照会します。
ネットワーク設定GUIにDNSサーバーを追加しましたが、/etc/resolv.conf
にはまだDNSサーバーアドレスとして127.0.0.1
が含まれています。今、私は自分でファイルを編集するだけでいいと思っていましたが、手動でファイルを編集するべきではないと明示的に述べています。
ここで、ネットワーク設定GUIが正しい設定でファイルを生成しなかったので、新しいresolv.conf
ファイルを自分で生成するにはどうすればよいですか?
これまでに投稿された回答のどれも対処していないのは、ローカルネームサーバーが実行されていると仮定して、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に追加する必要があります。
他のいくつかの答えが助言するものとは反対に、一般的にはnotnameserver
、domain
、またはsearch
オプションを追加する必要があります/etc/resolvconf/resolv.conf.d/
のファイルに。それらの答えに対する私のコメントをご覧ください。
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
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
/etc/resolv.conf
にさらにエントリを追加するには、/etc/resolvconf/resolv.conf.d/tail
ファイルを作成してそこに追加します。
ただし、/etc/resolv.conf
に127.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