Android 设备不知道到同一网络内的主机的路由

Android 设备不知道到同一网络内的主机的路由

有办公室网络(带有单个 wifi 路由器)。我正在尝试将 android 设备(网络浏览器、telnet)连接到我的主机(均通过 wifi 连接到同一个路由器)。

路由器设置:

IP: 192.168.1.1
Mask: 255.255.255.0

在目标主机上

#ifconfig
eth2   inet addr:192.168.1.108  Bcast:192.168.1.255  Mask:255.255.255.0

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth2
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth2
192.168.1.0     0.0.0.0         255.255.255.0   U     2      0        0 eth2

我的主机地址:192.168.1.108

Android设备地址:192.168.1.105

当我尝试从 android (2.x/4.x) (平板电脑/手机) ping 我的主机时,打印了以下消息:

From 192.168.1.105: icmp_seq=xx Destination Host Unreachable

我尝试在两台 Android 设备上使用“traceroute”工具跟踪到主机的路由。一台设备显示了自己的地址,但经过几次尝试后,它显示了目标地址和主机名。然后我尝试连接到目标主机上运行的 Web 服务,它已连接。

过了一段时间后,它无法再次连接,并且跟踪路由显示相同的“自己的”地址和主机名。

我无法强制其他 Android 设备使用“traceroute”显示目标主机名。

之前的 wifi 路由器也有同样的情况。

怎么了?为什么他们认为“192.168.1.108”属于不同的网络?

答案1

问题是 Android 没有将主路由表添加到其文件系统。

在这种情况下,从 Android ping 外部只能使用以下选项-I interface_number,例如:

 ping -I eth3 192.168.0.108

但是从外部 ping Android 不起作用。

为了解决这个问题,需要添加主路由表:

ip rule add from all lookup main pref 1

您可以找到添加的主路由表:

ip rule

0:      from all lookup local

1:      from all lookup main

10000:  from all fwmark 0xc0000/0xd0000 lookup 99

13000:  from all fwmark 0x10063/0x1ffff lookup 97

15000:  from all fwmark 0x0/0x10000 lookup 99

16000:  from all fwmark 0x0/0x10000 lookup 98

17000:  from all fwmark 0x0/0x10000 lookup 97

以及路线条目:

ip route list table main

192.168.0.0/24 dev eth3  proto kernel  scope link  src 192.168.0.105

答案2

Linux 中有多个路由表。我的 Android 手机使用编号为 2 的“隐藏”路由表。

表 0 显示了每个条目:

ip route show table 0

您可以尝试将您的主机添加到表 2 中:

ip route add table 2 192.168.1.108 via 192.168.1.1

更多信息请访问:http://linux-ip.net/html/routing-tables.html

答案3

不确定这是否是您的问题,但有些 wifi 路由器和接入点具有“站点分离”或“无线隔离”功能,可限制连接的设备相互通信。启用此功能后,接入点将不会在不同的连接设备之间路由数据包:仅在设备和上行链路端口之间路由。

该功能适用​​于提供访客访问的商业网络,其中打印机、服务器和网络共享等服务都通过有线局域网连接,因此您实际上不需要无线-无线通信,它有助于将访客与敏感的商业网络分开。

相关内容