AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 627899
Accepted
Mehran
Mehran
Asked: 2015-05-25 22:38:22 +0800 CST2015-05-25 22:38:22 +0800 CST 2015-05-25 22:38:22 +0800 CST

resolv.conf 中的名称服务器 127.0.1.1 不会消失!

  • 772

我读过只有当我的机器有自己的 DNS 服务器时我才应该nameserver 127.0.1.1在我的文件中。/etc/resolv.conf因为它没有,拥有它​​会导致问题。但无论我做什么我都无法摆脱它!

以下是我到目前为止所做的事情:

  1. 添加nameserver 192.168.1.3到/etc/resolvconf/resolv.conf.d/base文件。(192.168.1.3 是我们网络的 DNS)。
  2. 运行:sudo resolvconf --enable-updates。
  3. 运行:sudo resolvconf -u。
  4. 运行:(sudo service network-manager restart只是为了确定)。

然而,当我打开/etc/resolv.conf文件时,它说:nameserver 127.0.1.1!有谁知道出了什么问题?

请注意,它实际上是127.0.1.1!我不知道为什么不是127.0.0.1!

即使当我/etc/resolv.conf手动更新并将其更改为其他任何内容时,sudo resolvconf -u也会将其恢复为127.0.1.1!这个地址来自哪里?

14.04
  • 4 4 个回答
  • 95182 Views

