zoukankan      html  css  js  c++  java
  • linux使用wpa_supplicant手动配置wifi

    简介

    wpa_supplicant是一个连接、配置WIFI的工具,它主要包含wpa_supplicantwpa_cli两个程序。通常情况下,可以通过wpa_cli来进行WIFI的配置与连接,如果有特殊的需要,可以编写应用程序直接调用wpa_supplicant的接口直接开发。

    启动wpa_supplicant应用

    $ wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B

    /etc/wpa_supplicant.conf文件里,添加下面代码:

    ctrl_interface=/var/run/wpa_supplicant
    update_config=1

    启动wpa_cli应用

    $ wpa_cli -i wlan0 scan             // 搜索附近wifi网络
    $ wpa_cli -i wlan0 scan_result      // 打印搜索wifi网络结果
    $ wpa_cli -i wlan0 add_network      // 添加一个网络连接

    如果要连接加密方式是[WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] (wpa加密),wifi名称是namewifi密码是:psk

    $ wpa_cli -i wlan0 set_network 0 ssid '"name"'
    $ wpa_cli -i wlan0 set_network 0 psk '"psk"'
    $ wpa_cli -i wlan0 enable_network 0

    如果要连接加密方式是[WEP][ESS] (wep加密),wifi名称是namewifi密码是psk

    $ wpa_cli -i wlan0 set_network 0 ssid '"name"'
    $ wpa_cli -i wlan0 set_network 0 key_mgmt NONE
    $ wpa_cli -i wlan0 set_network 0 wep_key0 '"psk"'
    $ wpa_cli -i wlan0 enable_network 0

    如果要连接加密方式是[ESS] (无加密),wifi名称是name

    $ wpa_cli -i wlan0 set_network 0 ssid '"name"'
    $ wpa_cli -i wlan0 set_network 0 key_mgmt NONE
    $ wpa_cli -i wlan0 enable_network 0

    分配ip/netmask/gateway/dns

    $ udhcpc -i wlan0 -s /etc/udhcpc.script -q

    执行完毕,就可以连接网络了。

    保存连接

    $ wpa_cli -i wlan0 save_config

    断开连接

    $ wpa_cli -i wlan0 disable_network 0

    连接已有的连接

    $ wpa_cli -i wlan0 list_network             列举所有保存的连接
    $ wpa_cli -i wlan0 select_network 0         连接第1个保存的连接
    $ wpa_cli -i wlan0 enable_network 0         使能第1个保存的连接

    断开wifi

    $ ifconfig wlan0 down
    $ killall udhcpc
    $ killall wpa_supplicant

    查看网络连接状态

    wpa_cli -i wlan0 status

    创建配置文件

    wpa_supplicant连接WIFI的时候会从配置文件中读取账号和密码,以及加密方式等, 所以我们再运行wpa_supplicant工具的时候要提前写好配置文件。
    配置文件名称自定,但是要以 .conf 为后缀,并保存在 /etc/ 目录下,这边给出一个配置文件的例子。

    ctrl_interface=/var/run/wpa_supplicant  # 一个目录,用于wpa_supplicant和wpa_cli的socket通信
    network={
            ssid="dswei"        #WIFI名称
            proto=WPA  # proto: list of accepted protocols, 可取WPA,RSN
                       # 如果没有设置,默认为: WPA RSN
            key_mgmt=WPA-PSK # 认证方式
                             # 如果没有设置,默认为: WPA-PSK WPA-EAP
            pairwise=TKIP    # 如果没有设置,默认为: CCMP TKIP
            group=TKIP       # 如果没有设置,默认为: CCMP TKIP WEP104 WEP40 
            psk="a123654"     # WIFI密码
    }

    在一般使用中我们只要设置ssidpsk,其他全部使用默认的,就可以连接上WIFI。

     
     
     
  • 相关阅读:
    FreeRTOS之源码 及 移植详解
    FreeRTOS之Tracealyzer for FreeRTOS(FreeRTOS+Trace) 详解(源码解析+移植)
    FreeRTOS之全配置项详解、裁剪(FreeRTOSConfig.h)
    linux下安装oracle中遇到的一些问题
    RedHat Enterprise Linux 6 配置Xmanager ,实现图形界面连接
    Linux ext2/ext3文件系统详解
    对固态硬盘ssd进行4k对齐
    在CentOs6.5安装jdk
    Android的API版本和名称对应关系
    Java反射机制及Method.invoke详解
  • 原文地址:https://www.cnblogs.com/libra13179/p/14739113.html
Copyright © 2011-2022 走看看