![无法通过本地网络从 Android 设备 ping \trace win10 pc](https://linux22.com/image/1505669/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%E6%9C%AC%E5%9C%B0%E7%BD%91%E7%BB%9C%E4%BB%8E%20Android%20%E8%AE%BE%E5%A4%87%20ping%20%5Ctrace%20win10%20pc.png)
本地5g wifi网络 192.168.2.0/24
Android 5.1.1\CyanogenMod 12.1 设备 ip:192.168.2.222(ubeogesh-opo)(我使用 jackpal.androidterm 在其上执行命令)
Windows 10 电脑 IP:192.168.2.150(ubeogesh-pc)
Windows 防火墙已禁用,网络发现已启用(针对所有配置文件)
路由器 IP:192.168.2.1
从 PC ping android:
Pinging 192.168.2.222 with 32 bytes of data:
Reply from 192.168.2.222: bytes=32 time=73ms TTL=63
从 PC 到 Android 的跟踪路由:
Tracing route to ubeogesh-opo [192.168.2.222]
over a maximum of 30 hops:
1 1 ms <1 ms <1 ms router.asus.com [192.168.2.1]
2 308 ms 1 ms 1 ms ubeogesh-opo [192.168.2.222]
Trace complete.
从 Android 向 PC 执行 ping 操作:
PING 192.168.2.150 (192.168.2.150) 56(84) bytes of data.
^C
--- 192.168.2.150 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2002ms
从 Android 到路由器的 Ping 和跟踪路径:
22|u0_a72@A0001:/ $ ping 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=109 ms
64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=127 ms
64 bytes from 192.168.2.1: icmp_seq=3 ttl=64 time=115 ms
^C
--- 192.168.2.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 109.158/117.387/127.349/7.526 ms
u0_a72@A0001:/ $ tracepath 192.168.2.1
1: ubeogesh-opo 0.323ms pmtu 1500
1: router.asus.com 1.907ms reached
1: router.asus.com 39.411ms reached
Resume: pmtu 1500 hops 1 back 64
从 Android 到 PC 的跟踪路径:
tracepath 192.168.2.150
1: ubeogesh-opo 0.565ms pmtu 1500
1: no reply
^C
从路由器 CP,我可以 ping 通 PC 和 Android:
traceroute to 192.168.2.150 (192.168.2.150), 30 hops max, 38 byte packets
1 192.168.2.150 (192.168.2.150) 1.072 ms * 1.391 ms
traceroute to 192.168.2.222 (192.168.2.222), 30 hops max, 38 byte packets
1 192.168.2.222 (192.168.2.222) 109.768 ms 1.159 ms 1.015 ms
PING 192.168.2.150 (192.168.2.150): 56 data bytes
64 bytes from 192.168.2.150: seq=0 ttl=128 time=2.087 ms
--- 192.168.2.150 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 2.087/2.087/2.087 ms
PING 192.168.2.222 (192.168.2.222): 56 data bytes
64 bytes from 192.168.2.222: seq=0 ttl=64 time=259.913 ms
--- 192.168.2.222 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 259.913/259.913/259.913 ms
最让我困扰的是,从 PC 到 Android 的跟踪路由将路由器包含在跟踪中,即忽略同一网络中的两个设备,跳跃无论如何都会首先到达路由器。我曾尝试检查 Android 设备上的路由,但我无法从中读取太多信息:
130|u0_a72@A0001:/ $ ip route show
192.168.2.0/24 dev wlan0 proto kernel scope link src 192.168.2.222
我也尝试过明确地通过路由器添加一条到 PC 的路由,但是失败了:
ip route add 192.168.2.150/32 via 192.168.2.1
Cannot talk to rtnetlink: Permission denied
我还能检查什么?问题可能出在哪里?
答案1
我认为问题在于 SELinux 阻止你(shell 用户)创建套接字 rtnetlink。所以我建议首先尝试将 selinux 设置为宽容模式。这不是一个简单的操作,因为你应该 root 你的手机并安装一个应用程序,例如SELinux模式改变去做吧。
答案2
这是我的 Windows 10 电脑的问题。其他设备也无法连接到它。通过重置所有网络设置解决了这个问题。这不是一个非常精确\优雅的解决方案(我希望知道是什么原因造成的),但它确实有效。
这是我所做的:
- 进入win10设置
- 转到状态
- 从那里使用“网络重置”功能。
重启后,问题不再出现