如何在接口中配置静态DNS?

我使用的是Ubuntu 12.04。

我的/etc/network/interfaces文件包括:

 # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.1.58 gateway 192.168.1.1 network 192.168.1.0 broadcast 192.168.1.255 dns-nameservers 66.212.63.228 66.212.48.10 

我运行了命令: /etc/init.d/networking restart

回应:

 *Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces *Reconfiguring network interfaces... RTNETLINK answers: File exists Failed to bring up eth0 [ OK ] 

接下来我跑了ping google.com并收到:

 ping: unknown host google.com 

我不确定我的界面是否刷新。 如何使用静态DNS地址正确配置网络?

当提问者给出他/etc/network/interfaces的内容时,我推断他正在使用ifup来配置接口。 但由于他实际上可能正在使用NetworkManager,我也会讨论它。

如果您使用ifup,那么DNS设置将进入/etc/network/interfaces 。 对于每个接口,您可以添加适用于该接口上可用的名称服务器的dns-*选项。 例如,如果地址1.2.3.4上的名称服务器在接口eth0上可用,则将dns-nameservers 1.2.3.4添加到iface eth0节。

如果您使用的是NetworkManager,则会在“IPv4设置”选项卡的“连接编辑器”(网络指示器|编辑连接…)中输入设置。

不建议使用/etc/init.d/networking restart来重新配置接口。 如果您正在使用ifup那么首先ifdown每个活动网络接口,然后ifup每个接口。 如果您正在使用NetworkManager,则首先使用指示器(桌面顶部)禁用网络连接; 然后打开终端并运行

 sudo restart network-manager 

然后使用指标启用网络。

或者你可以重新启动。

关于/etc/init.d/networking restart导致的事实

 RTNETLINK answers: File exists Failed to bring up eth0 

这意味着ifupdown认为eth0已经启动了。 使用ifdown --force eth0导致ifupdown停止相信它已经配置了接口。

关于“已弃用”消息,此消息不再在Ubuntu 12.10中打印,但您仍应注意,initscripts“正在逐渐消失”。 要重新启动服务foo ,请使用service foo restartrestart foo 。 另请注意,如果要重新配置接口,最好逐个ifdown,而不是依赖重新启动“网络”。

如果以上都不起作用,请记住Ubuntu会将tail文件附加到它生成的resolv.conf文件中。

试试这个:

 sudo nano /etc/resolvconf/resolv.conf.d/tail 

这将在nano文本编辑器中打开一个空白的resolv.conf.d文件。 您需要将DNS服务器地址放在此文件的第一行,并记住使用回车结束该行(按回车键),如下所示:

 nameserver 10.20.1.2 

编辑尾部文件而不是实际的resolv.conf文件将防止您的更改在系统重新引导时丢失。

您需要运行sudo resolvconf -u来激活更改。 你应该能够在此之后ping google.com。 祝好运!

命令行版本:

您应该以这种方式将您的名称服务器添加到/etc/resolvconf/resolv.conf.d/base文件中:

 nameserver 66.212.63.228 nameserver 66.212.48.10 

与/ etc / network / interfaces相关的所有答案都错误地指出dns-nameservers而不是dns-nameserver – 下面应该有效:

 auto wlan0 iface wlan0 inet static address 192.168.1.28 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameserver 8.8.8.8 dns-nameserver 8.8.4.4 dns-search something.network.com 

(在Ubuntu 15.04上测试)

配置DNS服务器的最简单方法是使用NetworkManager

在IPv4下,填写您的DNS服务器

在此处输入图像描述

通过添加,我能够在无头ubuntu服务器安装上解决这个问题

 nameserver 8.8.8.8 

…在/ etc / network / interfaces中的相关接口之后:

 auto wlan0 iface wlan0 inet static address 192.168.1.28 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 dns-nameservers 8.8.4.4 

希望这有助于以后的用户!

我用

 sudo ifdown eth0 

然后

 sudo ifup eth0 

它将重置并释放所有内容……

如果它面临与配置相关的错误,您可以使用:

 sudo ifdown eth0 --force 

这对我有用

 sudo vi /etc/resolvconf/resolv.conf.d/base 

并添加:

 nameserver  

跑:

 sudo resolvconf -u 

我使用ubuntu服务器的核心安装。

您缺少interfaces文件中的子网规范。

将网络掩码255.255.255.0添加到网络线下的/etc/network/interfaces

出于某种原因, dns-nameservers语句在我的情况下什么都不做。 其他答案不在书中,因为它们绕过了在Ubuntu中使用的dnsmasq

要做到这一点,请编辑/etc/dnsmasq.conf

将名称服务器添加到文件的底部:

 server=8.8.8.8 server=8.8.4.4 

重新启动dnsmasq以使用新设置: sudo service dnsmasq restart

图片来源: https : //unix.stackexchange.com/a/163506/187949

您可以在其他文件中配置该接口,因为您有更多网关。

细节在这里 。