PC 可以通过有线方式连接到路由器/交换机来访问另一台 LAN 设备的嵌入式 Web 服务器,但不能通过 WiFi 访问

PC 可以通过有线方式连接到路由器/交换机来访问另一台 LAN 设备的嵌入式 Web 服务器,但不能通过 WiFi 访问

为了工作,我设计了一个硬件“盒子”(实际上是一个工业控制小玩意),它有一个嵌入式 Web 服务器用于配置(就像普通家用互联网路由器有一个 Web 服务器用于类似目的一样)。它通常与笔记本电脑直接连接使用,这样就可以使用常规浏览器(IE8、FF 等)来配置盒子。

最近发现的问题是,如果“盒子”通过有线以太网连接到某些 Netgear 或 Linksys WiFi 交换机/路由器单元,然后尝试使用笔记本电脑到交换机的 WiFi 连接通过交换机访问盒子,笔记本电脑浏览器将无法连接到盒子(导致典型的“未找到服务器”错误)。但是,如果笔记本电脑通过有线连接连接到交换机,则可以正常访问盒子。这几乎就像问题仅存在于 WiFi 中一样。

举一些例子来澄清一下:

  • Linksys 或 Netgear 无线路由器/交换机(/调制解调器),配置 IP 为 192.168.0.5。

  • 我的定制硬件及其嵌入式 Web 服务器配置了静态 IP 192.168.0.100,并且与 Linksys/Netgear 设备建立了有线以太网连接。

  • PC 通过 DHCP 从 Linksys/Netgear 设备获取 IP;假设其为 192.168.0.200。

  • 如果PC是通过有线连接的话,浏览器可以正常访问192.168.0.100的盒子。

  • 如果 PC 通过 WiFi 连接到路由器,则无法访问盒子。但它可以顺利访问路由器自己的 Web 服务器 192.168.0.5。

  • 即使在使用 WiFi 时 PC 的浏览器无法连接,我仍然能够从 PC 成功 ping 硬件盒。

  • 据我回忆,当 WiFi 连接不工作时,我看不到 192.168.0.100 的条目arp -a。当连接工作正常时(PC 已有线连接到路由器),arp -a会显示 192.168.0.100 的条目。

我今天一直在尝试使用 Linksys WRT54G 来调查这个问题。一开始,我遇到了上面描述的问题。后来,经过一番折腾,问题不知怎么地解决了。我记得在它神奇地开始通过 WiFi 工作之前,我唯一记得做的就是从路由器本身到硬件盒进行一系列成功的 ping 测试。

多个 Netgear / Linksys 路由器都报告了这个问题,不过我还需要一段时间才能确定型号。

任何帮助都将不胜感激。如果我可以提供更多信息、日志或表格,请告诉我。

答案1

听起来您有多个路由器和多个网络。如果两台机器不在同一网络上,它将无法工作。由于每台机器都将另一台机器的 IP 地址视为其本地网络 IP 范围内,因此它会假定它们在同一个网络上。如果不是,它将无法工作。

如果您有两个网络,其编号均为 192.168.0.0/24,则一个网络中的机器将无法访问另一个网络中的机器。您ping正在访问同一网络上的另一台机器,该机器的 IP 地址与您尝试访问的机器相同。

当无线系统恰好连接到同一个网络时,一切就都可以正常工作。

您可以按照以下方法确认这一理论:在两台机器上 ping 默认网关。然后在 ARP 表中找到默认网关。查看 MAC 地址是否相同。如果不相同,那就是问题所在。它们使用的是不同的路由器。

更新:我喜欢 Tony Roth 的理论。也许你配置的 Web 代理不在本地网络范围内(或不允许连接到本地网络)。

答案2

这很尴尬,但事实证明这是因为我为盒子分配的 MAC 地址。作为一个没有生产分配 MAC 的研发 PCB,我只是输入了一个虚拟 MAC 地址。我输入的内容设置了多播位(如果我没记错的话 - 这是几个月前的事了)。我将其更改为更标准的 MAC 地址,一切都很好。

相关内容