【问题标题】:Cannot ping Windows 7 machine from Linux machines on same LAN [closed]无法从同一 LAN 上的 Linux 机器 ping Windows 7 机器 [关闭]
【发布时间】:2023-11-19 15:12:01
【问题描述】:
  • 所有防火墙均已关闭。
  • 我在同一个 172.x.x.x LAN 上有 3 台 Fedora 20 机器和 1 台 Windows 7 机器。
  • 它们都有静态 IP 地址和相同的子网。 (255.255.255.0)
  • Fedora 机器都可以相互 ping 通。
  • Windows 7 机器可以 ping 所有 3 台 Fedora 机器。
  • 但是,Fedora 机器无法 ping Windows 7 机器。我收到回复:无法访问目标主机。
  • 我在 Windows 机器上运行了 Wireshark。从 Windows ping 到 Fedora 时会显示 ICMP 消息,但反之则不会。
  • 更复杂的是,所有机器还有一个连接到第二个 10.x.x.x 网络的第二个网络适配器。在这个网络上,所有机器都可以互相 ping,Windows 到 Fedora 和 Fedora 到 Windows。这只是 Fedora 机器无法 ping Windows 机器的 172.x 网络。

我知道 已经有大量关于“无法 ping”问题的帖子, 但我找不到任何对此有帮助的东西 具体场景。或者当我这样做时,原来是防火墙 问题,并且这些机器上没有运行防火墙。

有什么想法吗?

谢谢。

【问题讨论】:

  • 你试过在 Fedora 机器上运行 traceroute 到 Windows 7 机器上吗?
  • 我有。我得到这个响应:traceroute to 172.124.16.39 (172.124.16.39), 30 hops max, 60 byte packet 1 172.124.16.89 (172.124.16.89) 3003.853 ms !H 3003.844 ms !H 3003.833 ms !H (其中.是 Windows 机器,.89 机器是我正在 ping/tracerouting 的 Fedora 机器。traceroute 中的 !H 表示无法访问。)
  • 您的路由是否在您的 Fedora 机器上正确配置?如果您的 Windows 机器甚至没有看到数据包,则可能是您所有 Fedora 机器的配置出现问题...
  • 我要检查什么? netstat -r 显示:Destination: 172.124.16.0 Gateway: *, Genmask: 255.255.255.0 Flags: U MSS: 0 Window: 0 irtt: 0 在两台 Fedora 机器上。在第三个中,除了 Gateway: 0.0.0.0 而不是 * 之外,一切都相同。在 Windows 上,没有定义默认网关。

标签: linux networking windows-7 ping


【解决方案1】:

在 Windows 计算机上,确保网络发现协议已打开。您可以通过单击资源管理器中的“网络”来仔细检查,并且资源管理器窗口顶部可能会提示您将其打开。它可能在 10.x.x.x 网络上工作的原因是因为它可能将该网络识别为家庭或工作网络,但将 172.x.x.x 网络识别为公共网络。每种网络类型的设置都是独立的。

【讨论】:

  • 我检查了家庭/工作和公共网络的网络发现协议。没错,10.x.x.x 网络设置为 Home/Work 网络,172.x.x.x 网络设置为公共网络。 (下续)
  • 我无法将172.xxx设置为家庭/工作网络,网络和共享中心“未知网络”下的“公共网络”字样只是黑色,无法点击和更改.据我了解,必须在网络适配器的 TCP/IP 设置中定义默认网关才能更改此设置,但 172.xxx 网络没有我可以找到的默认网关,所有机器都连接在此通过 Netgear 交换机而不是路由器网络。有什么想法吗?
  • 尝试更改此本地组策略:计算机配置 -> 管理模板 -> 网络 -> 链路层拓扑发现 -> “打开映射器 I/O”和“打开响应程序”。将这两者都配置为“启用”和“在所有三种类型的网络中允许操作”。如果不这样做,那么我认为我的思路是错误的。
【解决方案2】:

在 172.x.x.x 网络上从 Fedora ping 到 Windows 时,ping 数据包的源 IP 可能被设置为 10.x.x.x 网络上的 IP 地址。这可能会导致数据包立即被 Windows 丢弃,因为数据包到达 172.x.x.x 接口,其源 IP 属于另一个接口上的子网。这可以通过 Fedora 上的 tcpdump/wireshark 轻松确认。

======== 编辑 ========

所以我们已经确认,当 Fedora (172.124.16.128) ping Windows (172.124.16.39) 时,目的 MAC 地址设置为00:00:00:00:00:00,这是不正确的。目标 MAC 应该是 Windows 上配置 IP 地址为 172.124.16.39 的网络接口的 MAC 地址。

将 IP 解析为 MAC 地址的过程由 ARP(地址解析协议)完成,并且应该在后台自动发生。要调试 MAC 地址无法正确解析的原因,请清除 Fedora 上的所有 ARP 缓存(Google 如何在 Linux 上清除 ARP 缓存),开始捕获数据包,然后查看 ARP 数据包会发生什么情况。如果你看不懂包,可以发在这里,我去看看。

【讨论】:

  • 我在 Fedora 上运行了 Wireshark,“源”列显示“Billiont_b1:c4:bc”。在详细信息区域中显示:“Src: Billiont_b1:c4:bc (00:10:60:b1:c4:bc), Dst: Broadcast (ff:ff:ff:ff:ff:ff)。
  • 再往下说: 发件人 MAC 地址:Billiont_b1:c4:bc (00:10:60:b1:c4:bc) 发件人 IP 地址:172.124.16.128 (172.124.16.128) 目标 MAC 地址: 00:00:00_00:00:00 (00:00:00:00:00:00) 目标 IP 地址:172.124.16.39 (172.124.16.39)
  • @user3618656 所以我的猜测是错误的,但是在确认我的猜测是错误的时,你发现了你的问题。 :) 目标 MAC 地址应设置为 IP 地址为 172.124.16.39 的 Window 接口的 MAC 地址。我没有使用这些附加信息编辑我的答案。
  • 现在。我现在编辑了我的答案。
  • 没关系!修复。叹。经典的 PEBKAC。是否将 Win7 盒子插入错误的开关。
最近更新 更多