我的 15.04 偶尔会遇到 LAN 互联网连接停止工作的问题。这种情况通常在启动后立即发生,但有时也会在浏览过程中发生,而无需执行任何特殊操作。
我的应用程序(Firefox、Skype 等)报告没有网络访问,并且ping google.com
和ping 8.8.8.8
也放弃,并且 ping 我的路由器(ping 192.168.0.1
)。
如果发生这种连接丢失,我会点击网络指示器并选择“断开连接”,等待一秒钟,然后重新连接相同的连接。经过此过程后,一切似乎又恢复正常。
今天,几分钟后,它也自行消失了,但随后又出现了一些连接中断。
我该如何解决这个问题?下次发生这种情况时我需要观察什么才能给您提供重要信息?我最终如何才能防止此类连接丢失,或者我至少可以有一个自动检测和解决它的解决方法吗?
更新 1:
$ sudo lshw -C network
*-network
description: Ethernet interface
product: 82573L Gigabit Ethernet Controller
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:02:00.0
logical name: eth0
version: 00
serial: 00:17:31:a1:f5:fa
size: 100Mbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=2.3.2-k duplex=full firmware=0.5-7 ip=192.168.0.107 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s
resources: irq:24 memory:cfee0000-cfefffff ioport:c800(size=32)
更新 2:
/var/log/syslog
上次连接失败时左右的内容:
Jul 12 16:14:23 MaxData-Desktop-Ubuntu kernel: [ 5298.718729] [UFW BLOCK] IN=eth0 OUT= MAC=01:00:5e:00:00:01:24:65:11:25:b0:0c:08:00 SRC=192.168.0.1 DST=224.0.0.1 LEN=36 TOS=0x00 PREC=0xC0 TTL=1 ID=0 DF PROTO=2
Jul 12 16:15:07 MaxData-Desktop-Ubuntu whoopsie[670]: [16:15:07] Cannot reach: https://daisy.ubuntu.com
Jul 12 16:15:07 MaxData-Desktop-Ubuntu whoopsie[670]: [16:15:07] offline
Jul 12 16:15:27 MaxData-Desktop-Ubuntu whoopsie[670]: [16:15:27] Cannot reach: https://daisy.ubuntu.com
Jul 12 16:15:47 MaxData-Desktop-Ubuntu whoopsie[670]: [16:15:47] Cannot reach: https://daisy.ubuntu.com
Jul 12 16:16:07 MaxData-Desktop-Ubuntu whoopsie[670]: [16:16:07] Cannot reach: https://daisy.ubuntu.com
Jul 12 16:16:28 MaxData-Desktop-Ubuntu kernel: [ 5423.720176] [UFW BLOCK] IN=eth0 OUT= MAC=01:00:5e:00:00:01:24:65:11:25:b0:0c:08:00 SRC=192.168.0.1 DST=224.0.0.1 LEN=36 TOS=0x00 PREC=0xC0 TTL=1 ID=0 DF PROTO=2
Jul 12 16:16:30 MaxData-Desktop-Ubuntu whoopsie[670]: [16:16:30] Cannot reach: https://daisy.ubuntu.com
Jul 12 16:16:50 MaxData-Desktop-Ubuntu whoopsie[670]: [16:16:50] Cannot reach: https://daisy.ubuntu.com
Jul 12 16:17:01 MaxData-Desktop-Ubuntu CRON[9122]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jul 12 16:17:10 MaxData-Desktop-Ubuntu whoopsie[670]: [16:17:10] Cannot reach: https://daisy.ubuntu.com
Jul 12 16:18:33 MaxData-Desktop-Ubuntu kernel: [ 5548.718565] [UFW BLOCK] IN=eth0 OUT= MAC=01:00:5e:00:00:01:24:65:11:25:b0:0c:08:00 SRC=192.168.0.1 DST=224.0.0.1 LEN=36 TOS=0x00 PREC=0xC0 TTL=1 ID=0 DF PROTO=2
Jul 12 16:20:38 MaxData-Desktop-Ubuntu kernel: [ 5673.717889] [UFW BLOCK] IN=eth0 OUT= MAC=01:00:5e:00:00:01:24:65:11:25:b0:0c:08:00 SRC=192.168.0.1 DST=224.0.0.1 LEN=36 TOS=0x00 PREC=0xC0 TTL=1 ID=0 DF PROTO=2
Jul 12 15:12:48 MaxData-Desktop-Ubuntu gnome-session[6329]: message repeated 2 times: [ debconf: DbDriver "passwords" warning: could not open /var/cache/debconf/passwords.dat: Keine Berechtigung]
Jul 12 16:21:53 MaxData-Desktop-Ubuntu gnome-session[6329]: (process:9144): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Jul 12 16:22:23 MaxData-Desktop-Ubuntu whoopsie[670]: [16:22:23] online
Jul 12 16:22:23 MaxData-Desktop-Ubuntu kernel: [ 5778.310686] [UFW BLOCK] IN=eth0 OUT= MAC=00:17:31:a1:f5:fa:24:65:11:25:b0:0c:08:00 SRC=198.252.206.25 DST=192.168.0.107 LEN=110 TOS=0x00 PREC=0x00 TTL=50 ID=50591 DF PROTO=TCP SPT=443 DPT=54409 WINDOW=33 RES=0x00 ACK PSH URGP=0
此代码片段前后还有更多[UFW BLOCK]
行,但在我看来它们并不可疑。我在 中也有类似的行dmesg
,但仅此而已。
答案1
首先,使用以下命令识别网络设备的驱动程序:
lshw -C network
寻找driver=
。
接下来,检查日志以查找设备断开连接的原因。我建议您查看驱动程序和网络管理器正在执行的操作:
cat /var/log/syslog | grep -e some_driver -e etwork | tail -n 20
理想情况下,在互联网连接断开时运行此操作。
然后我建议您搜索此网站并在 Google 上搜索您的驱动程序名称和“断开连接”以寻找可能的解决方案。您也可以编辑您的问题以添加其他详细信息,我们很乐意为您提供帮助。
如果您希望发布您的系统日志结果,由于它很长,请将其发布到这里并提供链接:http://paste.ubuntu.com
您已确认臭名昭著的 e1000e。您可以尝试几种方法。可能的解决方案似乎经常有效,但并非总是如此,即禁用千兆位速度。您可以暂时尝试以下方法:
sudo ethtool --change eth0 speed 100 autoneg off
如果这有帮助,我们会将参数放入 rc.local 以使它们持久。
答案2
无论出于什么原因,这些问题在最近变得越来越少见。
除此之外,每当发生这种情况时,我都会运行以下命令来断开连接并重新连接:
nmcli con down "CONNECTION NAME" && nmcli con up "CONNECTION NAME"
~/.bashrc
为了加快打字速度,我通过在我的文件中附加以下行来为其创建了一个别名:
alias reconnect='nmcli con down "CONNECTION NAME" && nmcli con up "CONNECTION NAME"'
答案3
您所描述的似乎是 dhcp 租约问题。当您连接到路由器时,dhcp 会在特定时间内为您提供 ip(这就是所谓的租约),然后会进行续订。
例如,这是我的系统日志中的内容:
$ grep 'renew' /var/log/syslog Jun 30 20:38:01 anaconda dhclient: bound to 192.168.43.209 -- renewal in 1342 seconds.
那么,我的假设是,你仍然拥有 IP,因此你的机器被报告为已连接,但实际上租约尚未续签或出现故障/失败。
我建议尝试切换你正在使用的 dhcp 客户端。dhclient
如果我没记错的话,NetworkManager 是默认自带的。你可以尝试安装dhcpcd
(有关其他选项,请查看apt-cache search dhcp
)。我建议这个的原因是因为man NetworkManager.conf
它说这是受支持的(以及默认的,dhclient
)。
然后/etc/NetworkManager/NetworkManager.conf
你需要输入下面这行代码dhcp=dhcpd
。[main]
例如,
[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq
dhcp=dhcpcd
[ifupdown]
managed=false
我遇到过类似的问题,网络图标显示已连接,但实际上已停止工作,但我最近才意识到发生了什么,因为我正在慢慢学习网络知识。我不会说这是 100% 可靠的解决方案,但这是我能建议的。至少在我尝试了 dhcp 客户端设置后,我很少遇到这个问题。
另外,尝试禁用 ipv6、禁用 n 通道 wifi(如果您的卡支持的话)和电源管理,按照本文中的建议进行操作:http://itsfoss.com/speed-up-slow-wifi-connection-ubuntu/这些技巧主要是为了提高速度,但不会造成伤害