我的笔记本电脑上安装了 Windows,无线连接到路由器,IP 为 192.168.1.5。我的台式机运行 Linux,有线连接到同一路由器,IP 为 192.168.1.2。当我从 Windows ping Linux 时,我得到了响应,但反向 ping 不起作用。可能是什么问题?
答案1
这听起来就像您的 Windows 防火墙正在阻止 ICMP 数据包,而该命令ping
正在使用该数据包来征求网络上其他计算机的响应。
我将尝试从两个系统 ping WI-FI 路由器,以确认出站连接是否可以与第三台机器通信(很可能如此,因为您从路由器获取 IP 地址)。
您的路由器的 IP 地址可能是 192.168.1.1,因此我会尝试 ping 该地址。
从 Windows:
$ ping 192.168.1.1
从 Linux:
$ ping 192.168.1.1
如果这些方法有效,那么很有可能是 Windows 防火墙阻止了您的 ping 尝试。
答案2
问题:
我在 Windows 10 上也遇到了同样的问题。我的 Windows 10 计算机位于 192.168.1.74,而 (Arch) Linux 计算机位于 192.168.1.174。从 Windows 到 Linux 的 ping 操作没有问题,但其他方面则不行。
解决方案:
我尝试了 Rafał Wądołowski 的解决方案
检查 Windows 防火墙,确保它允许 ICMP
但它对我不起作用。
- 然后我回想起,当你第一次连接到网络时,Windows 会询问你是否希望被发现。这正是我的问题。
要解决此问题,请按照以下步骤操作:
- 转到 Windows 10 设置
- 网络与互联网
- 以太网
- 点击已连接的适配器
- 最后检查 PC 可发现性
您也可以通过某种方式全局选择此选项
- 控制面板
- 网络和互联网
- 网络和共享中心
- 高级共享设置
但它会不是覆盖现有已保存网络的设置。
答案3
打开命令提示符(command.com、powershell)并粘贴
netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow
这将打开防火墙以接收 ICMP 包,从而允许从 Linux 机器 ping Windows 机器。
答案4
您的 Linux 发行版有 NETBIOS 吗?当您在网络中按名称 ping 另一台 PC 时,通常不是因为该名称在 DNS 服务器中,而是由另一台 PC 通过 NETBIOS 广播的。
例如,在大多数 Android 手机上,除非将主机名添加到 DNS 服务器,否则出于这个原因,您无法通过名称 ping 通 Windows 机器。