我正在使用 HTTP 通过 TCP/IP 将嵌入式设备连接到远程服务器。我有两层路由器,如果两层都到位,则连接到远程服务器时遇到问题。我最上面的路由器是 10.0.0.X,我的下面(本地)路由器是 192.168.1.X。
如果我绕过 192.168.1.X 路由器,并将我的设备和笔记本电脑放在连接到 10.0.0.X 路由器的集线器上,我的设备将正确完成与服务器的握手序列。我看到我的 SYN 出去了,服务器用 SYN/ACK 响应,我用 ACK 响应。HTTP 从那里接管。
如果我将我的设备和笔记本电脑插入 192.168.1.X 路由器,并将此路由器插入 10.0.0.X 路由器,那么我仍然看到我的 SYN 请求发出,但我没有收到服务器的响应。
在我看来,我的 192.168.1.X 路由器阻止了我的离开请求或返回的响应。我检查了 (192) 路由器设置,并且防火墙已关闭(完全打开)。
我的笔记本电脑上有 Wireshark,并考虑过嗅探 192 路由器的另一端,但我不知道我是否能处理流量,因为我希望 10.0.0.X 路由器不会将它们传回去到其他港口,即使他们在那里。
我的问题:
有什么想法可以调试它以查看故障发生在哪里?如果笔记本电脑连接到路由器上的另一个端口,Wireshark 会接收这些数据包吗?
为什么一台路由器会双向传递数据包,而另一台则以一种或另一种方式阻止它们?看来如果我能回答这个哲学问题,我也许就能推断出真正的问题。
谢谢,
克里斯