我正在尝试在运行 Raspbian 的 Raspberry pi 上设置 DNS 服务器。我一直在网上学习如何设置 DNS 服务器的教程,我发现这个教程非常容易理解。
http://www.heystephenwood.com/2013/06/use-your-raspberry-pi-as-dns-cache-to.html
我按照说明并通过本网站上列出的链接安装了 dnsmasq
curl "https://raw.github.com/stephendotexe/raspberrypi/master/roles/dnsmasq_server" | sudo sh
,
但是当它尝试启动 dnsmasq 时,它给了我错误;
dnsmasq: failed to create listening socket for port 53: Address already in use failed!
我做了一些研究,并在 Askubuntu 网站上发现了这篇文章。
我再次按照指示进行操作,发现 dnsmasq 会干扰网络管理器,因此我按照帖子的指示运行了以下命令。
sudo apt-get remove dnsmasq-base
sudo apt-get install dnsmasq
sudo apt-get install network-manager network-manager-gnome
再说一遍,这并没有解决我的问题。我试图lsof
找出什么正在使用端口 53,所以我安装了它sudo apt-get install lsof
并运行了命令;
sudo lsof -Pn +M | grep ':53 (LISTEN)
我得到这个输出
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
named 1955 bind 20u IPv4 2467 0t0 TCP 127.0.0.1:53 (LISTEN)
named 1955 bind 21u IPv4 2469 0t0 TCP 192.168.0.102:53 (LISTEN)
named 1955 bind 512u IPv4 2466 0t0 UDP 127.0.0.1:53
named 1955 bind 513u IPv4 2468 0t0 UDP 192.168.0.102:53
我认为这意味着我需要卸载 BIND 或至少使其不在启动时执行。
答案1
在您的 DNSMASQ.conf 中,确保相关接口禁用 TFTP(在我的例子中为 eth8,替换为您的接口)
# = dont provide DHCP or TFTP on this interface : (BUT provide DNS service)
no-dhcp-interface=eth8