我的问题是我的Ubuntu计算机使用了错误的DNS服务器。由于某种原因,机器会查询localhost
DNS信息。
我已经在网络设置GUI中添加了DNS服务器,但是/etc/resolv.conf
仍然包含127.0.0.1
DNS服务器地址。现在,我以为我可以自己编辑文件,但是它明确表示我不应该手动编辑文件。
现在,由于网络设置GUI没有使用正确的设置生成resolv.conf
文件,我该如何自己生成一个新文件?
我的问题是我的Ubuntu计算机使用了错误的DNS服务器。由于某种原因,机器会查询localhost
DNS信息。
我已经在网络设置GUI中添加了DNS服务器,但是/etc/resolv.conf
仍然包含127.0.0.1
DNS服务器地址。现在,我以为我可以自己编辑文件,但是它明确表示我不应该手动编辑文件。
现在,由于网络设置GUI没有使用正确的设置生成resolv.conf
文件,我该如何自己生成一个新文件?
Answers:
到目前为止,所有答案都没有解决,只是假设本地名称服务器正在运行,发问者无法理解nameserver 127.0.0.1
in 的外观/etc/resolv.conf
。在Ubuntu 12.04 Desktop中,默认情况下会运行本地名称服务器,即dnsmasq
由NetworkManager控制的进程,该进程监听127.0.0.1
。在Ubuntu 12.10中,侦听地址已更改为127.0.1.1
。
因此,解决方案是不对进行任何更改resolv.conf
。假设发问者想要使用本地名称服务器,这是正确的。
如果名称服务不起作用,则不会为本地名称服务器提供正确的转发地址,否则存在其他网络问题。
发问者尝试使用“网络设置GUI”来“使用正确的设置生成文件”,但此操作无效。我不确切知道这是什么意思,但这是输入名称服务器地址的正确方法,以便它们resolv.conf
在正确的时间结束。我假设发问者正在使用,NetworkManager
而不是ifup
配置接口。
大多数情况下,接口是使用DHCP协议配置的。在这种情况下,无需在本地系统上配置任何内容。DHCP服务器知道其客户端应使用的名称服务器地址,并将此信息发送到DHCP客户端,该客户端将其发送到NetworkManager,后者再将其发送到resolvconf,后者将信息放入resolv.conf
。因此,在这种情况下,可能需要配置DHCP服务器。
如果本地计算机上的网络接口是静态配置的,则必须在NetworkManager的正确位置输入正确的名称服务器地址,例如,编辑连接... | 无线| 我的联系| 编辑... | IPv4设置| 其他DNS服务器。
本地名称服务器可能无法正常工作。在这种情况下,发问者应进行编辑/etc/NetworkManager/NetworkManager.conf
sudo gedit /etc/NetworkManager/NetworkManager.conf
并注释掉线
dns=dnsmasq
在“ [main]”部分中。要注释掉该行,请#
在该行的开头放置一个,然后保存文件。然后重新启动网络管理器。
sudo restart network-manager
此后,将输入非本地名称服务器地址,resolv.conf
而不是127. *地址。
如果发问者使用的ifup
是NetworkManager而不是NetworkManager,则jmartin2279的答案是正确的:您必须按照jmartin2279所述的方式将名称服务器地址添加到/ etc / network / interfaces中。
相反的是一些其他的答案提醒,一般来说,你应该不增加nameserver
,domain
或search
选项文件/etc/resolvconf/resolv.conf.d/
。请参阅我对这些答案的评论。
dhclient
的更改(tha nameserver
行)etc/resolv.conf
。我正在运行Xubuntu 14.04的自定义直播(也许是原因)。
127.0.0.1
尽管我的网络管理员有其他名称服务器+ dnsmasq被注释掉+重新启动+ dnsmasq被杀死(因为它仍然开始运行)+网络重新启动,但我的resolv.conf仍然不断变化:/
如果使用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
ifdown: interface eth0 not configured
sudo /etc/init.d/networking restart
在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服务器地址,该地址会将它们发送到监听的dnsmasq 127.0.0.1
。
静态接口的DNS配置应为添加到适当的iface节中的“ dns-nameservers
”,“ dns-search
”和“ dns-domain
”条目/etc/network/interfaces
阅读此以获得更多信息。
`此外:
您可以安装名为的gui工具gnome-network-admin
来设置DNS。试试吧 :
sudo apt-get install gnome-network-admin