windows 中的 DNS 服务器

DNS server in windows

我正在尝试使用 WinPcap 为 windows 编写 DNS 服务器。编码似乎在工作并且它正在回答查询。但是在每次响应之前,windows 正在发送一个 ICMP 数据包,上面写着 "Destination unreachable (port unreachable)"。就好像我的 windows 不知道我要在端口 53 上应答,所以它假设它是无法访问的或什么的。我真的不知道。我也禁用了我的防火墙。服务器和客户端都在我的 windows 上,使用 GNS3。我也在使用我的 Microsoft Loopback 接口。

谢谢

当然 Windows 不知道,因为您的应用实际上并没有监听(即接受)端口 53。当 Windows 从环回接收到 UDP 数据包时,然后它检查它的目标端口,如果没有人打开它发送 ICMP 错误的端口。

要避免错误,您有两种选择;打开端口 53 或不要让 Windows 接收您发送的数据包。

对于前者,创建另一个将端口 53 绑定到套接字的应用程序,并丢弃它通过套接字接收的数据包,然后 运行 使用您的数据包捕获应用程序。

对于后者,将目标地址(IP或MAC)设置为未分配给任何人的地址。