有办公网络(带单个 wifi 路由器)。我正在尝试将(网络浏览器、telnet)android 设备连接到我的主机(两者都通过 wifi 连接到同一路由器)。
路由器设置:
IP: 192.168.1.1
Mask: 255.255.255.0
Run Code Online (Sandbox Code Playgroud)
在目标主机上
#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
Run Code Online (Sandbox Code Playgroud)
我的主机地址:192.168.1.108
安卓设备地址:192.168.1.105
当我尝试从 android (2.x/4.x) (tablet pc/mobile) ping 我的主机时,会打印以下消息:
From 192.168.1.105: icmp_seq=xx Destination Host Unreachable
Run Code Online (Sandbox Code Playgroud)
我尝试在两个 Android 设备上使用“traceroute”工具跟踪到主机的路由。一台设备显示了自己的地址,但经过多次尝试后,它显示了目标地址和主机名。然后我尝试连接到目标主机上运行的 Web 服务并且它已经连接。
然后一段时间后它无法再次连接并且 traceroute 显示相同的“自己的”地址和主机名。
我没有设法强制其他 android 设备使用“traceroute”显示目标主机名。
与以前的 wifi 路由器相同的行为。
怎么了?为什么他们认为“192.168.1.108”属于不同的网络?
小智 7
问题是 Android 没有将主路由表添加到其文件系统中。
在这种情况下,从 Android ping 外部只能使用该-I interface_number选项,例如:
ping -I eth3 192.168.0.108
Run Code Online (Sandbox Code Playgroud)
但是从外部 ping Android 不起作用。
要解决此问题,需要添加主路由表:
ip rule add from all lookup main pref 1
Run Code Online (Sandbox Code Playgroud)
您可以找到添加的主路由表:
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
Run Code Online (Sandbox Code Playgroud)
和路由条目:
ip route list table main
192.168.0.0/24 dev eth3 proto kernel scope link src 192.168.0.105
Run Code Online (Sandbox Code Playgroud)
不确定这是否是您的问题,但某些 wifi 路由器和接入点具有称为“站分离”或“无线隔离”的功能,可限制连接的设备相互通信。启用此功能后,接入点将不会在不同连接的设备之间路由数据包:仅在设备和上行链路端口之间路由数据包。
该功能适用于提供访客访问的商业网络,其中打印机、服务器和网络共享等服务均通过有线局域网连接,因此您实际上并不需要无线-无线通信,并且有助于将访客与敏感的人分开。商业网络。
| 归档时间: |
|
| 查看次数: |
15515 次 |
| 最近记录: |