为什么我可以 ping 通 8.8.8.8 或 openDNS 服务器,但无法 ping 通其他网站?

为什么我可以 ping 通 8.8.8.8 或 openDNS 服务器,但无法 ping 通其他网站?

我正在 Debian Bullseye 中使用 USB 有线调制解调器连接互联网(通过 eth0 接口)(名称 -a >> Linux styx 5.10.0-8-amd64 #1 SMP Debian 5.10.46-4 (2021-08-03) x86_64 GNU/Linux)。有时,我的以太网接口突然停止。有趣的是 :

  1. 我可以 ping 到网关(成功),
  2. 我可以 ping 通 8.8.8.8(成功),
  3. 界面好像向上(我检查了IP地址显示
  4. 我通过以下方式重新启动界面如果向下首先,然后通过IFUP,什么也没发生,以太网接口名称从 eth0 更改为 enxMACADDRESS,但仍然没有互联网连接。
  5. 我检查了输出ip路由,与 eth0 工作时的配置相同。

我检查了之前的问题和答案(例如无连接, ETC。)。我可以 ping 到 8.8.8.8,但没有互联网(无法 ping 到其他 IP,例如 openDNS 的服务器)。

界面没有任何错误,已经up了。只是我必须拔掉并重新插入 USB 电缆,然后重新建立连接。 [编辑开始]评论和回答后,我检查了 /var/log/syslog,正如 Felicia 所说的答案,我发现:

Feb 21 11:40:30 localhost kernel: [ 3936.163162] usb-storage 3-5.4:1.2: USB Mass Storage device detected
Feb 21 11:40:30 localhost kernel: [ 3936.167079] scsi host10: usb-storage 3-5.4:1.2
Feb 21 11:40:30 localhost mtp-probe: checking bus 3, device 18: "/sys/devices/pci0000:00/0000:00:1d.7/usb3/3-5/3-5.x"
Feb 21 11:40:30 localhost mtp-probe: bus: 3, device: 18 was not an MTP device
Feb 21 11:40:30 localhost systemd-udevd[5898]: Using default interface naming scheme 'v247'.
Feb 21 11:40:30 localhost systemd-udevd[5898]: ethtool: autonegotiation is unset or enabled, the speed and duplex are not writable.
Feb 21 11:40:30 localhost kernel: [ 3936.225574] cdc_ether 3-5.x:1.0 enxXXXXXXXXXXXX: renamed from eth0
Feb 21 11:40:30 localhost mtp-probe: checking bus 3, device 18: "/sys/devices/pci0000:00/0000:00:1d.7/usb3/3-5/3-5.x"
Feb 21 11:40:30 localhost mtp-probe: bus: 3, device: 18 was not an MTP device
Feb 21 11:40:30 localhost systemd-udevd[5903]: Using default interface naming scheme 'v247'.
Feb 21 11:40:30 localhost systemd-udevd[5903]: ethtool: autonegotiation is unset or enabled, the speed and duplex are not writable.
Feb 21 11:40:30 localhost systemd[1]: Found device 1024.
Feb 21 11:40:30 localhost systemd[1]: Started ifup for enxXXXXXXXXXXXX.
Feb 21 11:40:30 localhost dhclient[5931]: Internet Systems Consortium DHCP Client 4.4.1
Feb 21 11:40:30 localhost sh[5931]: Internet Systems Consortium DHCP Client 4.4.1
Feb 21 11:40:30 localhost dhclient[5931]: Copyright 2004-2018 Internet Systems Consortium.
Feb 21 11:40:30 localhost sh[5931]: Copyright 2004-2018 Internet Systems Consortium.
Feb 21 11:40:30 localhost dhclient[5931]: All rights reserved.
Feb 21 11:40:30 localhost dhclient[5931]: For info, please visit https://www.isc.org/software/dhcp/
Feb 21 11:40:30 localhost sh[5931]: All rights reserved.
Feb 21 11:40:30 localhost sh[5931]: For info, please visit https://www.isc.org/software/dhcp/
Feb 21 11:40:30 localhost dhclient[5931]: 
Feb 21 11:40:30 localhost dhclient[5931]: Listening on LPF/enxXXXXXXXXXXXX/X:X:X:X:X:X
Feb 21 11:40:30 localhost sh[5931]: Listening on LPF/enxXXXXXXXXXXXX/X:X:X:X:X:X
Feb 21 11:40:30 localhost sh[5931]: Sending on   LPF/enxXXXXXXXXXXXX/X:X:X:X:X:X
Feb 21 11:40:30 localhost sh[5931]: Sending on   Socket/fallback
Feb 21 11:40:30 localhost sh[5931]: DHCPREQUEST for 192.168.x.100 on enxXXXXXXXXXXXX to 255.255.255.255 port 67
Feb 21 11:40:30 localhost dhclient[5931]: Sending on   LPF/enxXXXXXXXXXXXX/X:X:X:X:X:X
Feb 21 11:40:30 localhost dhclient[5931]: Sending on   Socket/fallback
Feb 21 11:40:30 localhost dhclient[5931]: DHCPREQUEST for 192.168.9.100 on enxXXXXXXXXXXXX to 255.255.255.255 port 67
Feb 21 11:40:30 localhost dhclient[5931]: DHCPNAK from 192.168.x.1
Feb 21 11:40:30 localhost sh[5931]: DHCPNAK from 192.168.x.1
Feb 21 11:40:30 localhost avahi-autoipd(enxXXXXXXXXXXXX)[5947]: Found user 'avahi-autoipd' (UID 108) and group 'avahi-autoipd' (GID 116).
Feb 21 11:40:30 localhost avahi-autoipd(enxXXXXXXXXXXXX)[5947]: Successfully called chroot().
Feb 21 11:40:30 localhost avahi-autoipd(enxXXXXXXXXXXXX)[5947]: Successfully dropped root privileges.
Feb 21 11:40:30 localhost avahi-autoipd(enxXXXXXXXXXXXX)[5947]: Starting with address 169.254.4.147

我还发现有一个文件/跑步/被称为/run/dhclient.enxXXXXXXXXXXXX.pid包括5931这与上面日志中所述的数字相同。但是,我的理解是,问题是由于错误而导致的,它将我的地址更改为 169.254.4.147**,这意味着它踢了我那个 IP,我再也看不到网络了。 [编辑结束]

[第二次编辑] 好的,这次再次发生故障,我准备分析它(我认为:D)。所以,这次我发现的是:

  1. 我检查是否可以 ping 到 8.8.8.8 以外的其他 IP,但没有成功,8.8.8.8 仍然成功。
  2. 我也无法 ping 通 169.254.4.147(这似乎是我掉入的私有 IP)!奇怪的。
  3. 我查了一下/sys/clas/net/enxXXXXXXXXXXXX/载体文件是否有网络,它说 1,所以它给了我 I am在线的
  4. 然而,直到拔掉插头,我在/var/log/syslog(即系统日志)中看不到任何接口或网络错误。当我拔下并重新插入 USB 电缆时,所有这些都显露出来。
  5. 我检查了 /etc/resolv.conf 和以前一样,即失败后没有改变。
  6. 我仍然只能 ping 到 8.8.8.8,无法 ping 到其他地址。
  7. 我在尝试 ;重新启动网络服务、ifup-down 接口、通过 dhclient -r 和 dhclient -4 等进行 IP 释放/renwe 等,但在所有这些过程中我仍然可以 ping 到 8.8.8.8。 8.8.8.8 是否有什么东西卡住了套接字等?

[第二次编辑结束]

  1. 是否有其他方法/命令来检查问题的根本原因是什么?

  2. 如何在不拔掉/重新插入电缆的情况下解决这个问题?

[编辑]我在中找到了答案回答。感谢 mcdizzle 的回答。问题是 tcp 包的时间戳,当我关闭并添加 openDNS 作为名称服务器时,这些解决了我的问题。

答案1

Feb 21 11:40:30 localhost sh[5931]: DHCPREQUEST for 192.168.x.100 on enxXXXXXXXXXXXX to 255.255.255.255 port 67
Feb 21 11:40:30 localhost dhclient[5931]: Sending on   LPF/enxXXXXXXXXXXXX/X:X:X:X:X:X
Feb 21 11:40:30 localhost dhclient[5931]: Sending on   Socket/fallback
Feb 21 11:40:30 localhost dhclient[5931]: DHCPREQUEST for 192.168.9.100 on enxXXXXXXXXXXXX to 255.255.255.255 port 67
Feb 21 11:40:30 localhost dhclient[5931]: DHCPNAK from 192.168.x.1

表示您正在尝试从 DHCP 服务器获取现有 IP 地址的 IP 地址,但遭到拒绝。因此,您可能会丢失该接口上的 IP 地址(使用 进行检查ip addr)。

因此请正确配置您的 DHCP 服务器。或者阻止您的接口更改 MAC 地址。或者任何导致 DHCPNAK 的原因。

(顺便说一句,您不需要x这些192.168地址;这些是私有 IP 地址,不会在您的私有网络之外使用)。

答案2

检查syslog,看看是否有与接口相关的错误:

sudo tail -f /var/log/syslog

如果您看到与界面相关的错误,内核升级可能会有所帮助。例如,您可以设置 bullseye向后移植并安装更新的向后移植内核,这可能会解决该问题。

相关内容