我无法按名称 ping/访问任何网站/服务(例如 ping google.com)。
我可以通过在 /etc/resolv.conf 中将 127.0.0.1 更改为我的路由器来临时解决此问题,但是该文件被覆盖了。
我怎样才能永久解决这个问题?
需要明确的是,我不需要 DNS 服务器,我只希望我的服务器能够使用来自 DHCP 的 DNS。
在 Ubuntu 12.04(精确穿山甲)中设置静态 DNS 服务器
sudo nano /etc/dhcp/dhclient.conf
Run Code Online (Sandbox Code Playgroud)
然后将突出显示的行更改为
prepend domain-name-servers x.x.x.x, y.y.y.y;
Run Code Online (Sandbox Code Playgroud)
Ubuntu 12.04 改变了 DNS 设置的处理方式。与其将名称服务器添加到 /etc/resolv.conf,不如将它们添加到 /etc/network/interfaces。
编辑/etc/network/interfaces,查找您的主要以太网设备(例如 eth0),然后在您的主要以太网设备下添加以下行:
dns-nameservers 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
然后重新启动您的网络:
/etc/init.d/networking restart
Run Code Online (Sandbox Code Playgroud)
我用另一种方式解决了这个问题,因为我的印象是上面的解决方案正在做没有要求的事情,即实现 dhcp 服务器。
我删除了bind9和dhcp3-server
sudo aptitude remove bind9 dhcp3-server
Run Code Online (Sandbox Code Playgroud)
并重新启动网络
sudo /etc/init.d/networking restart
Run Code Online (Sandbox Code Playgroud)
我还更改了文件/etc/NetworkManager/NetworkManager.conf。其内容如下所示:
[main]
plugins=ifupdown,keyfile
dns=dnsmasq
[ifupdown]
managed=true
Run Code Online (Sandbox Code Playgroud)
修改此文件后,我必须重新启动网络管理器服务:
sudo service network-manager restart
Run Code Online (Sandbox Code Playgroud)
现在dhcp客户端似乎将dns服务器设置为dhcp提供的dns服务器。