同一 WiFi 下 SSH 连不上:Ping 通但 22 端口超时的排查实录
背景两台设备连的是同一个路由器/WiFi看起来在同一局域网里客户端Windows192.168.1.8/24网关192.168.1.1服务端Linux192.168.0.105/24网关192.168.0.1Linux 上还配置了 VPN 接口如10.0.0.x、11.0.0.x。目标是从客户端 SSH 登录 Linux。问题从 Windows 执行ssh user192.168.0.105连接超时。现象测试项结果ping 192.168.0.105✅ 通ssh 192.168.0.105:22❌ 超时Linux 本机ssh user127.0.0.1✅ 正常排查思路1. 先确认 Linux 端 SSH 服务sudosystemctl statussshsudoss-tlnp|grep:22sudoufw status若 sshd 运行、监听0.0.0.0:22、防火墙未拦截 →问题不在 Linux。2. 对比客户端网段ipconfig# Windowsip a# Linux若客户端是192.168.1.x服务端是192.168.0.x虽属同一物理网络但属于不同 IPv4 子网。3. 验证跨网段路由与端口ping 192.168.0.1 ping 192.168.0.105 tracert 192.168.0.105Test-NetConnection-ComputerName 192.168.0.105-Port 22典型结果Ping 通路由经192.168.1.1转发到192.168.0.x但TCP 22 被路由器/防火墙丢弃。4. 排除 VPN 路径Linux 本机测试ssh user10.0.0.x、ssh user11.0.0.x若正常说明 VPN 地址可用客户端需先连 VPN 才能走该路径。解决方法方案一客户端改到同一网段最快将 Windows 静态 IP 设为192.168.0.x/24避开服务端已占用地址网关192.168.0.1再 SSHssh user192.168.0.105方案二服务端改到客户端网段Linux 改用 DHCP 获取192.168.1.xWindows 直连新地址 SSH。方案三改路由器登录路由器关闭 AP/访客隔离或放行192.168.1.0/24 → 192.168.0.x:22。方案四走 VPN不改 IP客户端连 VPN 后用 Linux VPN 地址连接ssh user10.0.0.x# 或ssh user11.0.0.x结论Ping 通 ≠ SSH 能连。跨子网时路由器常放行 ICMP、拦截 TCP 22。优先让两端处于同一 IPv4 网段或通过VPN/路由器放行解决。