为什么必须删除resolvconf才能使dnsmasq重新工作?


8

昨天我升级到Precise,dnsmasq停止工作。也就是说,拒绝对dnsmasq正在侦听的本地主机(127.0.0.1)的DNS查询。

删除resolvconf(apt-get remove resolvconf)并重新启动即可解决此问题(在Google的某处找到了该建议)。/etc/resolv.conf在没有resolvconf的情况下看起来不错。完全没有区别。

  1. 我为什么要使用resolvconf?有什么好处吗?维基百科有关resolvconf的文章很烂。
  2. 为什么resolvconf会干扰dnsmasq?这是一个已知的问题?

bla @ blubb:〜$ [-f /usr/share/doc/resolvconf/README.gz] && echo“找到” || 回声“未找到”未找到。自作聪明。
lightxx 2012年

Answers:


10

对(1)的简单回答是:resolvconf将自身设置为提供此信息的程序(例如ifup和ifdown,DHCP客户端,PPP守护程序和本地名称服务器)与使用此信息的程序(例如DNS)之间的中介。缓存和解析器库)。从Ubuntu 12.04开始,resolvconf是服务器和桌面版本中默认安装的一部分。从来没有必要删除resolvconf,而删除它的人通常也不了解它,通常是因为他们没有读过resolvconf(8)和/usr/share/doc/resolvconf/README.gz。

第二个问题的答案是resolvconf很可能没有干扰dnsmasq。我的猜测是您遇到了错误#959037。

说明:在Ubuntu 12.04中,有两种运行dnsmasq的方法。dnsmasq是传统的独立版本,可监听所有地址。还有一个新的由NetworkManager控制的dnsmasq进程,该进程仅侦听127.0.0.1。除非重新配置前者,否则后者与前者冲突。在Ubuntu 12.10中,通过由NM控制的dnsmasq进程侦听127.0.1.1而不是127.0.0.1,并强制独立dnsmasq进程仅侦听分配给接口的地址,解决了此问题。


我已经阅读过手册,但仍然找不到可靠的方法来将自己的名称服务器添加到resolv.conf
Michael Mior 2013年

安装了resolvconf后,您可以通过放置nameserver x.x.x.x/etc/resolvconf/resolv.conf.d/head 前缀名称服务器地址。但请注意,通常没有必要或不建议这样做。通常,存在将“名称服务器”行添加到resolv.conf的更正确的方法。通常,配置网络接口的实用程序分别通过运行resolvconf -a或来添加或删除通过该接口可用的名称服务器地址resolvconf -d。以这种方式添加的名称服务器地址的优先级由决定/etc/resolvconf/interface-order
jdthood

实际上,head在默认名称服务器之后,将名称服务器行添加到该行中。
Michael Mior 2013年

我还没有测试过,但是似乎echo x.x.x.x | resolvconf -a lo可以为我添加一个我想成为所有接口的名字服务器的技巧。
Michael Mior 2013年

Resolvconf始终将的内容head放在的开头(顶部,开头)resolv.conf
jdthood 2013年

2

我刚刚在安装中将其删除。我在手动使用pppd拨打我的3G调制解调器连接时,当我想使用自定义DNS时,resolvconf通过自动添加提供程序DNS来干扰我的dns设置。pppd具有控制此选项的选项,但是resolvconf用自己的设置破坏了它们。我也想知道这个问题的答案吗?看来这是一些使事情变得容易但又复杂的事情吗?

ps我发现了这个错误报告:https : //bugs.launchpad.net/ubuntu/+source/resolvconf/+bug/922578


感谢您的输入。我会赞成,但是我没有代表。
lightxx

@lightxx:Upvoted你;)
托马斯·杰林斯基

您可以配置resolvconf来忽略来自pppd的名称服务器信息,而不是删除resolvconf。
jdthood 2012年

resolv.conf的常规内容非常简单。每当机器是服务器甚至是非膝上型工作站时,似乎很容易跟踪单个resolv.conf而不是resolvconf可能使用的六个不同文件。
ericx

@jdthood-我在resolvconf.conf手册页中看不到该怎么做,我会对实现细节感兴趣。
DPS

1

对(1)的简单回答是:resolvconf将自身设置为提供此信息的程序(例如ifup和ifdown,DHCP客户端,PPP守护程序和本地名称服务器)与使用此信息的程序(例如DNS)之间的中介。缓存和解析器库)。

这是从包装说明中得出的。在台式机上,它可与NetworkManager配合使用,以平滑地建立和断开连接。

因此,在12.04中使用了resolvconf和dnsmasq,以使DNS信息处理在桌面版本上更加可靠。因此,在某些情况下,它确实可以使事情变得更好,但是整个情况都缺少在正确位置提供文档的方法,尤其是。在服务器世界中。

尽管谷歌搜索工作量很大,但我无法确定在服务器安装上推荐的设置。

就(2)而言,您遇到的问题与我相反。Dnsmasq与我的计算机上的resolvconf配合良好,并将/etc/resolv.conf文件更新为包含127.0.0.1,但存在其他问题,因为dnsmasq不能从eth0上的dhclient(这是网关)获取ISP名称服务器获取我在/ etc / network / interfaces中的eth0节中手动输入的名称服务器。

为什么使用dnsmasq?您还在运行带有2个网卡的网关吗?还是仅仅是普通的桌面?如果是这样,则resolvconf与network-manager协调


感谢您的回答。我本来会投票的,不幸的是您需要15的声誉才能投票。大声笑
lightxx 2012年

1
当您知道需要了解的内容时,手册页非常有用。如果您不这样做,他们至少可以说令人困惑。当您没有某个领域的经验时,就需要Howto,示例和常见问题解答。
2013年

代表您投票@lightxx :)
fkl 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.