如何阻止以太网网络连接丢弃?

我的基于以太网的网络连接不能保持一致。 我正在对网关运行ping,它将:

  • 工作一分钟
  • 冻结,超时或提供多秒响应时间
  • 重复

如果它被卡住了,我通过网络管理器小程序禁用/启用网络,一切都会再次正常工作一分钟。 发送280个数据包后,我得到41%的数据包丢失。 我尝试了不同的电缆和连接到网关,但这没有任何影响。 到网关的距离只有3英尺左右。

如果我切换到Windows,似乎工作正常,但Ubuntu是我的主要操作系统,我现在甚至无法使用它,因为我依赖于网络。

我的设置……

  • 操作系统:Ubuntu 11.04,双启动Windows 7
  • Mobo:技嘉Z68X-UD4-B3
  • CPU:Intel Core i7 2600K

编辑

有点澄清……网络管理员仍然将我显示为连接,但我无法访问网关或其他任何内容。 NM没有提示连接丢失,并且调用ifconfig表明我仍然有IP地址。

我尝试使用不同的电缆连接到不同的网关,同样的问题出现了。

按照要求:

lspci | grep -i eth 07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06) dmesg | tail -f [ 14.024709] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro,commit=0 [ 14.026443] EXT4-fs (sda7): re-mounted. Opts: commit=0 [ 14.176101] hda-intel: IRQ timing workaround is activated for card #2. Suggest a bigger bdl_pos_adj. [ 23.917731] eth0: no IPv6 routers present [ 726.109697] r8169 0000:07:00.0: eth0: link up [ 733.169494] r8169 0000:07:00.0: eth0: link up [ 753.930119] r8169 0000:07:00.0: eth0: link up [ 880.787332] r8169 0000:07:00.0: eth0: link up [ 1159.161283] r8169 0000:07:00.0: eth0: link up [ 1406.623550] r8169 0000:07:00.0: eth0: link up 

编辑

@ roland-taylor:Windows下始终可以使用网络。 Ping不会超时,应用程序不会抱怨没有网络可用性,大量下载不会中断或减慢。

下载官方realtek驱动程序。

http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&PNid=5&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false#2

然后从linux内核中删除r8169模块。

 # rmmod r8169  Unpack the tarball : # tar vjxf r8168-8.aaa.bb.tar.bz2 Change to the directory: # cd r8168-8.aaa.bb If you are running the target kernel, then you should be able to do : # ./autorun.sh (as root or with sudo) You can check whether the driver is loaded by using following commands. # lsmod | grep r8168 # ifconfig -a If there is a device name, ethX, shown on the monitor, the linux driver is loaded. Then, you can use the following command to activate the ethX. # ifconfig ethX up 

最后,将r8169驱动程序列入黑名单,将以下内容添加到/etc/modprobe.d/blacklist.conf:

 #blacklist r8169 driver blacklist r8169 

我在http://www.rvdavid.net/how-to-get-gigabit-speeds-from-rtl81118168b-pci-express-gigabit-ethernet-controller-on-ubuntu-linux/找到了它,它可以工作。 现在网速一切都很好。

就这样,我可以在下次SSD爆炸时找到它。 以下是删除损坏的r8169并在具有Linux Kernel 3.x的Ubuntu上插入r8168的说明。

内核3.x.

  • 下载r8168
  • 如果仍然标记为未解析,请应用此修补程序 。
  • 停止 :如果您打算使用DKMS,请立即跳至DKMS部分。
  • 运行sudo ./autogen.sh ,它将构建模块,删除旧模块(如果需要,将其列入黑名单)并将r8168.ko安装到/ lib / modules /’uname -r’/ drivers / net /。

DKMS

DKMS将在新内核安装时构建并安装该模块。 您还需要将旧模块列入黑名单。

如果您尚未将旧模块列入黑名单。

 echo 'rmmod r8169' | sudo tee /etc/modprobe.d/blacklist.conf 

安装DKMS和gcc。

sudo apt-get install dkms gcc

将模块源文件复制到持久位置,以便您以后不会意外删除它们。

sudo cp -R r8168-8.025.00 /usr/src

 echo 'PACKAGE_NAME=r8168 PACKAGE_VERSION=8.025.00 MAKE[0]="make" BUILT_MODULE_NAME[0]=r8168 BUILT_MODULE_LOCATION[0]="src/" DEST_MODULE_LOCATION[0]="/kernel/updates/dkms" AUTOINSTALL="YES"' | sudo tee /usr/src/r8168-8.025.00/dkms.conf 

然后跑,

 dkms add -m r8168 -v 8.025.00 dkms build -m r8168 -v 8.025.00 dkms install -m r8168 -v 8.019.00 sudo update-initramfs -u 

我有类似的问题,我找到了解决方案。

请参阅https://bugs.launchpad.net/ubuntu/+source/linux/+bug/889527

这可能是有用的

如果您在某些系统上双启动Windows,则可能会遇到r8169驱动程序的问题。 Windows默认情况下会在Windows关闭时禁用NIC以禁用Wake-On-Lan,并且此NIC将在下次Windows打开时保持禁用状态。 内核中的r8169驱动程序不知道如何从此禁用状态打开NIC; 因此,即使驱动程序加载并报告设备已启动,设备也不会响应。 若要解决此问题,只需启用“关闭后唤醒lan”function。 您可以通过Windows的设备管理器设置此选项。

编辑:在2.6.19.5和2.6.20.8内核中也存在使用Windows进行双启动的问题,因此可以安全地假设它将涉及所有2.6内核,直到内核开发人员将RTL8168的驱动程序更新为可以的版本从禁用状态打开NIC

还有一件事 – 使用驱动程序进行更改并防止在重新启动后再次启动r8169,我使用了这个:

http://ubuntuforums.org/showthread.php?t=723569

勘误表:

 echo 'blacklist r8169' | sudo tee /etc/modprobe.d/blacklist-r8169.conf dkms add -m r8168 -v 8.025.00 dkms build -m r8168 -v 8.025.00 dkms install -m r8168 -v 8.025.00 sudo update-initramfs -u