Linux 和 Windows 怎么互 ping?一篇讲明白局域网互通排查方法
关键词:Linux 和 Windows 怎么互 ping
在同一个局域网里,Linux 和 Windows 互相 ping 不通,是很多人刚接触双系统、虚拟机、办公内网、服务器测试时最常遇到的问题。
表面上看只是一个“能不能通”的小问题,但背后可能涉及 IP 配置、网络模式、防火墙、路由规则、网段不一致、权限限制 等多种原因。
这篇文章就围绕 Linux 和 Windows 怎么互 ping 这个问题,从最基础的概念讲起,带你一步一步排查,尽量做到小白也能照着操作。
一、先弄明白:什么叫互 ping
ping 是一种最常见的网络连通性测试命令。
- Windows 里输入:
ping 对方IP - Linux 里输入:
ping 对方IP
如果能收到回复,说明:
- 网络基本连通;
- 对方设备在线;
- 中间网络设备没有明显阻断 ICMP 请求。
如果 ping 不通,不代表一定完全没网,可能只是:
- 防火墙拦截了 ping;
- IP 地址配错了;
- 两台设备不在同一网段;
- 虚拟机网络模式不对;
- 路由器做了隔离。
二、Linux 和 Windows 互 ping 的前提条件
想要互 ping,先满足下面几个基础条件:
1. 两台设备必须在同一个网络里
比如:
- Windows:
192.168.1.100 - Linux:
192.168.1.101
这两个地址如果都在 192.168.1.x 网段,通常更容易互通。
如果一个是:
- Windows:
192.168.1.100 - Linux:
10.0.0.20
那就不一定能直接互 ping,除非中间有正确路由。
2. 子网掩码要一致或兼容
常见的是:
255.255.255.0
这表示同一网段内的设备可以直接通信。
如果子网掩码乱了,比如一台是 255.255.0.0,另一台是 255.255.255.0,也可能出现判断网段错误的问题。
3. 防火墙不能完全拦截 ICMP
很多系统默认会挡 ping。
- Windows 防火墙可能关闭了“文件和打印机共享(回显请求 - ICMPv4-In)”;
- Linux 可能启用了严格防火墙规则,比如
ufw、firewalld、iptables; - 路由器或公司网络也可能做了隔离。
三、先看最简单的互 ping 测试方法
下面按“Windows ping Linux”和“Linux ping Windows”分别讲。
四、Windows ping Linux 的方法
1. 先确认 Linux 的 IP 地址
在 Linux 里打开终端,输入:
ip addr
或者更简洁一点:
hostname -I
你会看到类似:
192.168.1.101
记下这个 IP。
2. 在 Windows 里 ping Linux
打开 Windows 的命令提示符 CMD,输入:
ping 192.168.1.101
如果正常,会看到类似:
Reply from 192.168.1.101: bytes=32 time<1ms TTL=64
如果出现:
Request timed out.
说明没通,需要继续排查。
3. Linux 端允许 ping
Linux 很多发行版默认是允许 ping 的,但如果防火墙开着,就可能拦住。
Ubuntu / Debian 常见排查
先看防火墙状态:
sudo ufw status
如果显示 active,说明防火墙启用了。
可以先临时测试关闭:
sudo ufw disable
然后再从 Windows ping 一次。
如果立刻通了,说明就是防火墙问题。
CentOS / Rocky / AlmaLinux 常见排查
查看 firewalld:
sudo systemctl status firewalld
临时关闭测试:
sudo systemctl stop firewalld
再试 ping。
如果想开放 ICMP,一般需要看具体规则,不建议长期直接关防火墙。
4. Linux 的防火墙和内核参数也可能影响 ping
有些机器会禁用回应 ping 的能力,检查这个参数:
cat /proc/sys/net/ipv4/icmp_echo_ignore_all
如果输出:
0:允许回应 ping1:忽略 ping
如果是 1,临时改回可响应:
sudo sysctl -w net.ipv4.icmp_echo_ignore_all=0
五、Linux ping Windows 的方法
1. 先确认 Windows 的 IP 地址
在 Windows 上按 Win + R,输入:
cmd
然后执行:
ipconfig
找到当前网卡的 IPv4 地址,例如:
IPv4 Address. . . . . . . . . . . : 192.168.1.100
记下这个地址。
2. 在 Linux 里 ping Windows
Linux 终端输入:
ping 192.168.1.100
如果能通,说明 Linux 到 Windows 的方向正常。
3. Windows 默认经常会挡 ping
很多人会发现:
- Linux 能 ping 通 Windows;
- 但 Windows ping 不通 Linux;
- 或者反过来。
这通常和 Windows 防火墙有关。
放行 Windows 的 ping
方法一:开启“回显请求”规则
- 打开 控制面板
- 进入 Windows Defender 防火墙
- 点击 高级设置
- 选择 入站规则
- 找到下面类似规则:
- 文件和打印机共享(回显请求 - ICMPv4-In)
- 右键 启用规则
如果你只是在局域网里测试,这个办法最直接。
方法二:命令行快速放行
管理员身份打开 CMD,执行:
netsh advfirewall firewall add rule name="Allow ICMPv4 Echo Request" protocol=icmpv4:8,any dir=in action=allow
这条命令会放行 Windows 收到的 ping 请求。
如果以后不想要了,也可以删除规则:
netsh advfirewall firewall delete rule name="Allow ICMPv4 Echo Request"
4. Windows 的网络类型要对
Windows 如果把当前网络识别成 公用网络,防火墙通常更严格。
建议改成:
- 专用网络
设置路径:
- 打开 设置
- 进入 网络和 Internet
- 点击当前连接的网络
- 将网络配置改为 专用
这样局域网通信会更顺畅。
六、最常见的互 ping 不通原因
下面这部分是重点,很多人卡在这里。
1. IP 地址不在同一网段
这是最常见问题。
比如:
- Windows:
192.168.1.100 - Linux:
192.168.2.101
看起来都像 192.168 开头,但实际上如果子网掩码是 255.255.255.0,它们属于不同网段,不能直接互 ping。
解决办法
把两台设备的 IP 调到同一段,比如:
- Windows:
192.168.1.100 - Linux:
192.168.1.101
2. 子网掩码不一致
比如一台:
255.255.255.0
另一台:
255.255.0.0
会导致系统对“谁是同网段”判断不同,出现通信异常。
解决办法
尽量统一成常见的:
255.255.255.0
3. 防火墙拦截
这是第二大常见原因。
Linux 防火墙
ufwfirewalldiptablesnftables
Windows 防火墙
- 默认就比较严格
- 会拦截 ICMP 回显请求
解决办法
先临时关闭测试,确认是不是防火墙问题,再做精细放行。
4. 虚拟机网络模式选错
如果你是在虚拟机里装 Linux,比如:
- VMware
- VirtualBox
- Hyper-V
网络模式不同,ping 结果差别很大。
常见模式说明
NAT 模式
虚拟机通过宿主机上网,但局域网设备通常不能直接访问虚拟机。
适合:
- 只想上网
- 不想暴露虚拟机服务
缺点:
- 外部设备 ping 虚拟机可能不通
桥接模式
虚拟机直接和宿主机处在同一个局域网,相当于一台独立电脑。
适合:
- Windows 和 Linux 互 ping
- 局域网实验
- 服务器测试
建议:
如果你是想让 Linux 和 Windows 互相 ping,优先用桥接模式。
5. 路由器开启了客户端隔离
有些路由器、AP、企业 Wi-Fi 会开启:
- AP 隔离
- 客户端隔离
- 访客网络隔离
开启后,同一个 Wi-Fi 下的设备也互相 ping 不通。
解决办法
进入路由器后台,关闭:
- AP隔离
- 无线隔离
- 访客网络隔离
6. 网线接法或网卡问题
如果是台式机直连、交换机接入、双网卡设备,也可能出问题。
检查:
- 网口灯是否亮;
- 网卡是否启用;
- 驱动是否正常;
- 有没有接错网卡;
- 是否有两个网卡同时抢默认路由。
七、一步一步排查互 ping 不通
这里给你一个小白也能照着做的排查顺序。
第一步:先看 IP
在 Windows 执行:
ipconfig
在 Linux 执行:
hostname -I
确认两边 IP 是否在同一网段。
第二步:互相 ping 网关
先别急着 ping 对方,先 ping 路由器。
例如网关通常是:
192.168.1.1
Windows:
ping 192.168.1.1
Linux:
ping 192.168.1.1
如果连网关都不通,说明本机网络本身就有问题,不是互 ping 的问题。
第三步:关闭防火墙测试
Windows
临时关闭防火墙测试,或者直接启用 ICMP 回显规则。
Linux
临时停掉防火墙测试:
Ubuntu:
sudo ufw disable
CentOS:
sudo systemctl stop firewalld
第四步:检查是否是虚拟机网络模式
如果 Linux 是虚拟机:
- 优先改成桥接模式;
- 然后重启虚拟机;
- 再检查 IP 是否变成和 Windows 同网段。
第五步:检查路由器隔离
如果两台电脑都连 Wi-Fi,尤其是公共 Wi-Fi、访客 Wi-Fi、公司 Wi-Fi,看看有没有隔离策略。
八、几个实用命令,排查时很有用
Windows 常用命令
查看 IP
ipconfig
查看路由
route print
查看网络连通性
ping 目标IP
测试端口
telnet 目标IP 端口
如果系统没装 telnet,可以用 PowerShell:
Test-NetConnection 目标IP -Port 端口
Linux 常用命令
查看 IP
ip addr
简单查看网卡状态
nmcli device status
测试 ping
ping 目标IP
看路由
ip route
看防火墙
Ubuntu:
sudo ufw status
CentOS:
sudo systemctl status firewalld
九、典型场景怎么处理
场景1:Windows 能 ping 通 Linux,Linux ping 不通 Windows
这个最常见,原因基本就是:
- Windows 防火墙拦了 ICMP;
- Windows 网络类型是公用网络;
- 没开“回显请求”规则。
处理方法
- 把 Windows 网络设成专用;
- 在防火墙入站规则里启用回显请求;
- 再试
ping。
场景2:Linux 能 ping 通 Windows,但 Windows ping 不通 Linux
这种情况多半是 Linux 开了防火墙,或者禁止回应 ping。
处理方法
- 临时关闭 Linux 防火墙测试;
- 检查
icmp_echo_ignore_all; - 开放 ICMP 规则。
场景3:两边都 ping 不通
常见原因:
- IP 不在同一网段;
- 网线/网卡有问题;
- 虚拟机网络模式错误;
- 路由器隔离;
- 交换机配置有问题。
处理顺序
先 ping 网关,再看 IP,再看防火墙,再看网络模式。
场景4:局域网内只有部分设备能互 ping
这通常是:
- IP 冲突;
- DHCP 分配异常;
- 某些设备开了隔离;
- 有一台设备双网卡冲突。
处理方法
- 重新获取 IP;
- 改成静态 IP 测试;
- 断开多余网卡;
- 检查路由表。
十、推荐一个最稳的互 ping 配置
如果你是自己在家测试,建议这样设置:
Windows
- IP:
192.168.1.100 - 子网掩码:
255.255.255.0 - 网关:
192.168.1.1 - 网络类型:专用网络
- 防火墙:允许 ICMP 回显请求
Linux
- IP:
192.168.1.101 - 子网掩码:
255.255.255.0 - 网关:
192.168.1.1 - 防火墙:允许 ping
- 虚拟机:桥接模式(如果是虚拟机)
这样配置后,Windows 和 Linux 互 ping 的成功率最高。
十一、补充:如果 ping 不通,先别急着断定网络坏了
ping 用的是 ICMP 协议,它并不代表所有网络服务都通。
有些情况下:
- ping 不通;
- 但远程桌面、SSH、网页访问却是正常的。
因为系统或防火墙可能只拦了 ICMP,不影响 TCP/UDP 端口。
所以排查时不要只看 ping,要结合:
sshRDP浏览器访问端口测试
一起判断。
十二、最实用的结论
Linux 和 Windows 互 ping 的核心就四件事:
- IP 在同一网段
- 子网掩码正确
- 防火墙放行 ICMP
- 网络模式没有隔离
只要这四项都正常,Linux 和 Windows 基本都能互 ping。
十三、快速操作总结
Windows ping Linux
ping Linux的IP
Linux ping Windows
ping Windows的IP
Windows 查看 IP
ipconfig
Linux 查看 IP
ip addr
Windows 放行 ping
netsh advfirewall firewall add rule name="Allow ICMPv4 Echo Request" protocol=icmpv4:8,any dir=in action=allow
Ubuntu 临时关闭防火墙
sudo ufw disable
CentOS 临时关闭防火墙
sudo systemctl stop firewalld
如果按照上面的步骤逐项检查,绝大多数 Linux 和 Windows 怎么互 ping 的问题都能定位并解决。最常见的坑不是系统坏了,而是 防火墙、IP 网段、虚拟机网络模式 这三类配置没对上。

还没有评论,来说两句吧...