Fork me on GitHub

局域网跨子网访问

路由器自身“桥接”了两个不同的子网:192.168.151.0/24192.168.10.0/24。

电脑(192.168.151.101)还是 ping 不通 192.168.10.51。

可能因为 虽然路由器能看到两个子网的设备,但默认不做跨子网转发

 

目标

从电脑(192.168.151.101)访问接入路由器 LAN 口的设备(IP 为 192.168.10.51),实现 ping 和浏览器访问。  

设备IP子网掩码网络
路由器 192.168.151.100 255.255.255.0 DHCP 网关
电脑 192.168.151.101 255.255.255.0 路由器分配的无线
目标设备 192.168.10.51 255.255.255.0 静态 IP,接在 LAN 口

 

遇到的问题

  1. 电脑无法 ping 通 192.168.10.51

  2. 静态路由配置无效(路由器不具备多子网互通转发)

  3. 目标设备不在电脑的子网中,且没有设置网关 → 不响应 ping

  4. 浏览器访问 http://192.168.10.51502 错误

解决过程

🔹 第一步:判断路通性

  • ✅ 路由器识别到了 192.168.10.51,物理连接正常

  • arp -n 能获取目标设备 MAC → 二层通信已通

  • ping 无响应 → 因为设备掩码为 /24,不认为你是本地设备

 

第二步:电脑添加虚拟 IP,加入目标子网

 
sudo ip addr add 192.168.10.100/24 dev wlo1

📌 这样你的电脑同时拥有:

  • 192.168.151.101(继续上网)

  • 192.168.10.100(进入目标子网)

🔁 目标设备 192.168.10.51 愿意响应 192.168.10.100,于是:

ping 成功
arp 确认
✅ 链路打通

 

 第三步:排查浏览器 502 错误原因

 
curl -v http://192.168.10.51

发现请求被错误地转发到了本地代理(127.0.0.1:7890),不是设备本身 → 返回 502 错误

✅ 解决方案:

 
curl -v --noproxy '*' http://192.168.10.51

或直接访问:

 
https://192.168.10.51

发现目标设备其实跑的是 HTTPS 服务 → 页面成功打开 ✅

 

核心原理

当你与目标设备不在同一子网时,它不会响应你的 ping 或数据请求,除非你在本地手动加入目标子网,使其“以为你是邻居”。

posted @ 2025-07-19 16:48  z_s_s  阅读(35)  评论(0)    收藏  举报