当前位置: 首页>>技术问答>>正文


如何在接口中配置静态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停止相信它已经配置了接口。

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

次佳解决办法

如果以上都不起作用,请记住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服务器

dns,ubuntu

第六种办法

通过添加,我能够在无头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 <add your router ip>

跑:

sudo resolvconf -u

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

第九种办法

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

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1642.html,未经允许,请勿转载。