有线连接偶尔会断开 Ubuntu 20.04.1

有线连接偶尔会断开 Ubuntu 20.04.1

我在一台 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.conf18.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

相关内容