我的网络堆栈现在似乎出了问题。不确定从哪里开始调试。我有 Ubuntu 18.10,运行带有 QEMU/KVM 的 Windows 10 VM。网络桥接在一起,因此 Ubuntu 和 Windows 都显示在同一子网上。计算机本身通过以太网直接连接到调制解调器/路由器。
在 Ubuntu 18.10 上过夜运行 ping:
--- 8.8.8.8 ping statistics ---
47870 packets transmitted, 45768 received, 4.39106% packet loss, time 48161ms
rtt min/avg/max/mdev = 7.666/26.841/1089.663/29.587 ms, pipe 2
在 Windows VM 上同时运行相同的命令:
Ping statistics for 8.8.8.8:
Packets: Sent = 47466, Received = 47453, Lost = 13 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 8ms, Maximum = 521ms, Average = 26ms
Linux端网络配置:
bridge0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.18 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::5f60:4c3c:6e7d:fe0d prefixlen 64 scopeid 0x20<link>
inet6 2607:f2c0:e00a:6fb:909a:d129:4ca4:5178 prefixlen 64 scopeid 0x0<global>
inet6 2607:f2c0:e00a:6fb::4 prefixlen 128 scopeid 0x0<global>
ether 62:e1:cd:28:fc:23 txqueuelen 1000 (Ethernet)
RX packets 1156702 bytes 266528351 (266.5 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1321781 bytes 148373341 (148.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether ac:1f:6b:77:45:68 txqueuelen 1000 (Ethernet)
RX packets 1141435 bytes 826615245 (826.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1136699 bytes 175653093 (175.6 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0x52300000-52320000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 5990 bytes 445099 (445.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5990 bytes 445099 (445.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vmtap0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::60e1:cdff:fe28:fc23 prefixlen 64 scopeid 0x20<link>
ether 62:e1:cd:28:fc:23 txqueuelen 1000 (Ethernet)
RX packets 1182468 bytes 136243741 (136.2 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1480981 bytes 686427281 (686.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
答案1
0)上下文。当您进行测试时,请尽可能记住您注意到的导致您进行过夜测试的原因。把它写下来可能会有所帮助。将其编辑到问题中。至少我认为这是有原因的;为了好玩而通宵运行命令是不寻常的:-)。
0a) 贝叶斯定理。我确认这“似乎是非常错误的”。这不是一个众所周知的问题。因此请记住,您的惊讶很可能是由于您误解或在测试方法中犯了错误而引起的。
一般来说,你可以写很多更详细地了解你的问题。首先,您没有说明操作系统是什么、VM 软件、您的路由器的 LAN 连接、您的路由器所连接的 ISP 类型。或者,如果每 100 分钟,您的互联网连接就会停止工作 4 分钟:-)。
(但说实话,我也可以说,除了严格质疑你的测试方法之外,我不知道从哪里开始。)
1次。如果你把它画出来,会不会一直有丢包,或者在某些时候丢包很严重?
您还可以缩短ping
间隔以获得更快的统计数据(“flood ping”左右),但您不应该对 Google 这样做(除非您为此付费:-)。而是用于traceroute 8.8.8.8
查找 ISP 内的第一个或第二个 IPv4 地址。 (您的 ISP 内的第一个可能是编号为 3 的线路。 ping 时间也可以作为线索)。谨防被跟踪路由结果所迷惑;它是专家的工具。
2) 通过查看问题是否也适用于 ping 本地路由器来具体确认这有多奇怪。同时运行这两个测试,以便您进行良好的比较。 (不过,请记住,与一次运行一个结果相比,这可能会产生不同的结果)
由于您没有说您使用的是直连以太网,因此上述问题是一个非常重要的问题。通常你想要排除 Wi-Fi 异常或 ISP 异常(或者至少尝试排除它是仅有的问题的原因)。这些是家庭网络使用中最常见的两个问题来源,因此排除其中一个非常有价值。
从技术上讲,您显示eno1
的可能是以太网,但您仍然可以使用像电力线网络这样奇怪的东西。
如果可能,请让其他人对您的路由器执行 ping 操作。我喜欢https://www.thinkbroadband.com/broadband/monitoring/quality 即,如果您的线路在常用工具上显示出明显的数据包丢失 - 那么可能是因为您的线路上存在数据包丢失:-)。这取决于您的路由器防火墙是否允许对其进行 ping 操作;可能有一个设置。
3)抓包即Wireshark。与 Linux 相比,Windows 生成的 ping 数据包看起来是否有所不同? (可能需要在 Windows 内运行 Wireshark,具体取决于)。我们已经预计源 IPv4 地址和源 MAC 地址会有所不同。如果确实如此,您也许可以使用各种选项稍微调整 Linux ping 数据包。