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。

     
     
     
  • 相关阅读:
    【leetcode】Binary Search Tree Iterator
    【leetcode】Palindrome Partitioning II
    【leetcode】Best Time to Buy and Sell Stock III
    【leetcode】Best Time to Buy and Sell Stock II
    【leetcode】Longest Consecutive Sequence
    【leetcode】Factorial Trailing Zeroes
    【leetcode】Simplify Path
    【leetcode】Generate Parentheses
    【leetcode】Combination Sum II
    【leetcode】Combination Sum
  • 原文地址:https://www.cnblogs.com/libra13179/p/14739113.html
Copyright © 2011-2022 走看看