由于最近安装了新的互联网提供商(century link)和新的 C3000Z 路由器,我的 Ubuntu 16.04.6 机器偶尔会无法连接互联网。我的网络上没有其他设备出现此问题(包括 18.04 机器、Android 手机、iPhone、Windows 机器和 Echo),这就是为什么我认为我的电脑出了问题。
更详细地说,每天大约有 4 到 5 次,新的请求会突然停止工作,其中包括:
ping yahoo.com
nslookup msn.com
- 在浏览器中导航到 google.com
192.168.0.1
在浏览器中导航到我的路由器的管理控制台(这里无需 DNS 查找!)
但是!当我在 Zoom 视频通话中发生这种情况时(当我不在通话中时也会发生中断),即使无法建立其他新连接,Zoom 通话也将始终保持无缝运行。我觉得 Slack 可能也继续工作了一两次,但我的记忆不太准确。所以也许问题只在于创建新连接,尽管可能不在 DNS 查找中。
重新连接到同一个 wifi 网络总是可以解决问题...但暂时如此。
在伪中断期间,计算机认为它仍然连接到 wifi 网络。tcpdump 显示大量数据包被丢弃:
$ sudo tcpdump -vv -i wlp58s0 -W 1200
tcpdump: listening on wlp58s0, link-type EN10MB (Ethernet), capture size 262144 bytes
17:14:15.785694 IP (tos 0x0, ttl 45, id 25896, offset 0, flags [DF], proto UDP (17), length 1094)
44.233.230.198.8801 > 192.168.0.4.48514: [udp sum ok] UDP, length 1066
^C
1 packet captured
13079 packets received by filter
13072 packets dropped by kernel
如果我在断开/重新连接网络时让它运行:
$ sudo tcpdump -vv -i wlp58s0 -W 1200
tcpdump: listening on wlp58s0, link-type EN10MB (Ethernet), capture size 262144 bytes
-- this is where it freezes, until I reconnect to the network, at which point it dumps the following --
21:04:31.168038 IP (tos 0x0, ttl 64, id 45078, offset 0, flags [DF], proto UDP (17), length 75)
192.168.0.4.50205 > 9.9.9.9.domain: [bad udp cksum 0xd306 -> 0x1d68!] 19586+ A? addons-pa.clients6.google.com. (47)
21:04:31.170575 IP (tos 0x0, ttl 64, id 12823, offset 0, flags [DF], proto UDP (17), length 66)
192.168.0.4.52565 > 192.168.0.1.domain: [bad udp cksum 0x8195 -> 0xc70b!] 53364+ PTR? 9.9.9.9.in-addr.arpa. (38)
21:04:31.350540 IP (tos 0x0, ttl 64, id 12868, offset 0, flags [DF], proto UDP (17), length 70)
192.168.0.4.37370 > 192.168.0.1.domain: [bad udp cksum 0x8199 -> 0xf08f!] 28407+ PTR? 4.0.168.192.in-addr.arpa. (42)
21:04:31.353225 IP (tos 0x0, ttl 64, id 45094, offset 0, flags [DF], proto UDP (17), length 66)
192.168.0.4.52599 > 9.9.9.9.domain: [bad udp cksum 0xd2fd -> 0x2cf1!] 47256+ A? play.google.com.Home. (38)
21:04:31.386854 IP (tos 0x0, ttl 64, id 32603, offset 0, flags [DF], proto TCP (6), length 52)
192.168.0.4.34720 > 216.58.194.174.https: Flags [.], cksum 0x5bbc (incorrect -> 0x7522), seq 2562207201, ack 1450936360, win 1444, options [nop,nop,TS val 3592576 ecr 807890922], length 0
21:04:32.226837 IP (tos 0x0, ttl 64, id 45132, offset 0, flags [DF], proto UDP (17), length 79)
192.168.0.4.41087 > 9.9.9.9.domain: [bad udp cksum 0xd30a -> 0x4649!] 39943+ A? 17.client-channel.google.com.Home. (51)
21:04:32.229292 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 192.168.0.4 tell 192.168.0.12, length 46
21:04:59.938894 EAPOL key (3) v2, len 117
21:04:59.940299 EAPOL key (3) v1, len 117
21:04:59.945046 EAPOL key (3) v2, len 175
21:04:59.945118 EAPOL key (3) v1, len 95
21:04:59.962715 IP6 (hlim 1, next-header Options (0) payload length: 36) :: > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report v2, 1 group record(s) [gaddr ff02::1:ff90:cdb3 to_ex { }]
21:04:59.975011 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
0.0.0.0.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Request from 9c:b6:d0:e1:c3:53 (oui Unknown), length 300, xid 0xd280b925, Flags [none] (0x0000)
如果我在重新连接之前退出 tcpdump,它会总结:
我还尝试过其他方法,但是都没有解决问题:
Ignore
禁用 IPv6(在“网络连接”对话框中设置)- 将 IPv4 设置切换
Automatic (DHCP) addresses only
为Automatic (DHCP)
- 在网络连接中明确设置 DNS 服务器(通常我的机器使用路由器作为 DNS)
- 在路由器本身上明确设置静态 DNS,而不是 Century link 的动态 DNS。
- 禁用 dnsmasq:
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.0.1 # This is my router
nameserver 9.9.9.9
search Home
我对网络了解不多,而且我可以用谷歌搜索到很多信息。我下一步该去哪里找?
答案1
更换路由器解决了这个问题。我不知道为什么只有运行 ubuntu 的计算机受到影响。即使旧路由器和我的 ubuntu 机器之间存在一些不良交互,也可能是与机器的网卡或其他东西交互,而不是 ubuntu 本身。