Wifi连接但没有数据传输:“ping:sendmsg:没有可用的缓冲区空间”

我有一个在Windows XP上运行的桌面和一个在Ubuntu 12.04中运行的笔记本电脑。

最近我设置了一个无线路由器,以便能够通过wifi访问我的笔记本电脑上的互联网。 笔记本电脑轻松连接到wifi,但无法传输任何数据。 只有当我第一次打开笔记本电脑时,它能够传输一些数据只需几分钟,之后甚至无法ping通路由器。

Ping到路由器显示:“ping:sendmsg:没有可用的缓冲区空间”,但仍然显示wifi已连接。

请帮忙!

  1. 也许这是一个重复的IP地址?

  2. 它可能是另一个影响你的连接的软件,试图阻止Ubuntu防火墙。

    sudo service ufw stop

  3. 检查日志。

    cat /var/log/syslog | less

  4. 尝试调整缓冲区大小。

    echo 83886080 |sudo tee /proc/sys/net/core/wmem_max

  5. 问题出在路由器上。

我自己和许多其他人(根据我的谷歌搜索)在Ubuntu 11.10上遇到了同样的问题,而对我来说,我在10.x甚至11.04的网络驱动程序中也没有任何问题。

编辑:问题的原因没有解决,毕竟:’(。以下可能仍然涉及某些方式,所以我会留在这里供其他人参考。但事实certificate不是解决问题。也没有恢复到一个2.6.x的内核。


我的系统使用r8169驱动程序用于我的Realtek 8168芯片以太网端口(在我的情况下在主板上。注意:8168 – 不是8169!)

当我发现这篇文章时,我终于遇到了这个问题。 我很快确认我的8168卡正在使用r8169驱动程序运行…

 sudo lshw -class network 

…,这需要一段时间 – 只要耐心等待。 🙂

您可以在配置中看到正在使用的驱动程序:line …示例:…

 configuration: autonegotiation=on broadcast=yes driver=r8168 driverversion=8.026.00-NAPI ... 

然后我主要按照这篇文章中的说明安装并激活正确的驱动程序,根据需要更改特定路径以匹配我的系统。 请注意,驱动程序下载站点没有提到v3.xx内核(仅限2.4.x和2.6.x)但无论如何它都可以正常工作。

如果您只有一个网络接口,则应该在此阶段设置所有网络接口。

不幸的是,对我来说这并不是那么简单,因为我还安装了第二张卡,其有一块真正的8169芯片! : – /所以,我不能让r8169驱动程序禁用。

为了解决这个问题,我将/lib/module/your-kernel-version/drivers/net/r8169.bak文件(autorun.sh驱动程序安装程序脚本重命名)重命名为r8169.ko并编辑/ etc / modules,如下所示…

 # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. loop lp r8168 r8169 

… [最后两行添加]希望这会强制模块以相同的顺序加载,从而避免modprobe为错误的卡拾取r8169驱动程序。 有效!

对于OP …我正在更新这个以便其他人搜索解决方案,因为它在Google搜索结果中非常高。 希望你不要介意。

我用Centrino Ultimate-N 6300 8086:4238无线接口(在Thinkpad X201上)看到了这一点。 据我所知,这是无线驱动程序或其固件中的已知错误,可能与Bug#836250相同。 我已经问过“ 什么”ping实际意味着什么:sendmsg:没有可用的缓冲空间“是什么意思? ”。

解决方法

  • 由于我只是间歇性地得到这个,所以解决方法是在出现问题时完全重置无线网络 :

     sudo modprobe -r iwlwifi sudo modprobe iwlwifi 
  • 另一种可能的解决方法是将路由器切换到仅802.11g模式(我认为仅在连接到n网络时才会出现此问题)