菜鸟科技网

Linux命令行如何连接WiFi?

在Linux命令行环境下管理无线网络连接是一项常见需求,尤其对于服务器管理员或偏好键盘操作的用户而言,通过命令行工具,可以高效地扫描可用网络、连接指定WiFi、管理网络配置以及排查连接问题,本文将详细介绍Linux命令行下WiFi操作的核心方法,涵盖工具选择、具体命令及实用技巧。

Linux命令行如何连接WiFi?-图1
(图片来源网络,侵删)

Linux系统管理WiFi的工具选择依赖于发行版和桌面环境,常见的命令行工具有iwiwconfigwpa_supplicantnmcli(NetworkManager的命令行工具)以及wpa_cli等。iwiwconfig是用于无线设备配置的基础工具,而wpa_supplicant负责处理WPA/WPA2等安全协议的认证,nmcli则提供了更高级的网络管理功能,尤其适合现代Linux发行版。

无线网卡状态检查

在操作前,需确认系统是否识别到无线网卡,使用iwconfig命令可以列出所有无线网络接口:

iwconfig

输出结果中通常会显示wlan0wlp3s0等接口名称,若未显示,可能需要检查驱动是否正确加载或硬件是否正常。ip a命令也可用于查看网络接口,包括无线网卡:

ip a

扫描可用WiFi网络

使用iwiwlist命令可以扫描周围的无线网络。iw是更现代的工具,推荐优先使用:

Linux命令行如何连接WiFi?-图2
(图片来源网络,侵删)
iw dev wlan0 scan

该命令会显示详细网络信息,包括ESSID(网络名称)、BSSID(MAC地址)、频率、加密方式、信号强度等,若iw不可用,可尝试iwlist

iwlist wlan0 scan

扫描结果可能较长,可通过管道和grep命令筛选特定信息,例如只显示ESSID:

iw dev wlan0 scan | grep SSID

配置无线网络连接

1 使用wpa_supplicant(适用于无GUI环境)

wpa_supplicant是处理WiFi认证的核心工具,创建或编辑配置文件/etc/wpa_supplicant/wpa_supplicant.conf,添加目标网络的配置信息:

network={
    ssid="YourWiFiName"
    psk="YourPassword"
    key_mgmt=WPA-PSK
}

ssid为WiFi名称,psk为密码,key_mgmt根据加密方式选择(如WPA-PSK、WPA-PSK-SHA256等),配置完成后,使用以下命令启动连接:

Linux命令行如何连接WiFi?-图3
(图片来源网络,侵删)
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

参数说明:-B表示后台运行,-i指定接口,-c指定配置文件,通过dhclientdhcpcd获取IP地址:

dhclient wlan0

2 使用nmcli(推荐,适用于支持NetworkManager的系统)

nmcli是NetworkManager的命令行工具,功能强大且易于使用,启用无线网卡:

nmcli radio wifi on

扫描网络:

nmcli dev wifi list

连接到指定网络(若网络未加密,无需密码;若加密,需输入密码):

nmcli dev wifi connect "YourWiFiName" password "YourPassword"

连接成功后,可通过nmcli connection show查看连接状态。

断开与重连WiFi

1 使用wpa_supplicant

断开连接:

wpa_cli -i wlan0 terminate

重新连接前,需重新启动wpa_supplicant并获取IP。

2 使用nmcli

断开连接:

nmcli connection down "YourWiFiName"

重新连接:

nmcli connection up "YourWiFiName"

常见问题排查

  • 无法识别无线网卡:检查驱动是否加载(lsmod | grep [驱动名]),必要时安装对应驱动(如firmware-linux)。
  • 无法扫描到网络:确认无线网卡已启用(nmcli radio wifi on),或尝试重启NetworkManagersystemctl restart NetworkManager)。
  • 认证失败:检查wpa_supplicant.conf中的密码和加密方式是否正确,或尝试重新输入密码连接。
  • 获取IP失败:检查DHCP服务是否正常运行,或手动配置静态IP(nmcli connection modify "YourWiFiName" ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8)。

高级配置:静态IP与多网络管理

若需为WiFi连接配置静态IP,可通过nmcli实现:

nmcli connection modify "YourWiFiName" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8
nmcli connection up "YourWiFiName"

对于多网络环境,可创建多个连接 profile 并根据需要切换:

nmcli connection add type wifi ifname wlan0 ssid "AnotherWiFi"
nmcli connection modify "AnotherWiFi" wifi-sec.key-mgmt wpa-psk wifi-sec.psk "AnotherPassword"
nmcli connection up "AnotherWiFi"

相关问答FAQs

Q1: 如何在Linux命令行中查看当前连接的WiFi信号强度?
A1: 可通过iwiwconfig命令查看信号强度,使用iw dev wlan0 link显示当前连接的详细信息,包括信号强度(如signal: -65.00 dBm);或使用iwconfig wlan0 | grep "Signal level"直接提取信号强度数值。

Q2: 如果忘记WiFi密码,能否通过命令行从已保存的配置中找回?
A2: 可以,若使用wpa_supplicant,密码存储在/etc/wpa_supplicant/wpa_supplicant.conf文件中,直接查看该文件的psk字段即可;若使用NetworkManager,可通过nmcli connection show "连接名" | grep wifi-security.psk查看加密后的密码,但明文密码需通过cat /etc/NetworkManager/system-connections/连接名 | grep psk=获取(可能需要root权限)。

分享:
扫描分享到社交APP
上一篇
下一篇