linux 无线网卡的连接(命令行) Part1 —— wpa_supplicant

本文介绍在Ubuntu系统下配置无线网络的方法,包括使用network-manager、wpa_supplicant等工具的详细步骤,并对比iwconfig命令的局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果是 ubuntu 系统的话,直接使用 network-manger 就可以连接了,使用 network-manager 是最简单最方便连接网络的方法:

如果不是使用图形界面,是命令行,则使用 network-manager 的命令行工具: nmcli 

see link: http://blog.youkuaiyun.com/gw569453350game/article/details/53261772

但是如果没有安装 network-manager,则可以使用一个叫 wpa_supplicant 的命令(该工具最好不要与 network-manager 一起使用,会导致 wpa_supplicant 连不上无线网,因为 wpa_supplicant 是作为 network-manager 的后端的,如果 wpa_supplicant 与 network-manager 一起使用,那么就相当于多个 wpa_supplicant 一起运行,会有点问题)。要么配置 network-manager 不使用某个网卡,要么卸载之:

// 配置 network-manager
sudo vi /etc/NetworkManager/NetworkManager.conf

在 keyfile 中加入不希望被 network-manager 控制的设备的 mac 地址:

[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq

no-auto-default=06:6A:CB:D1:FD:79,46:0A:FF:4F:21:08,

[ifupdown]
managed=true

[keyfile]
unmanaged-devices=mac:00:0c:43:a5:9a:00

或者卸载之:

sudo apt-get remove network-manager

其实 iwconfig 命令也可以连接无线网,但是其只能处理 WEP 类型的无线网加密协议,但是如果无线网络是 WPA/WPA2 加密的就只能使用 wpa_supplicant 命令了。

Any secure wifi network won’t be using WEP since it’s broken so it’s important to realize iwconfig by itself can’t connect to the more secure WPA/WPA2.

所以现在所有的路由器基本上都是使用 WPA/WPA2 加密协议。

See link:
http://superuser.com/questions/42460/can-you-explain-how-to-understand-what-the-iwconfig-command-displays-in-ubuntu
https://www.zhihu.com/question/29977729

wpa_supplicant 连接无线网的步骤:

1 . 线检查一下网卡驱动是否装上了,网卡是否开启了:

ifconfig -a  // 显示无线网卡一般为 wlan0,如果名字是一串很长的数字,google 如何修改 eth/wlan 名字

2 . 扫一下无线网络,看无线网卡是否能够正常工作:

sudo iwlist wlan0 scan

3 . 通过无线网获取 psk 码:

$ sudo wpa_passphrase "ESSID" "PASSWD" > wpa.conf  // ESSID 就是无线网络的名称, PASSWD 是无线网络的密码
$ cat wpa.conf
network={
    ssid="networkname"
    #psk="mypassphrase"
    psk=8ada1f8dbea59704ac379538b4d9191f6a72390581b4cd7a72864cea685b1a7f
}

4 . 连接无线网络:

sudo wpa_supplicant -B -iwlan0 -c/etc/wpa.conf -Dnl80211,wext  # -B 表示在后台运行, 加上 -dd 可以输出调试信息
iwconfig  // 查看一下是否获得了 Access Point,如果没有,那么查看一下是否后台有多个 wpa_supplicant 在运行, sudo killall wpa_supplicant,在尝试一遍。

wlan0     IEEE 802.11bgn  ESSID:"networkname"  
          Mode:Managed  Frequency:2.467 GHz  Access Point: E4:F4:C6:0E:E0:51   
          Bit Rate=19.5 Mb/s   Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=29/70  Signal level=-81 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:376  Invalid misc:44   Missed beacon:0

# ifconfig 查看一下,如果没有获得 ip, 运行一下 dhclient:
sudo dhclient wlan0  # 获取 ip

或者将上述命令写到 /etc/network/interfaces 文件中,这样每次自动启动后就可以连接无线网了:

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
address 192.168.1.150
netmask 255.255.255.0
gateway 192.168.1.1
wpa-essid network-name
wpa-psk 8ada1f8dbea59704ac379538b4d9191f...
dns-nameservers 192.168.3.45 192.168.8.10  # 如果想配置 DNS 服务器的话

也可以配置完后重启网卡使其生效:

sudo ifdown wlan0 && sudo ifup -v wlan0

ref link:
1. https://wiki.archlinux.org/index.php/Wireless_network_configuration
2. https://wiki.archlinux.org/index.php/WPA_supplicant

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值