我有一个便宜的openvz Ubuntu vps,我试图在它上面运行我自己的dns服务器用于学习目的。
dns服务器在localhost(通过ssh的vps上)工作正常,我可以使用dig google.com @127.0.0.1
查询它,我得到了预期的结果(不是google.com的IP,而是自定义的IP)。
当我尝试从vps外部查询dns服务器时,使用相同的命令,我得到了回复,但IP不是我所期望的(它是一个真正的google.com IP)。
经过进一步调查后,我发现当从vps外部进行查询时,我的dns服务器没有收到/发送数据包。所以答案是通过别的东西发送的,看起来目的端口53的入站数据包是偏离的,它们甚至都没有到达我的DNS服务器。
我试图查询我的dns服务器,仍在外面,但这次是在VPS关闭的时候。我神奇地得到了上帝的答复,知道是谁。
将端口从53更改为54,一切都很完美。 问题是我需要它使用端口53。
我没有iptables规则,也没有任何其他防火墙做与端口53相关的事情
我还尝试从不同的托管服务提供商查询其他一些随机vps,似乎每个人都有运行的dns服务器!为什么每个人都回复?
当然我问技术支持,他们说了什么:
您好, 抱歉,我们不做"软件" VPS的技术支持。 我们提供托管和操作系统,订购VPS的客户是他们自己的管理员,并且必须知道如何管理Linux服务器。 我们不会阻止我们这边的任何港口。 最好的祝福, 支撑
答案 0 :(得分:0)
Mybe你的dns服务器只绑定到环回接口(所以它只能监听localhost
)。您可以使用netstat
和过滤器(grep
)使用的udp端口检查当前使用的服务端口(udp for DNS)
netstat -an | grep ":53"
您也可以使用nslookup
命令测试相同的dns查询,并在结果输出中检查回答dns查询的DNS服务器ip:
nslookup google.com [dns_server_ip]
在没有dns_server_ip的情况下测试它,以检查当指定的名称服务器没有响应时是否有默认的名称服务器。
答案 1 :(得分:0)