如何解决无线连接问题?

假设我的无线连接有问题。 我应该运行哪些命令与技术娴熟的朋友或在线支持社区分享他们的输出?

例如:

  • 如何辨别我的无线网卡是否被识别?
  • 如何获取有关哪些无线网络在范围内的信息?
  • 如何判断我是否连接到无线网络,而不是互联网?

我问这个问题是因为我看到很多关于无线连接问题的问题,没有很多细节,比如这个问题 。 如果我可以指出这个问题,以便提问者可以用更多信息改进他们的问题,那将是有用的。 我希望能够全面回答所有细节,或者为了简洁而链接到其他通用问题。

要检查卡是否被识别,请运行:

sudo lshw -C network 

要么

 lspci -nnk | grep -iA2 net 

第二个命令很有用,因为它显示了供应商和产品ID [8086:4222]:

 ~$ lspci -nnk | grep -iA2 net 06:00.0 Network controller [0280]: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection [8086:4222] (rev 02) Subsystem: Hewlett-Packard Company PRO/Wireless 3945ABG [Golan] Network Connection [103c:135c] Kernel driver in use: iwl3945 Kernel modules: iwl3945 

示例 – 正确识别卡识别,品牌和型号,正在使用正确的驱动程序(driver = iwl3945),并建立无线连接(ip = 192.168.2.81):

 sudo lshw -C network [sudo] password for hp: *-network description: Wireless interface product: PRO/Wireless 3945ABG [Golan] Network Connection vendor: Intel Corporation physical id: 0 bus info: pci@0000:06:00.0 logical name: wlan0 version: 02 serial: 00:13:02:c8:d2:75 width: 32 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=iwl3945 driverversion=3.2.0-35-generic firmware=15.32.2.9 ip=192.168.2.81 latency=0 link=yes multicast=yes wireless=IEEE 802.11abg resources: irq:45 memory:80000000-80000fff 

要确保连接到无线网络,而不是以太网网络,请首先通过查看sudo lshw -C network的输出来识别无线接口(通常是wlan0,eth1或eth2)。 然后,查找IP地址以告知哪个接口已连接。

快速实验的能力是快速诊断的最佳方法。

我发现两个诊断工具非常有用,可以在WiFi工作的情况下查明根本原因,但是不可靠,例如间歇性地丢失连接,会话挂起,网页冻结是iwlistmtr

以下是如何有效地使用iwlistmtr

1)低级无线接收/传输是否健康?

 watch sudo iwlist wlan0 scan 

这提供了有关您的卡检测到的最强无线信号的宝库信息。 我发现最有用的ChannelFrequencyESSIDQualitySignal level

如果您没有信号,或者您的ESSID无法识别,则需要关注低级别(硬件/驱动程序):路由器是否打开? 天线是否以最佳方式定向? 设备离路由器太远了吗? 你有无线卡的正确驱动程序吗? (为此您可能需要检查系统日志)

假设ESSID已知且质量良好(比如最大值的30%-100%),您可以进入第二个更高级别的阶段:

2)建立WiFi连接后,连接是否稳定?

由于TCP / IP支持使用重传和拥塞控制进行错误检测,因此WiFi断开/重新连接通常是TCP放弃时出现大量错误的结果。 我没有等待完全断开连接(可能只在几分钟内发生一次),而是在一个单独的窗口中运行mtr持续观察Loss% (数据包丢失百分比)和Avg (平均往返时间,以毫秒为单位)列:

 mtr  

在看这个屏幕时,我可以立即看到是否存在一些正在进行的传输/接收问题,但是在我和目标之间有多个跳跃的情况下,沿途哪个链路是最有问题/最慢的链路。

(如果您没有安装mtr ,可以使用以下sudo apt-get install mtr安装: sudo apt-get install mtr

我发现这两个工具特别有价值,因为它们提供了WiFi连接的连续状态。 我可以快速更改配置并立即看到我的更改对网络的影响。 您在查看上述屏幕时可能会做的一些实验示例如下:

  • 编辑/etc/network/interfaces然后ifdown wlan0 && ifup wlan0
  • 重新加载驱动程序: modprobe ...
  • 重启网络: service networking restart
  • 重新调整WiFi卡天线的方向
  • 更改无线接口MTU:例如ifconfig wlan0 mtu 1472
  • 禁用卡的省电function
  • 在路由器UI中调整接入点传输功率,首选信道号,带宽等。
  • 如果您使用转发器(也称范围扩展器),请将其关闭,等待,然后再将其打开

由于有很多旋钮可以转动和试验,最重要的是能够看到任何变化对不断更新的屏幕的直接影响。 如果它没有区别(大多数情况下,根据我的经验),只需记下它,然后恢复到以前的状态。 但是,如果您突然看到Loss%率在mtr跳跃,或者信号强度在iwlist急剧下降(或相反地,向上跳跃),您知道您已经找到了吸烟枪(或修复)。

同样,所有这一切的首要问题是: 快速实验是能够快速诊断WiFi问题的关键