更新:
我最近组装了一台新电脑,并将其设置为双启动 Windows 7 和 Ubuntu 11.10。
在 Windows 中,使用相同的硬件,我的 LAN 连接很稳定。然而,在 Ubuntu 中,我的网络接口会定期死机并自行重置;我的连接会稳定 30 秒,然后又会断开 30 秒。当我查看日志时:
tail -f /var/log/kern.log
我看到“eth0 link up”消息定期出现,与连接的恢复相对应。
我几个月前就发布了原始问题,但误解了发生了什么。在 Windows 中,互联网连接正常的情况下,我几个月来一直忽略这个问题。请参阅下面的答案以了解解决方案(驱动程序)。
原始帖子
在 Ubuntu 中,尽管我与 LAN 保持着稳定的连接(ping 路由器 IP 地址始终返回良好结果),但我的互联网连接时断时续。当我连续 ping 74.125.227.18(google.com 服务器)时,我会在一段时间内收到响应,然后开始收到“目标主机无法访问”的提示,一段时间后,我又会收到响应。这种情况一直发生,每隔一两分钟就会断开连接约 30 秒。
我通过网络管理器还是通过 /etc/network/interfaces 配置网络似乎没什么区别。我使用以下设置进行配置:
- 地址 192.168.1.101
- 网络 192.168.1.0
- 网关 192.168.1.99(我的路由器的 IP 地址)
- 网络掩码 255.255.255.0(确认为路由器的正确网络掩码)
- 广播192.168.1.255(也与路由器确认)。
ifconfig 确认这些设置有效:
eth0 Link encap:Ethernet HWaddr 50:e5:49:40:da:a6
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::52e5:49ff:fe40:daa6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11557 errors:0 dropped:11557 overruns:0 frame:11557
TX packets:13117 errors:0 dropped:211 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9551488 (9.5 MB) TX bytes:1930952 (1.9 MB)
Interrupt:41 Base address:0xa000
当我使用自动 DHCP 地址设置时,我遇到了同样的问题,尽管我确实确认网络上没有其他机器具有我想要使用的静态 IP 地址。
正如我所说,与本地网络的连接保持稳定 - 我 ping 192.168.1.* 时从未遇到任何问题 - 这是我间歇性无法访问的互联网地址。这不是 DNS 问题,因为直接 ping 已知 IP 地址显示相同的行为。此外,我不认为这是硬件问题,因为我在 Windows 上的同一台机器上从未遇到任何互联网连接问题。网络硬件内置于主板中:Gigabyte Z68XP-UD3P。
根据更新管理器,我设法将操作系统完全更新,但这并没有解决问题,而且由于我对网络架构的了解有限,我束手无策。我能看到的唯一线索是 ifconfig 报告了大量丢包,但我不知道该怎么做。
更新: 看来我的问题比我描述的更一般;现在当我尝试同时 ping 路由器和谷歌时,它们同时无法访问。运行 ifdown eth0 然后运行 ifup eth0 可以暂时恢复;如果我等待几分钟,它就会恢复。我将通过间歇性网络连接问题扩大搜索范围。
答案1
解决方案是安装适合我的以太网适配器的驱动程序,该适配器内置于我的主板中。我检查了适配器的型号和版本,以及 Linux 内核的版本:
$ lspci | grep Ethernet
07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
$ uname -r
3.0.0-15-generic
然后进入制造商的驱动程序下载页面:
并下载了最匹配的驱动程序。我有点犹豫,因为 uname 报告的内核版本比驱动程序明确支持的版本更新,但我使用下载包中的 autorun 命令安装了它,一切似乎都运行良好。
故事的寓意是:不要像我一样以为 Linux 预先打包了您需要的所有驱动程序。
答案2
它可以是以下几种情况:
磁盘硬件故障(例如 I/O 错误)可能导致网络中断,因为它无法存储来自浏览器的数据。
防火墙阻止流量,应该有一条规则允许 tcp 25,53,80,110,443 出去,也允许 udp 53 出去。
如果您有多个防火墙程序同时运行,这也会成为一个问题,如 ufw 和 gufw,最好只使用 gufw...
答案3
我刚刚遇到了类似的问题。在我的例子中,ifconfig 显示没有丢弃或超限数据包,但“route”显示了通过损坏的 wlan0 设备的虚假路由:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
default 192.168.0.1 0.0.0.0 UG 100 0 0 wlan0
link-local * 255.255.0.0 U 1000 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 wlan0
192.168.0.0 * 255.255.255.0 U 1 0 0 eth0
执行“sudo ifconfig wlan0 down”可以解决我的问题。
我提交了https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/917399 为了这。
答案4
我使用 wifi 时断时续地连接互联网,我刚刚编辑了我的连接并检查了使用 Ipv4 并删除了我的有线连接,它对我有用。我正在使用 ubuntu 13。我希望这会对其他人有所帮助。