![从 Ubuntu 17.10 更新后,Ubuntu 18.04 以太网连接随机中断](https://linux22.com/image/1163825/%E4%BB%8E%20Ubuntu%2017.10%20%E6%9B%B4%E6%96%B0%E5%90%8E%EF%BC%8CUbuntu%2018.04%20%E4%BB%A5%E5%A4%AA%E7%BD%91%E8%BF%9E%E6%8E%A5%E9%9A%8F%E6%9C%BA%E4%B8%AD%E6%96%AD.png)
我曾经用过Ubuntu 17.10之前当我更新到Ubuntu 18.04,我开始遇到有线以太网互联网连接问题。我对 Ubuntu 的经验非常有限,以下是输出:
1.lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 06)
00:01.0 PCI bridge: Intel Corporation Skylake PCIe Controller (x16) (rev 06)
00:08.0 System peripheral: Intel Corporation Skylake Gaussian Mixture Model
00:14.0 USB controller: Intel Corporation 200 Series PCH USB 3.0 xHCI Controller
00:14.2 Signal processing controller: Intel Corporation 200 Series PCH Thermal Subsystem
00:16.0 Communication controller: Intel Corporation 200 Series PCH CSME HECI #1
00:17.0 SATA controller: Intel Corporation 200 Series PCH SATA controller [AHCI mode]
00:1c.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #7 (rev f0)
00:1f.0 ISA bridge: Intel Corporation 200 Series PCH LPC Controller (B250)
00:1f.2 Memory controller: Intel Corporation 200 Series PCH PMC
00:1f.3 Audio device: Intel Corporation 200 Series PCH HD Audio
00:1f.4 SMBus: Intel Corporation 200 Series PCH SMBus Controller
01:00.0 VGA compatible controller: NVIDIA Corporation GP108 (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP108 High Definition Audio Controller (rev a1)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
2.ifconfig -a
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 4096
inet 129.93.213.104 netmask 255.255.255.0 broadcast 129.93.213.255
ether 30:9c:23:3f:a4:e1 txqueuelen 1000 (Ethernet)
RX packets 29736 bytes 21675467 (21.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14893 bytes 2650128 (2.6 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 121 base 0x5000
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 6366 bytes 711610 (711.6 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6366 bytes 711610 (711.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
3.sudo lshw -C network
*-network
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:02:00.0
logical name: enp2s0
version: 15
serial: 30:9c:23:3f:a4:e1
size: 1Gbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8168 driverversion=8.045.08-NAPI duplex=full ip=129.93.213.104 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:121 ioport:d000(size=256) memory:df104000-df104fff memory:df100000-df103fff
怎样才能修复此问题?
答案1
问题很可能出在您的 Ubuntu 机器之外。我以前也遇到过这个问题,最后发现是我的交换机端口有问题。以下是您可以尝试的一些方法:
- 更换以太网电缆/确保它是正确的千兆电缆(Cat5e,Cat6)。
- 检查网络上的其他设备是否存在类似问题。如果它们遇到同样的问题,则可能是交换机或路由器的问题,具体取决于您的网络布局。
ifconfig -a
在计算机运行几个小时后查看输出。检查是否存在以下错误类别:dropped
、、等。除非问题非常突出,否则这些错误通常不会在启动后立即显示。每个类别都表示计算机连接的不同方面出现了问题(如果您的计算机连接到集线器,则会发生冲突)overruns
。collisions
- 将你的 Ubuntu 机器插入交换机/路由器的另一个端口。尝试重现该问题。
答案2
driver=r8168 driverversion=8.045.08-NAPI
r8168-dkms
使用Ubuntu 17.10时已经安装了内核包。
升级后它仍留在那里,但不再需要。
删除它
sudo apt purge r8168-dkms
sudo modprobe -r r8168
sudo modprobe r8169
您的网络适配器将由树内模块处理r8169
,这样应该可以正常工作。
正是在这次适配器修订版的升级过程中,我曾多次遇到过这个问题。
答案3
有相同的网络硬件和相同的问题。运行 16.04 LTS。
也尝试了排除法,只注意到数据传输时中断次数减少,例如文件传输、VOIP 通话。由于我宁愿受折磨也不愿运行 Windows,所以找到解决方案是必不可少的。
修复 1
在系统设置 | 软件和更新中,在 Ubuntu 软件选项卡上,确保选中“设备专有驱动程序”。然后:
sudo apt install r8168-dkms
然后重启。这将安装 Realtek 驱动程序,该驱动程序对某些人有用,因此发布在这里。对我而言不起作用,因此...
修复 2
在路由器界面(如果可以访问)为有问题的PC分配一个固定IP,然后重新启动路由器。
这对连接有稳定作用,但仍会出现一些掉线,因此继续搜索...
修复 3
发现问题:我的 ISP。使用以下设备监控第一台机器:
tail -f /var/log/kern.log
发现每次发生断开连接时,都会有一个条目:
“...断开‘Wired-default’连接以满足新的激活请求。”
但没有提出“新的激活请求”!
因此,将第二台有线机器连接到路由器,并像第一台一样对其进行监控。发现断开连接的时间戳相同。为了验证,直接连接到(桥接)调制解调器,这排除了路由器可能的原因。
向 ISP 报告了调查结果,他们采取了行动,现在一切都恢复正常。