我正在使用 Bind9 设置 DNS 服务器。当我在本地使用 nslookup 时,它似乎运行正常,但我无法从外部世界连接到它。我已确认 iptables 没有运行,并且我的托管公司表示他们不过滤端口。
是什么原因造成的?我运行了 nmap,可以看到端口 53 在本地打开,但在其他计算机上却没有打开,但其他服务显示正常——只是 bind 对世界其他地方不可见。由于我没有运行防火墙,如果所有其他服务都可以从互联网的其他地方看到,为什么 bind 仅在本地可见?
答案1
你的描述不太清楚。
如果你的意思是你不能连接到服务器(到达IP:端口),这应该是路由或防火墙的问题(关闭端口,NATing等)。
但是,如果您的意思是无法使用该 DNS 服务器解析托管域名,则这是另一个问题。您需要确保您的 DNS 注册商指向您的 DNS 服务器进行名称解析。这是接收托管域的 DNS 查询所必需的。
编辑
端口无法远程显示的原因有多种:
- 您的绑定进程仅在本地监听端口,就像仅在监听一样
127.0.0.1
。您可以使用来检查这一点netstat -lnp | grep 53
。 - 您的服务器和客户端之间有一道受限制的防火墙。这道防火墙可以位于您的服务器上,也可以位于您的服务器和客户端之间的任何一点。
- 无效的 NAT 也会通过错误地更改 IP/端口导致这种情况。
答案2
当我看到这个问题时,最常见的情况是以下两种情况之一:
端口 53 TCP 已打开/转发/等等,但 UDP 端口不同 - 这将使 DNS 服务器无法从 OSW 使用。
端口 53 UDP 已打开,名称服务器将正常工作,但所应用的测试例如是 telnet 到端口 53,或尝试区域传输,但此操作失败,因为端口 53 TCP 未打开或转发(取决于您的网络拓扑)
检查防火墙/路由器配置中的两个端口 53、TCP 和 UDP