我在一台 PC 上进行了 20.04.1 LTS 的原始安装,使用有线连接(无板载 WiFi)连接到 Netgear 千兆交换机,使用 RJ45 Cat6 数据线(已检查完整性)进行 LAN 访问,然后连接到 4G 路由器进行互联网访问。这是这台 PC 上唯一的操作系统。
我还有一个 Synology NAS,连接到 fstab 中安装的同一交换机,运行正常。NAS 共享 (GnV_Common) 使用 GNOME Extension Desktop Icons NG (DING) 显示在桌面上。
这种安排在 Ubuntu 18.04.5 LTS 中运行良好且没有问题(唯一的区别是 18.04 中 NAS 共享在桌面上的外观处理方式不同)
我提到 NAS 安排是因为,奇怪的是,当互联网中断时,NAS 共享也会从桌面上消失(可能与网络管理器有关)。
我无法确定这种行为的明显诱因。
有几次,我注意到 20.04.1 盒子上没有互联网访问,但网络管理器指示它已连接(上次事件的图像),并且系统托盘上的网络管理器图标保持不变:
该问题在 18.04.5 盒子上没有重复出现,并且继续访问网络和互联网。
我的研究让我(通过许多仅与 WiFi 问题相关的问题)找到了类似问题的答案
https://askubuntu.com/a/2905/307670
在这方面,managed=false
设置了标志。为了进行比较,我还检查了NetworkManager.conf
18.04.5 LTS 框中的文件,它以相同的方式设置,所以我不确定问题是相同的。
我发现恢复正常的唯一方法是重启,之后 PC 即可正常运行,网络共享也会恢复,并持续到下一次事件发生。我尚未发现此问题的任何可能触发因素;有时 PC 未使用时会在夜间发生此问题,而最近的一次事件发生在 PC 几个小时未使用但在此之前运行良好之后。我从未发现在使用期间发生此问题的情况。
我不愿意managed=false
不必要地更改该标志,因为目前还没有确凿的证据表明这是问题所在。在 18.04 LTS 上,使用相同设置不会发生这种情况,我不确定这是导致此现象的原因。
如果问题更加普遍,我本来希望它现在已经被标记出来,就像 WiFi 断线问题一样,那么,这是否只是这台电脑上一个孤立的未解决的问题,这个问题是否已经在其他地方得到解决而我错过了,或者 GNOME 扩展将共享添加到桌面是否与此有关?
我将非常感激任何能指出可能导致这一不寻常问题的原因的人士。
编辑:
是的,使用 CAT6 电缆。
的内容sudo lshw -C network
*-网络 描述:以太网接口 产品:RTL8111/8168/8411 PCI Express 千兆以太网控制器 供应商:瑞昱半导体有限公司 物理 ID:0 总线信息:pci@0000:05:00.0 逻辑名称:enp5s0 版本:15 序列号:00:e0:4a:68:33:44 大小:1Gbit/s 容量:1Gbit/s 宽度:64 位 时钟:33MHz 功能:pm msi pciexpress msix bus_master cap_list 以太网物理 tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd 自动协商 配置:自动协商=开启 广播=是 驱动程序=r8169 驱动程序版本=5.8.0-38-通用 双工=完整 固件=rtl8168h-2_0.0.2 02/26/15 ip=192.168.1.169 延迟=0 链接=是 多播=是 端口=MII 速度=1Gbit/s 资源:irq:19 ioport:d000(size=256)内存:fbc04000-fbc04fff 内存:fbc00000-fbc03fff
答案1
来自评论...
互联网消失了,但是系统托盘中的 NetworkManager 图标仍然显示其正常图标。(因此这似乎不是 MSI 中断问题)。
用户正在使用 CAT6 以太网电缆,并且在查看时显示 1G 连接lshw -C network
。
当前配置使用的是库存 r8169 驱动程序,已知该驱动程序存在与问题相同的问题。
dkms
我们通过安装并重新启动来替换 r8169 驱动程序r8168-dkms
。然后我们观察问题是否已解决。
更新#1:
如果这是 MSI/MSI-X 问题,请尝试此脚本...
#!/bin/sh
# https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1779817
# filename: r8169_disable_msi
# Drop it in /etc/initramfs-tools/scripts/init-top and chmod a+x it. Add 'r8169_disable_msi'
# to your kernel command line (/etc/default/grub, GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
# usually.)
# Remember to update-initramfs and update-grub as necessary.
# sudo update-initramfs -c -k $(uname -r)
# sudo update-grub
# reboot
# For the moment it disables MSI on everything with the ID 0x10ec:0x8168, as there seems to
# be no way to get the MAC version from userspace - and certainly not before the driver is
# loaded. Other PCI IDs may need adding..
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
prereqs
exit 0
;;
esac
disable_msi () {
for i in /sys/bus/pci/devices/*; do
if [ $(cat $i/vendor) = "0x10ec" -a $(cat $i/device) = "0x8168" ]; then
echo 0 >$i/msi_bus
fi
done
}
for x in $(cat /proc/cmdline); do
case ${x} in
r8169_disable_msi)
disable_msi
break
;;
esac
done
答案2
这对我有用。
sudo gedit /etc/network/interfaces
编辑/注释掉以以下内容开头的所有内容auto
。 为我:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
改变它到:
auto xxx
iface enp5s0 inet dhcp
其中 xxx 是逻辑名称(您可以使用此命令查看逻辑名称lshw -C network
然后重新启动网络组件。
sudo /etc/init.d/networking restart