假设我的无线连接出现问题。我应该运行哪些命令来与精通技术的朋友或在线支持社区分享它们的输出?
例如:
- 我如何知道我的无线网卡是否被识别?
- 如何获取哪些无线网络在覆盖范围内的信息?
- 我如何知道我是否已连接到无线网络但尚未连接到互联网?
我之所以问这个问题,是因为我看到很多关于无线连接问题的问题,但没有太多细节,比如这个。如果我能指出这个问题,以便提问者能够利用更多信息改进他们的问题,那将会很有用。我希望得到一个包含所有细节的全面答案,或者为了简洁起见,提供指向其他一般问题的链接。
答案1
要检查卡是否被识别,请运行:
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
示例 - 识别卡,正确识别品牌和型号,使用正确的驱动程序(驱动程序 = 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
要确保您已连接到无线网络(而不是以太网),请首先通过查看 的输出来识别无线接口(通常是 wlan0、eth1 或 eth2)sudo lshw -C network
。然后,查找 IP 地址以判断哪个接口已连接。
答案2
快速进行实验的能力是快速诊断的最佳方法。
我发现有两个诊断工具非常有价值,可以在 WiFi 可以工作但不可靠的情况下查明根本原因,例如间歇性丢失连接、会话挂起、网页冻结iwlist
等mtr
。
以下是如何有效使用iwlist
和使用mtr
:
1)低水平无线接收/传输是否健康?
watch sudo iwlist wlan0 scan
这提供了有关您的卡检测到的最强无线信号的宝贵信息。我发现、、、Channel
和最有用。Frequency
ESSID
Quality
Signal level
如果您没有信号,或者您的 ESSID 无法识别,您需要关注底层(硬件/驱动程序):路由器是否打开?天线方向是否最佳?设备是否距离路由器太远?您的 wifi 卡是否有正确的驱动程序?(为此您可能需要检查系统日志)
假设已知 ESSID,并且质量良好(大约为最大值的 30%-100%),您可以进入第二阶段,即更高级别的阶段:
2)WiFi连接建立后,连接是否稳定?
由于 TCP/IP 支持错误检测和重传,以及拥塞控制,WiFi 断开/重新连接通常是由于大量错误导致 TCP 放弃。与其等待完全断开连接(这种情况可能几分钟才会发生一次),我mtr
在一个单独的窗口中运行持续地查看Loss%
(数据包丢失百分比)和Avg
(平均往返时间(毫秒))列:
mtr <hostname>
查看此屏幕时,我不仅可以立即看到是否存在一些正在发生的传输/接收问题,还可以看到沿途哪个链接是最成问题/最慢的链接,以防我和目标之间有多个跳跃<hostname>
。
(如果你还没有mtr
安装,你可以使用以下方式安装sudo apt-get install mtr
:)
我发现这两个工具特别有价值,因为它们提供了 WiFi 连接的连续状态。我可以快速更改配置并立即看到更改对网络的影响。在查看上述屏幕时,您可以进行的一些实验示例包括:
- 编辑
/etc/network/interfaces
然后ifdown wlan0 && ifup wlan0
- 重新加载驱动程序:
modprobe <name_of_device_driver>...
- 重启网络:
service networking restart
- 重新调整 WiFi 卡天线
- 更改无线接口 MTU:例如
ifconfig wlan0 mtu 1472
- 禁用卡省电功能
- 在路由器 UI 中调整您的接入点传输功率、首选信道号、带宽等。
- 如果你使用中继器(又称范围扩展器),请将其关闭,等待,然后再次打开
由于您可以转动和试验的旋钮有很多,因此最关键的是能够在不断更新的屏幕上看到任何更改的即时效果。如果没有区别(根据我的经验,大多数情况下都是这样),只需记下来,然后恢复到之前的状态。但是,如果您突然看到速率Loss%
在 中上升mtr
,或者信号强度在 中急剧下降(或相反,大幅上升)iwlist
,您就知道您找到了确凿的证据(或解决方案)。
再次强调,从这一切中我们得到的首要启示是:快速实验是快速诊断 WiFi 问题的关键