Linux中的一种解决办法:
1. 打开/boot/grub/menu.lst文件,在启动的核心kernel那行最后加上: acpi=off noapic。
其中:
1) acpi=off 禁止了一些电源高级管理功能,对你的应用程序没有影响。
2) noapic 改变了中断方式,对应用也没有影响。
详见: NETDEV WATCHDOG: eth0: transmit timed out问题
2. ethtool -K eth0 tso off
3. 重新装网卡驱动。
rmmod r8169 && modprobe r8169 && update-modules
或更彻底点重新下载个驱动安装,不一定下最新的,因为更新的驱动可能会不适合一些老网卡,所以老的驱动可能没有这个 问题。
4. 换用旧的内核试试。
5. 关闭ecn。 在文件/etc/sysctl.conf中加入
net.ipv4.tcp_ecn=0
6. 关闭IPV6支持。在文件/etc/modprobe.d/aliases中把alias net-pf-10 ipv6 替换成如下两行:
alias net-pf-10 off
alias ipv6 off
7. 强制设定网卡工作模式: mii-tool 100baseTx-HD
100baseTx-HD 是100M双绞线全双工的意思。其他的可以mii-tool --help看看,或到网上查查。
另外看到别人的办法:
以前是debian + win2K 双系统。最近终于决定要升级到winxp了。
在原来win的分区重新装了xp后,就出现这种问题了。
可偏偏此前还升级了debian,并在xp下运行过p2pover之类的软件。所以问题原因就不好确定了。
最后,确定原因是:winxp的网卡设置里有一项功能是在关闭xp时关闭网卡的网络唤醒(wake-on-lan)。而debian却偏偏不能把这个打开。这才出现了这个问题。
解决办法呢,就是在winxp下,右键点击“网上邻居”,点击“属性”,在右键点击“本地连接”,再点“属性”->"配置"->"高级",然后设置“Wake-on-LAN”为“enable”。然后重启,进入linux就可以联网了。