028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Linux中WIFI功能介绍

本篇内容介绍了“Linux中WIFI功能介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的原阳网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

wifi模块驱动

使用系统wifi功能的第一步是确定设备wifi模块的型号并安装相应的驱动程序。在嵌入式开发中,一般是需要获取到wifi模块的驱动源码,然后进行交叉编译来构建驱动模块并使用insmod命令进行安装。

一般而言,WIFI模块具有两种工作模式:

不同模式的wifi驱动代码可能不一样,所以也许会需要安装两个驱动模块,分别来支持这两种模式功能,具体请参考对应wifi模块的手册与指南文档。

主要工具

Linux系统中主要使用的wifi配置工具有两种:

因为目前常用的wifi网络大部分都是使用的wpa协议进行加密,所以wpa_supplicant工具使用的比较多,但是在wifi接口的管理方面,wireless tools工具依然还是很有用的。

wireless tools

该工具包是Linux Wireless Extensions(LWE)的用户层配置工具之一。LWE是Linux下对无线网络配置的工具,包括内核的支持、用户层配置工具和驱动接口的支持三部分。目前很多无线网卡都支持LWE,而且主流的Linux发布版本,比如Redhat Linux、Ubuntu Linux都已经带了这个配置工具。

编译构建之后会生成命令:iwconfg,iwlist,iwspy,iwpriv等,这些命令的使用依赖于生成的动态库文件:libiw.so.29,因此拷贝这些命令到目标机器上时,记得将该库文件一起拷贝到系统的lib目录下面,否则会提示找不到库文件。

iwconfig是LWE最主要的工具,可以对无线网卡的大部分参数进行配置。具体的命令参数与选项可以通过help命令来查看了解。其中一些参数的解释如下:

这些工具命令的常用使用示例:

  1. 扫描可用的无线网络

     iwlist [wifi-name] scanning

    其中wifi-name为无线网卡的名字,比如网卡eth0就是系统默认的网卡名字, wifi-name可以用ifconfig查看,一般为ra0(无线网卡),不过需要ifconfig ra0 up。

  2. 扫描网络信息

    iwlist ra0 scan
    ===

    如上:ESSID项的值即为无线网络的名字,如上的“TXJ”等。如果值为空,说明在无线路由勾选了隐藏ESSID的选项。ESSID是很关键的,如果被隐藏了,也不是不能连接,而是需要破解,用到其他的工具,非常麻烦。

  3. 设置要连接的网络类型

     iwpriv ra0 set NetworkType=Infra

  4. 设置要连接的无线网络的安全模式

     iwpriv ra0 set AuthMode=WPA2PSK

  5. 设置网络加密方式:(CCMP即为AES)

     iwpriv ra0 set EncrypType=TKIP

  6. 设置连接时的密码

     iwprivra0 set WPAPSK=*******  //********为加密网络的密码

  7. 连接该网络:有两种方式:

     iwpriv ra0 set SSID=TXJ
     iwconfig ra0 essid TXJ

    至此,如果密码正确,就可以连接上网络TXJ了。

  8. 查看状态

     iwpriv ra0 connStatus

    当然,你也可以用iwconfig命令查看状态。

wpa_supplicant

wpa_supplicant是目前常用的工具之一,但缺点是它不支持所有的驱动。请浏览wpa_supplicant网站获得它所支持的驱动列表。wpa_supplicant目前只能连接到那些你已经配置好ESSID的无线网络。wireless-tools支持几乎所有的无线网卡和驱动,但它不能连接到那些只支持WPA的AP。

经过编译后的wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant和wpa_cli。wpa_supplicant是核心程序,它和wpa_cli的关系就是服务端和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。

使用wpa_supplicant来连接wifi的具体步骤主要是:

  1. 启动wpa_supplicant后台服务程序:

    /sbin/wpa_supplicant -d -Dwext -iwlan0 -c /etc/wpa_supplicant.conf

    其中:

     -d :增加调试信息
     -Dwext :wext,驱动名称
     -iwlan0 :wlan0,网络接口名称
     /etc/wpa_supplicant.conf :配置文件

    配置文件的内容大致如下:

       ctrl_interface=/var/run/wpa_supplicant  
       ctrl_interface_group=wheel  
       update_config=1
       network={  
            ssid="test-ap"
            scan_ssid=1
            psk=37bca5cf24a345f514d319211822f568bba28f8f0b74c894e7644
            proto=RSN  
            key_mgmt=WPA-PSK  
            pairwise=CCMP  
            auth_alg=OPEN  
       }

    network里面的内容就是接入AP的配置,wpa_supplicant启动时会以该配置去连接wifi。几个选项的介绍如下,更多的解释可以参考官方的配置文件注释。

    关于psk加密的生成,使用wpa_passphrase命令如下:

    $ wpa_passphrase TPLINK 12345678
     network={  
         ssid="TPLINK"
         #psk="12345678"
         psk=992194d7a6158009bfa25773108291642f28a0c32a31ab2556a15dee97ef0dbb
     }

    这里表示名为TPLINK的接入点,密码是12345678,输出就是该接入点在wpa_supplicant.conf里面的配置内容。

    • ssid 接入点名称

    • scan_ssid=1 如果你的无线接入点是隐藏的,那么这个就是必须的。

    • psk=xx 是加密后的密码,用wpa_passphrase自动生成的

    • proto=RSN WPA2只是RSN的一个别名,支持WPA和WPA2

  2. 执行wpa_cli工具进行搜索和连接

     wpa_cli -i wlan0

    wlan0是wifi接口名称,以上名列会进入交互模式,然后进行具体的动作。具体支持的命令可以通过help命令来查看,以下进介绍常用的几个命令。

    一些交互连接的示例:

    • 连接无加密的AP

        add_network
        set_network 0 ssid "ap1"
        set_network 0 key_mgmt NONE
        enable_network 0
        quit

    • 连接WEP加密AP

        add_network
        set_network 1 ssid "ap2"
        set_network 1 key_mgmt NONE
        set_network 1 wep_key0 "your ap password"
        enable_network 1

    • 连接WPA-PSK/WPA2-PSK加密的AP

        add_network
        set_network 2 ssid "ap3"
        set_network 2 psk "your pre-shared key"
        enable_network 2

    • scan 扫描当前可以的WiFi列表

    • scan_result 查看上次scan的扫描结果

    • add_network 添加一个AP连接网络

    • set_network 设置连接网络的相关参数

    • get_network 获取连接网络的参数

    • remove_network 删除一个连接网络

    • enable_network 连接到指定的AP

    • disable_network 禁止一个网络

    • disconnet 端口当前的AP连接

    • status 查看当前的连接状态信息

    • save_config 保存配置

“Linux中WIFI功能介绍”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


网站标题:Linux中WIFI功能介绍
标题来源:http://www.tsicrk.com/article/jehgji.html

其他资讯

让你的专属顾问为你服务

2.7797s