我有一个通过 WiFi 连接到网络的远程系统。WiFi 连接已正确建立,我可以 ping 网关。网关的维护者(第三方,我无法访问)确认了这一点。设备已连接,获得了 IP,防火墙对我的 MAC 未处于活动状态。
但是我没有互联网连接。我用ping -I wlan0 8.8.8.8
和curl --interface wlan0 -XGET http://example.org
都测试了它,结果都超时了。我用 监控了 wlan0 上的流量tcpdump -i wlan0
,发现高达 100% 的数据包被接口丢弃。澄清:我可以在 tcpdump 输出中看到数据包,但 ping 显示 100% 数据包丢失。
我有两个问题:这是我丢失连接的原因吗?我该如何解决这个问题?
防火墙(iptables / ufw)未处于活动状态。
我的uname -a
输出是Linux machine 3.10.104-126 #1 SMP PREEMPT Tue Nov 29 22:24:16 UTC 2016 armv7l armv7l armv7l GNU/Linux
我的 WiFi 接口是Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
带有设备 ID 的0bda:8176
更新
@Lenniey 我不确定我是否明白。连接到网络本身是成功的(因为我获得了 IP,DHCP 配置了网关 DNS 等,我可以成功 ping 网关)。我的设备位于 192.168.200.4 (wlan0) 和 192.168.1.31 (eth0)。我已经进行了跟踪路由,它看起来像这样:
root@device:~# traceroute -i wlan0 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 192.168.200.254 (192.168.200.254) 7.069 ms 6.961 ms 6.888 ms
2 ***
3 ***
(this continues until traceroute gives up)
30 ***
我的路由表如下:
root@device:~# route --verbose
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.254 0.0.0.0 UG 100 0 0 eth0
default 192.168.200.254 0.0.0.0 UG 600 0 0 wlan0
link-local * 255.255.0.0 U 1000 0 0 eth0
192.168.1.0 * 255.255.255.0 U 100 0 0 eth0
192.168.200.0 * 255.255.255.0 U 600 0 0 wlan0
@Dennis Nolte 我假设这些包被接口丢弃了,因为 tcpdump 在停止监控后是这样说的。输出如下(由于内存不足而产生的随机数)
59 packages captured
59 packages received by filter
0 packages dropped by kernel
40 packages dropped by interface
接口丢弃的软件包范围从零到所有软件包。在我的测试中,内核从未丢弃过软件包。无法使用 wireshark 截图,因为它是一台没有连接屏幕的设备,而且我甚至不在与该设备相同的国家/地区。因此,我尝试修复该问题的所有方法都是通过 LAN 上的 SSH 进行的。但 LAN 连接只是临时的,用于维护工作,产品连接将是 WiFi。