尝试访问本地网络应用程序时,我在Android设备(Nexus 7)上有一个非常奇怪的行为。Android设备没有获取局域网上计算机的实际IP,而是获取了公共 IP,这意味着Chrome,Firefox或任何其他浏览器仅显示了路由器的网页。
我有一个处理本地网络的内部DNS服务器。这样做ping
从PC正常工作:
$ ping s.pelicandd.com
PING pelicandd.com (192.168.1.15) 56(84) bytes of data.
64 bytes from front.pelicandd.com (192.168.1.15): icmp_seq=1 ttl=64 time=0.524 ms
64 bytes from front.pelicandd.com (192.168.1.15): icmp_seq=2 ttl=64 time=0.578 ms
^C
在HTC One设备(通过访问adb shell
)上,它也可以正常工作:
shell@m7:/ $ ping s.pelicandd.com
PING pelicandd.com (192.168.1.15) 56(84) bytes of data.
64 bytes from front.pelicandd.com (192.168.1.15): icmp_seq=1 ttl=64 time=2.56 ms
64 bytes from front.pelicandd.com (192.168.1.15): icmp_seq=2 ttl=64 time=27.8 ms
^C
但是,这是我ping
从Nexus 7进行的操作所得到的:
shell@flo:/ $ ping s.pelicandd.com
PING pelicandd.com (90.78.26.42) 56(84) bytes of data.
64 bytes from LFbn-1-2441-42.w90-78.abo.wanadoo.fr (90.78.26.42): icmp_seq=1 ttl=64 time=2.56 ms
64 bytes from LFbn-1-2441-42.w90-78.abo.wanadoo.fr (90.78.26.42): icmp_seq=2 ttl=64 time=8.63 ms
^C
它不是解析内部IP,而是解析为公共IP。
除设备的IP地址外,网络配置在两个设备上都完全相同:IP设置为Static,而DNS服务器为内部服务器。两个Android设备都通过Wi-Fi连接(与PC不同)。但是,主要区别在于Nexus 7使用的是Android 6.0.1,而HTC One使用的是Android 5.0.2。
没有nm-tool
,dig
或者nslookup
在Nexus 7上没有。设备没有植根。
自几周前我购买设备以来,就一直存在该问题,因此这几乎不是DNS缓存的问题。
我该怎么做才能进一步检查这个问题?