4 个回答

  • Voted
  1. Best Answer
    2707974
    2015-05-25T22:51:10+08:002015-05-25T22:51:10+08:00

    NetworkManager 是(通过 resolvconf 实用程序)将地址插入127.0.1.1到resolv.conf. 仅当 NM 配置为启动 dnsmasq 程序实例以用作本地转发名称服务器时,NM 才会插入该地址。该 dnsmasq 实例在地址 127.0.1.1 处侦听查询。

    如果您不想使用本地转发名称服务器,则将 NetworkManager 配置为不启动 dnsmasq 实例并且不插入该地址。在/etc/NetworkManager/NetworkManager.conf注释掉该行dns=dnsmasq

    sudo nano /etc/NetworkManager/NetworkManager.conf
    
    [main]
    plugins=ifupdown,keyfile,ofono
    #dns=dnsmasq
    

    并重新启动 NetworkManager 服务。

    sudo service network-manager restart
    

    在这种模式下,NetworkManager 更新/etc/resolv.conf(仍然通过 resolvconf)以包含 NetworkManager 用于活动连接的名称服务器地址。

    如果要禁用更新 resolv.conf 的 resolvconf 机制并只使用静态 resolv.conf 文件,请执行以下操作。

    sudo rm -f /etc/resolv.conf  # Delete the symbolic link
    sudo nano /etc/resolv.conf   # Create static file
    
    # Content of static resolv.conf
    nameserver 8.8.4.4
    nameserver 8.8.8.8
    
    • 106
  2. jdthood
    2015-05-26T23:52:47+08:002015-05-26T23:52:47+08:00

    resolvconf 可能配置错误。如果您在没有真正了解 resolvconf 和 NetworkManager 的工作原理的情况下一直在使用它的配置文件,那么这种情况尤其可能发生。

    有关背景信息,请阅读 resolvconf 文档和 Stéphane Graber 的博客文章。

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

    首先,您应该知道默认情况下,Ubuntu Desktop 和 Ubuntu Server 都安装并激活了 resolvconf。Resolvconf 提供了一个框架,用于以有序和可逆的方式动态更新 /etc/resolv.conf 文件。

    其次,您应该知道 Ubuntu Desktop 默认安装并激活了 NetworkManager。默认情况下,NetworkManager 启动一个 dnsmasq 实例作为本地转发名称服务器。这个 NetworkManager 控制的 dnsmasq 实例在 127.0.1.1 监听查询。当 NetworkManager 启动 dnsmasq 实例时,它告诉 resolvconf 将地址127.0.1.1插入到 resolv.conf 中。正如另一个答案中提到的,如果您将 NetworkManager 配置为不启动本地转发名称服务器实例,那么它不会启动本地转发名称服务器,也不会告诉 resolvconf 将地址127.0.1.1插入 resolv.conf。

    此默认配置正常工作,因此除非您的情况特殊,否则您应该恢复默认配置。

    要恢复默认配置,请注意

    • /etc/resolvconf/resolv.conf.d/head 仅包含由两行以一个#字符开头的 resolvconf 标头文本
    • /etc/resolvconf/resolv.conf.d/base 是一个空文件
    • /etc/resolvconf/resolv.conf.d/tail 是一个空文件
    • /etc/resolv.conf 是带有内容的符号链接../run/resolvconf/resolv.conf

    为此,请执行以下命令。

    sudo su
    dpkg-reconfigure resolvconf   # And answer `Yes` to agree to dynamic updates
    cd /etc/resolvconf/resolv.conf.d
    echo '# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN' > head
    rm -f base tail original
    :> base
    :> tail
    

    NetworkManager 的原始配置是

    [main]
    ...
    dns=dnsmasq
    ...
    

    在 /etc/NetworkManager/NetworkManager.conf 中。通过注释掉该dns=dnsmasq行来禁用 NetworkManager 控制的本地转发名称服务器是一个合理的选择。

    [main]
    ...
    #dns=dnsmasq
    ...
    

    完成所有这些之后,建议重新启动机器以清除陈旧的名称服务器信息记录。

    sudo reboot
    
    • 11
  3. Valery Markov
    2018-04-12T21:24:28+08:002018-04-12T21:24:28+08:00

    在我的例子中,文件中没有dns=dnsmasq行,仍然被网络管理器覆盖,只有/etc/NetworkManager/NetworkManager.conf/etc/resolv.confnameserver 127.0.1.1

    解决方法是恢复符号链接以进行正确更新:

    sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf
    
    • 1
  4. Curious Sam
    2020-05-01T17:08:46+08:002020-05-01T17:08:46+08:00

    Ubuntu 16.04 + Ubuntu 18.04 服务器 - 配置 /etc/resolv.conf 以在重启后保留

    在 Ubuntu 16.04 服务器上,没有/etc/NetworkManager/NetworkManager.conf文件。

    执行以下命令将向您显示该/etc/resolv.conf文件已链接到该/run/resolvconf/resolv.conf文件:

    sudo ls -la /etc/resolv.conf

    resolv.conf 中的名称服务器 127.0.1.1 不会消失

    删除此文件并重新生成它:

    sudo rm -f /etc/resolv.conf
    sudo echo '#== My Static /etc/resolv.conf File
    #== ===============================
    nameserver 8.8.8.8
    nameserver 8.8.4.4' > /etc/resolv.conf
    

    resolv.conf 中的名称服务器 127.0.1.1 不会消失

    现在您将看到该链接不再存在并且您的静态/etc/resolv.conf文件存在。

    sudo ls -la /etc/resolv.conf

    resolv.conf 中的名称服务器 127.0.1.1 不会消失

    现在要将 resolvconf 配置为不重新生成默认/etc/resolv.conf文件,以便您的静态文件在重启后仍然存在,请执行以下命令:

    sudo dpkg-reconfigure resolvconf

    在第一个屏幕上,点击选项卡按钮进行选择NO

    将 resolv.conf 配置为在重启后保留

    在第二个屏幕上,按 Tab 键选择确定,然后按回车键。

    配置 /etc/resolv.conf 以在重启后保留

    重新启动服务器后,您的/etc/resolv.conf文件将保留。

    Ubuntu 18.04 服务器

    如果您将 ips 添加到您的/etc/netplan/50-cloud-init.yaml文件,您很可能必须使用netplan apply或来应用您的新设置netplan --debug apply。这样做将重新创建/etc/resolve.conf链接回到../run/resolvconf/resolv.conf. 如果发生这种情况,只需rm -f /etc/resolv.conf按照上面的概述重新创建它。

    现在你需要这样chattr的文件:
    chattr +i /etc/resolv.conf

    重新启动服务器后,您的/etc/resolv.conf文件将保留。

    如果您需要编辑文件,请记住chattr像这样反转:
    chattr -i /etc/resolv.conf

    现在您可以编辑/etc/resolve.cfg

    • 0

相关问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve