linux命令行连接wifi

1. 环境描述

  • 以下是验证本教程使用的环境
    1
    2
    3
    4
    5
    $uname -a
    Linux computer_name 5.4.70-amd64-desktop #1 SMP Wed Oct 14 15:24:23 CST 2020 x86_64 GNU/Linux

    $cat /proc/version
    Linux version 5.4.70-amd64-desktop (deepin@deepin-PC) (gcc version 8.3.0 (Uos 8.3.0.3-3+rebuild)) #1 SMP Wed Oct 14 15:24:23 CST 2020

2. 确认无线网卡状态

  • 使用 iwconfig 命令查询当前网卡状态

    1
    2
    3
    $iwconfig
    $iwconfig
    wlp3s0 IEEE 802.11 ESSID:""
    • 我的无线网卡id为wlp3s0

    • 如果无线网卡未开启,需要将其开启

      1
      sudo ip link set wlp3s0 up

3. 查看可用wifi

扫描可用wifi

1
sudo iw wlp3s0 scan|grep SSID

4. 配置wifi

说明:本人连接的是企业版wifi,需要验证用户名和密码。如果是个人版,配置文件会和下面不一样
以管理员身份修改/etc/wpa_supplicant/wpa_supplicant.conf

1
2
3
4
5
6
7
8
9
network={
ssid="wifi name"
scan_ssid=1
key_mgmt=WPA-EAP
eap=PEAP
identity="your login id"
password="your password"
priority=1
}

5. 链接wifi

1
2
3
sudo wpa_supplicant -i wlp3s0 -c /etc/wpa_supplicant/wpa_supplicant.conf
#或者启动为守护进程
sudo wpa_supplicant -B -i wlp3s0 -c /etc/wpa_supplicant/wpa_supplicant.conf

6. 获取ip 地址

1
sudo dhclient wlp3s0

7. 验证是否链接成功

  • 检查是否成功连接到wifi 获取到ip 地址
1
2
3
ifconfig
或者
ip address

8. trouble shooting

  • issue 1:
    如果遇到类似下面这样的问题, 可以考虑关闭wpa_applicant 进程,再重新连接
    wlp3s0: Associated with 6c:8b:d3:
    wlp3s0: CTRL-EVENT-EAP-STARTED EAP authentication started
    wlp3s0: CTRL-EVENT-DISCONNECTED bssid=6c:8b:d3:c7: reason=3 locally_generated=1

    • solution:

      1
      sudo killall wpa_supplicant

9. 后续

更多linux相关知识, 请参考鹏叔的技术博客linux tag, 获取实时更新的Linux文章.