Ubuntu 服务器 apt-get 显示“(-5 - 没有与主机名关联的地址)”

Ubuntu 服务器 apt-get 显示“(-5 - 没有与主机名关联的地址)”

我有一台 ubuntu 12.04 服务器。在其上运行 sudo apt-get update 会产生如下错误:

    W: Failed to fetch http://au.archive.ubuntu.com/ubuntu/dists/precise-backports/main/binary-i386/Packages  Something wicked happened resolving 'au.archive.ubuntu.com:http' (-5 - No address associated with hostname)

我可以 ping 网络上的所有其他主机以及 Google 的 DNS 8.8.8.8。但无法 ping www.google.com。

因此,我猜测我的 DNS 设置有问题,但不确定是什么。

我使用静态 IP,并且我的 /etc/network/interfaces 如下所示:

    auto eth0
    iface eth0 inet static
    address 192.168.1.50
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.0.255
    gateway 192.168.1.1
    #dns-nameserver 203.12.160.35 203.12.160.36
    #nameserver 203.12.160.35 203.12.160.36

我的 /etc/resolv.conf 和 /etc/resolvconf/resolv.conf.d/base 都是空的,并且我的 /etc/resolvconf/resolv.conf.d/original 显示:

    nameserver 192.168.1.1

任何帮助将不胜感激。

PS:我在 Google 上搜索了一下,常见的解决方案是切换到 DHCP,但由于这是我的家庭服务器,所以我不想这样做。

谢谢 Srini

答案1

添加您自己的(或公共的)名称服务器地址/etc/resolvconf/resolv.conf.d/base并运行resolvconf -u以更新配置。

这两个地址203.12.160.35203.12.160.36您的网络配置中的名称服务器是否是您应该使用的名称服务器?如果是的话,请将它们添加到文件中base

答案2

编辑 /etc/resolv.conf ;添加:

nameserver 208.67.222.222

(这将使用 opendns)

重启网络:/etc/init.d/networking restart

答案3

Ubuntu 12.04 中的 DNS 操作发生了很大变化,在我看来稍微不完整,但它是一个改进,它只缺少本地 DNS 缓存,可以手动安装。

http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

如何正确地将静态条目添加到 resolv.conf 是打开您的终端。

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

添加两个公共的和您的本地的(如果有)

nameserver [your_local]
nameserver 208.67.222.222
nameserver 208.67.220.220
  • 备份现有的 resolv.conf

    cp /etc/resolv.conf ~/resolv.conf_backup

现在确保 /etc/resolv.conf 是 /run/resolvconf/resolv.conf 的符号链接

sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

重新配置 resolvconf 包

sudo dpkg-reconfigure resolvconf

当询问“准备 /etc/resolv.conf 进行动态更新吗?”时,选择“是”并按照说明进行操作。

故障排除

您可能会遇到默认超时会影响性能的情况(名称解析延迟 5 秒可能会非常昂贵,尤其是对于数据库/http 服务而言)

有 3 种方法可以解决此问题:

  • 将名称条目添加到您的主机文件中,这更像是一种解决方法,而不是修复

    编辑 /etc/hosts 并为主机添加静态条目。请注意,这可能会延长以后的调试时间

  • 修改 resolvconf 包中的默认超时时间

    sudo echo "options timeout:2" >> /etc/resolvconf/resolv.conf.d/tail

  • 添加 DNS 缓存

    还有一些选项我就不打算介绍了。

相关内容