配置NetworkManager的dnsmasq以使用/ etc / hosts

Bakytn

我已经安装了DNSMASQ,但由于53端口繁忙而无法启动。

我发现ubuntu已经有了dnsmasq软件包,并且可以正常工作。

现在的问题是...我只希望能够通过它来解析/ etc / hosts中的主机

即:nslookup somehostonlan localhost解析为从/ etc / hosts文件获取的某些IP。

但这没有发生。

为什么?顺便说一句,作为缓存DNS服务器,它工作正常。我只想要它从/ etc / hosts文件中解析主机

kbenoit

为了加快互联网速度,ubuntu 12.04已向NetworkManager添加了一个插件来启动dnsmasq,这是一个缓存dns条目的本地dns服务器。问题是插件已对--no-hosts字符串进行了硬编码。

因此,一种解决方案是注释掉将插件加载到NetworkManager配置文件中并重新启动NetworkManager的行:

sudo mv /etc/NetworkManager/NetworkManager.conf /etc/NetworkManager/NetworkManager.conf.bak
sudo bash -c 'cat /etc/NetworkManager/NetworkManager.conf.bak | sed -e "s/^\(dns=dnsmasq\)$/#\1/" > /etc/NetworkManager/NetworkManager.conf'
sudo restart network-manager

另一个解决方案是包装dnsmasq来过滤掉不需要的参数:

sudo mv /usr/sbin/dnsmasq /usr/sbin/dnsmasq.bin
sudo bash -c 'cat > /usr/sbin/dnsmasq' << EOF
#!/bin/sh
dnsmasq=/usr/sbin/dnsmasq.bin

exec $dnsmasq `echo $@ | sed -e s/--no-hosts//`
EOF

sudo chmod 755 /usr/sbin/dnsmasq

将该错误标记为影响您。

无需修补系统文件的另一种解决方案

cat /etc/NetworkManager/dnsmasq.d/hosts.conf 

addn-hosts=/etc/hosts

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章