如何配置 bind9 以接受来自其他机器的连接

如何配置 bind9 以接受来自其他机器的连接

我确信以前有人以某种形式问过这个问题,但是我对 DNS 完全陌生,对 Linux 也不熟悉,所以请耐心等待 :)

我有一台 OVH 托管的 VPS,我已经成功配置它以很好地满足我的需求,但我似乎无法让 DNS 服务器正常工作。根据我在网上找到的故障排除页面,Bind 配置为不接受来自外部的连接,但我不知道如何更改这一点。

telnet localhost 53在服务器上工作

telnet myserver.com 53在我的本地机器上说telnet: Unable to connect to remote host: Connection refused

netstat -Wa返回以下内容

tcp        0      0 *:imaps                 *:*                     LISTEN
tcp        0      0 *:pop3s                 *:*                     LISTEN
tcp        0      0 localhost.localdomain:10024 *:*                     LISTEN
tcp        0      0 *:rsync                 *:*                     LISTEN
tcp        0      0 localhost.localdomain:10025 *:*                     LISTEN
tcp        0      0 localhost.localdomain:mysql *:*                     LISTEN
tcp        0      0 localhost.localdomain:813 *:*                     LISTEN
tcp        0      0 *:pop3                  *:*                     LISTEN
tcp        0      0 *:imap2                 *:*                     LISTEN
tcp        0      0 localhost.localdomain:spamd *:*                     LISTEN
tcp        0      0 *:sunrpc                *:*                     LISTEN
tcp        0      0 *:http-alt              *:*                     LISTEN
tcp        0      0 *:www                   *:*                     LISTEN
tcp        0      0 *:tproxy                *:*                     LISTEN
tcp        0      0 localhost.localdomain:domain *:*                     LISTEN
tcp        0      0 *:ftp                   *:*                     LISTEN
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 localhost.localdomain:953 *:*                     LISTEN
tcp        0      0 *:smtp                  *:*                     LISTEN
tcp        0      0 *:https                 *:*                     LISTEN
tcp        0      0 mydomain.com:ssh     0-0-0-0.bb.dnainternet.fi:63879 ESTABLISHED
tcp        0      0 mydomain.com:ssh     0-0-0-0.bb.dnainternet.fi:58003 ESTABLISHED
tcp        0      0 rps0000.ovh.net:56314   iscsi00.rps.ovh.net:3260 ESTABLISHED
udp        0      0 localhost.locald:domain *:*
udp        0      0 *:sunrpc                *:*
udp        0      0 mydomain.com:ntp     *:*
udp        0      0 rps0000.ovh.net:ntp     *:*
udp        0      0 localhost.localdoma:ntp *:*
udp        0      0 *:ntp                   *:*

一些故障排除页面说应该有一行用于监听端口 53 的 Bind。由于我没有那行,有没有可能是出了什么问题,尽管它 /etc/init.d/bind9 status告诉我 bind9 正在运行?

答案1

此行显示绑定监听:

tcp 0 0 localhost.localdomain:域

netstat 正在将端口号 (53) 转换为服务名称 (域),由文件 /etc/services 确定。但是,正如您所见,它只监听环回接口 - localhost - 而不是所有接口 (* 或 0.0.0.0)。

您没有指定正在运行哪个发行版,因此下一步有些模糊。您正在寻找主绑定配置文件 named.conf。它可能位于 /etc、/etc/bind9/、/etc/named/、/var/named/chroot/etc/ 或任何地方。找到它后,查找选项“listen-on”并将其完全删除。重新启动 named,它现在应该会监听所有接口。

答案2

是的,bind 正在运行。从 netstat 输出来看:

tcp        0      0 localhost.localdomain:domain *:*                     LISTEN

“域”服务是端口 53。问题是您的 bind 守护进程只监听本地主机 ( 127.0.0.1 )。您可以在 binds 的配置文件中添加以下内容来更改该行为:

listen-on { any; };

(检查文件中没有其他监听行)

答案3

在没有看到您的 BIND 配置文件的情况下,我会猜测您需要listen-on适当地添加/修改指令。

http://www.zytrax.com/books/dns/ch7/hkpng.html或者http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.ch06.html了解更多信息。
我还建议你拿一份DNS 和 BIND来自 O'Reilly 并正在阅读。它涵盖了您想要了解的有关 DNS 和 BIND 的所有内容,但又不敢问...

答案4

我在 listen-on 选项中添加了第二台服务器的 IP 地址和 localhost。我可以从第二台机器连接到我的 DNS 服务器,但是当我检查套接字统计信息 (ss -ltunp) 时,它显示端口 53 仅监听 localhost、服务器的本地私有地址和名称服务器 IP 地址(存在于 /etc/resolv.conf 文件中),但不显示我的第二台机器的 IP 地址。有人知道为什么吗?

相关内容