我有一个家庭局域网(路由器 D-LINK 524),里面有一台 Windows XP 笔记本电脑和一台 Mac。
Mac 正在运行 ssh、VNC 服务器和 RDP 服务器并监听 22/5900/3389。
从 Windows 机器 ping/telnet 这些端口时,全部超时。从 Windows 到 Mac 的 RDP 也失败了。奇怪的是,启动 VNC 客户端并从 Windows 连接到 Mac 时会起作用。建立此连接后,关闭它或将其保留在那里,ping/telnet 所有 Mac 监听端口都会起作用。
这可能是什么原因造成的?ping 应该在不建立 VNC 连接的情况下工作。有什么方法/工具可以解决此问题吗?请提供意见,谢谢。
编辑:
我尝试在 Win/Mac 上禁用防火墙/防病毒软件。但仍然无法解决问题。
我发现启用或禁用防火墙都无法解决这个问题。通常,在 Mac ping Win 时,前几次可能会超时,然后才能获得 ping 响应。在 Mac 能够 ping Win 之后,Win 可以 ping Mac。在 Win 上使用 Wireshark 可以看到 ICMP 数据包,但没有 ARP 数据包。
但反过来说,从 Win 持续 ping Mac 就会一直超时。在Win上使用Wireshark可以看到ARP数据包没有得到任何响应。
防火墙允许src:LAN.* dst:*.* protocol:*
。
最后,看来如果 Win 上的 ARP 表没有 Mac 的信息,连接就无法建立。因此在 Win 上添加静态 ARP 条目可以解决问题。我想知道为什么 D-link 524 路由器 ARP 表不能向 Win 提供 Mac 的信息。
答案1
我会检查 Mac(包括 OS X 的内置防火墙)和路由器上运行的所有防火墙软件,看看它们是否会干扰连接。您可以暂时禁用您发现的防火墙软件,看看这是否能解决问题。
另一个有用的调查途径可能是控制台应用程序,它将让您查看 Mac 的日志。那里可能有一个条目可以阐明问题所在。
答案2
这听起来像是你的 Windows 防火墙的问题。它不允许传入连接,直到它首先建立到该计算机的传出连接。检查你的 Windows 防火墙设置,通过允许某些端口或允许来自局域网计算机的连接来寻找可能的解决方案。