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

如何在接口中配置静态 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 地址正确配置我的网络?

答案1

根据提问者给出的内容,/etc/network/interfaces我推断他正在使用 ifup 配置接口。但由于他实际上可能正在使用 NetworkManager,因此我也将讨论这一点。

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

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

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

sudo /etc/init.d/network-manager restart

然后使用指示器启用网络。

或者您也可以重新启动。

/etc/init.d/networking restart关于导致

RTNETLINK answers: File exists
Failed to bring up eth0  

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

关于“已弃用”消息,此消息在 Ubuntu 12.10 中不再显示,但您仍应注意,启动脚本“即将消失”。要重新启动服务foo,请使用service foo restartrestart foo。还请注意,如果您想重新配置接口,最好逐个 ifdown 它们,而不是依赖于重新启动“网络”。

答案2

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

尝试这个:

sudo mkdir -p /etc/resolvconf/resolv.conf.d
sudo nano /etc/resolvconf/resolv.conf.d/tail

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

nameserver 10.20.1.2
  • 您还可以使用 Google 的公共 DNS:8.8.8.8和/或8.8.4.4

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

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

如果上述命令没有找到 resolvconf,您可以使用以下命令下载它:

sudo apt install resolvconf

答案3

所有与 /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 上测试)

答案4

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

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

在此处输入图片描述

相关内容