linux WIFI命令iwlist、iwconfig、iwpriv

概述

iwpriv iwlist iwconfig是WEXT类型无线驱动专用的操作程序。

每个无线设备拥有一些不被标准无线扩展包含的特定功能。私有ioctl允许设备导出驱动的特定功能,使得用户直接与驱动交互;

 与标准无线扩展一样,每个私有请求通过ioctl number来标识,并且携带一定参数;

         无线标准ioctl用户态工具对应iwconfig;

         无线私有ioctl用户态工具对应iwpriv;

最初的iwpriv实现使用的ioctl 号范围由SIOCDEVPRIVATE确定[#define SIOCDEVPRIVATE 0x89F0        /* to 89FF */];但这些ioctl被其它功能占用,支持功能有限。 新ioctl范围由SIOCIWFIRSTPRIV确定;这些ioctl是特定为无线扩展使用,不用担心与其它功能冲突;下面是针对SIOCIWFIRSTPRIV的内核描述,支持私有ioctl号为32个;用户可以使用SIOCGIWPRIV(#define SIOCGIWPRIV         0x8B0D)来获取私有ioclt的描述信息;

ifconfig:查询、设定网卡参数

ifconfig [interface] [up|down] ------查询网卡参数(如果不加interface的话,就会显示全部的活动的网卡参数,up和down分别是打开和关闭网卡)

[root@localhost ~]# ifconfig ------显示所有活动网卡参数

em1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 38:ea:a7:e4:1d:4b  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 43790  bytes 20541338 (19.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 43790  bytes 20541338 (19.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.7  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::a617:31ff:fe8d:f9ed  prefixlen 64  scopeid 0x20<link>
        ether a4:17:31:8d:f9:ed  txqueuelen 1000  (Ethernet)
        RX packets 59402  bytes 65387010 (62.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 46445  bytes 11121984 (10.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

       就上面活动的无线网卡参数做详细解释:

       wlan0:就是网络卡的代号,也有 lo 这个 loopback ;

       HWaddr:就是网络卡的硬件地址,俗称的 MAC 地址;

       inet addr:IPv4 的 IP 地址,后续的 Bcast,Mask 分别代表的是 Broadcast 与 netmask !

       inet6 addr:是 IPv6 的版本的 IP ,我们没有使用,所以略过;

       MTU:标准以太网络所能传送的数据量最大可以到达 1500 bytes ,这个数值就被我们称为 MTU (Maximum Transmission Unit, 最大传输单位)!

       RX:那一行代表的是网络由启动到目前为止的封包接收情况, packets 代表封包数、errors 代表封包发生错误的数量、 dropped 代表封包由于有问题而遭丢弃的数量等等

       TX:与 RX 相反,为网络由启动到目前为止的传送情况;

       collisions:代表封包碰撞的情况,如果发生太多次, 表示你的网络状况不太好;

       txqueuelen:代表用来传输数据的缓冲区的储存长度;

       RX bytes, TX bytes:总接收、发送字节总量
[root@localhost ~]# ifconfig wlan0 ------仅显示wlan0的参数

[root@localhost ~]# ifconfig wlan0 down------表示关掉wlan0,down掉后可以用ifconfig查看发现wlan0已经关掉不见了,可以用ifconfig wlan0 up重新启用。

[root@localhost ~]# ifconfig wlan0 192.168.1.10 设定ip地址:

       如果不加任何其他参数,则系统会依照该 IP所在的 class 范围,自动的计算出netmask 以及 network, broadcast等 IP 参数

设定MAC地址:首先要先关掉网卡,然后写入要设定的MAC地址,最后启动网卡即可。如下:

[root@localhost ~]#ifconfig wlan0 down

[root@localhost ~]#ifconfig hw ether 00:11:22:33:44:55

[root@localhost ~]#ifconfig wlan0 up

iwlist:扫描无线网络(前提是有无线网卡并处于活动状态)

[root@localhost ~]# iwlist wlan0 scanning 

    wlan0     Scan completed :
          Cell 01 - Address: 6C:E8:73:38:5A:C6
                    Channel:1
                    Frequency:2.412 GHz (Channel 1)
                    Quality=55/70  Signal level=-55 dBm  
                    Encryption key:on
                    ESSID:"xxxxxxxx"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master+

Usage: iwlist [interface] scanning [essid NNN] [last]
              [interface] frequency 
              [interface] channel 
              [interface] bitrate 
              [interface] rate 
              [interface] encryption 
              [interface] keys 
              [interface] power 
              [interface] txpower 
              [interface] retry 
              [interface] ap 
              [interface] accesspoints 
              [interface] peers 
              [interface] event 
              [interface] auth 
              [interface] wpakeys 
              [interface] genie 
              [interface] modulation 

常用命令列表:   

iw list  # 查看本机支持的无线特性,such as band information (2.4 GHz, and 5 GHz), and 802.11n information
iw dev wlan0 scan # 扫描无线网络,列表的内容都是实时更新的
iw dev wlan0 link # 获取设备连接状态信息(实测不包含IP地址)
iw wlan0 info # 获取设备工作状态信息
iw event # 获取所有网络设备的工作日志信息

iwconfig:配置无线网络(通用配置)

iwconfig interface [essid {NN|on|off}]
                          [nwid {NN|on|off}]
                          [mode {managed|ad-hoc|...}
                          [freq N.NNNN[k|M|G]]
                          [channel N]
                          [ap {N|off|auto}]
                          [sens N]
                          [nick N]
                          [rate {N|auto|fixed}]
                          [rts {N|auto|fixed|off}]
                          [frag {N|auto|fixed|off}]
                          [enc {NNNN-NNNN|off}]
                          [power {period N|timeout N}]
                          [retry {limit N|lifetime N}]
                          [txpower N {mW|dBm}]
                          [commit]

参数介绍:
essid:配置无线网卡的ESSID(Extension Service Set ID)。通过ESSID来区分不同的无线网络,正常情况下只有相同ESSID的无线站点才能够互相通讯,除非想监听无线网络。其后的参数为双引号括起的ESSID字符串,或是any/on/off,假如ESSID字符串中包含any/no/off,则需要在前面加"--"。
示例: #iwconfig eth0 essid any                   允许任何ESSID,也就是混杂模式
             #iwconfig eth0 essid "My Network"          配置ESSID为"My Network"
             #iwconfig eth0 essid -- "ANY"              配置ESSID为"ANY"
             
nwid: Network ID只用于pre-802.11的无线网卡,802.11网卡利用ESSID和AP的MAC地址来替换nwid,现在基本上不用配置。
示例: #iwconfig eth0 nwid AB34
             #iwconfig eth0 nwid off
             
 nick: Nickname,一些网卡需要配置该参数,但是802.11协议栈、MAC都没有用到该参数,一般也不用配置。
 示例: #iwconfig eth0 nickname "My Linux Node"
            
  mode:配置无线网卡的工作模式,能够是
        Ad-hoc:不带AP的点对点无线网络
        Managed:通过多个AP组成的网络,无线设备能够在这个网络中漫游
        Master:配置该无线网卡为一个AP
        Repeater:配置为无线网络中继设备,能够转发网络包
        Secondary:配置为备份的AP/Repeater
        Monitor:监听模式
        Auto:由无线网卡自动选择工作模式
        
 示例:#iwconfig eth0 mode Managed
            #iwconfig eth0 mode Ad-Hoc
            
  freq/channel:配置无线网卡的工作频率或频道,小于1000的参数被认为是频道,大于10000的参数被认为是频率。频率单位为Hz,能够在数字后面附带k, M, G来改变数量级,比如2.4G。频道从1开始。使用lwlist工具能够查看无线网卡支持的频率和频道。参数off/auto指示无线网络自动挑选频率。
         注意:假如是Managed模式,AP会指示无线网卡的工作频率,因此该配置的参数会被忽略。Ad-hoc模式下只使用该设定的频率初始无线网络,假如加入已存在的Ad-hoc网络则会忽略该配置的频率参数。
 示例 #iwconfig eth0 freq 2422000000
          #iwconfig eth0 freq 2.422G
          #iwconfig eth0 channel 3
          #iwconfig eth0 channel auto
  ap:连接到指定的AP或无线网络,后面的参数能够是AP的MAC地址,也能够是iwlist scan出来的标识符。假如是Ad-hoc,则连接到一个已存在的Ad-hoc网络。使用off参数让无线网卡不改变当前已连接的AP下进入自动模式。any/auto参数,无线网卡自动选择 最好的AP。
        注意:假如无线信号低到一定程度,无线网络会进入自动选择AP模式。
示例:#iwconfig eth0 ap 00:60:1D:01:23:45
          #iwconfig eth0 ap any
          #iwconfig eth0 ap off
  rate/bit:假如无线网卡支持多速率,则能够通过该命令配置工作的速率。小于1000的参数由具体的无线网卡驱动定义,一般是传输速率的索引值,大于1000的为速率,单位bps,能够在数字后面附带k, M, G来指定数量级。auto参数让无线网卡自动选择速率fixed参数让无线网卡不使用自动速率模式。
示例:#iwconfig eth0 rate 11M
         #iwconfig eth0 rate auto
         #iwconfig eth0 rate 5.5M auto    //自动选择5.5M以下的速率
         
  txpower:假如无线网卡支持多发射功率设定,则使用该参数设定发射,单位为dBm,假如指定为W(毫瓦),只转换公式为:dBm=30+log(W)。参数on/off能够打开和关闭发射单元,auto和fixed指定无线是否自动选择发射功率。
 示例:#iwconfig eth0 txpower 15
         #iwconfig eth0 txpower 30mW
         #iwconfig eth0 txpower auto
         #iwconfig eth0 txpower off   
       
  sens:配置接收灵敏度的下限,在该下限之下,无线网卡认为该无线网络信号太差,不同的网卡会采取不同的措施,一些现代的无线网卡会自动选择新的AP。正的参数为raw data,直接传给无线网卡驱动处理,一般认为是百分比。负值表示dBm值。
示例:#iwconfig eth0 sens -80
          #iwconfig eth0 sens 2
          
  retry:配置无线网卡的重传机制。limit ‘value’ 指定最大重传次数;lifetime ‘value’指定最长重试时间,单位为秒,能够附带m和u来 指定单位为毫秒和微秒。假如无线网卡支持自动模式,则在limit和lifetime之前还能够附加min和max来指定上下限值。
 示例:#iwconfig eth0 retry 16
         #iwconfig eth0 retry lifetime 300m
         #iwconfig eth0 retry min limit 8
         
  rts:指定RTS/CTS握手方式,使用RTS/CTS握手会增加额外开销,但假如无线网络中有隐藏无线节点或有很多无线节点时能够提高性能。后面的参数指定一个使用该机制的最小包的大小,假如该值等于最大包大小,则相当于禁止使用该机制。能够使用auto/off/fixed参数。
  示例:#iwconfig eth0 rts 250
         #iwconfig eth0 rts off
         
  frag:配置发送数据包的分片大小。配置分片会增加额外开销,但在噪声环境下能够提高数据包的到达率。一般情况下该参数小于最大包 大小,有些支持Burst模式的无线网卡能够配置大于最大包大小的值来允许Burst模式。还能够使用auto/fixed/off参数。
   示例: #iwconfig eth0 frag 512
         #iwconfig eth0 frag off      
         
  key/enc[ryption]:配置无线网卡使用的加密密钥,此处为配置WEP模式的加密key,假如要使用WPA,需要wpa_supplicant工具包。密钥参数能够是 XXXX-XXXX-XXXX-XXXX 或 XXXXXXXX 格式的十六进制数值,也能够是s:xxxxxx的ASCII字符。假如在密钥参数之前加了[index],则只是配置该索引值对应的密钥,并不改变当前的密钥。直接指定[index]值能够配置当前使用哪一个密钥。指定on/ off能够控制是否使用加密模式。open/restricted指定加密模式,取决于不同的无线网卡,大多数无线网卡的open模式不使用加密且允许接收没有加密的数据包,restricted模式使用加密。能够使用多个key参数,但只有最后一个生效。
WEP密钥能够是40bit,用10个十六进制数字或5个ASCII字符,也能够是128bit,用26个十六进制数字或13个ASCII字符表 示。
示例:#iwconfig eth0 key 0123-4567-89
          #iwconfig eth0 key [3] 0123-4567-89
          #iwconfig eth0 key s:password [2]
          #iwconfig eth0 key [2]
          #iwconfig eth0 key open
          #iwconfig eth0 key off
          #iwconfig eth0 key restricted [3] 0123456789
          #iwconfig eth0 key 01-23 key 45-67 [4] key [4]
          
  power:配置无线网卡的电源管理模式。period ‘value’ 指定唤醒的周期,timeout ‘value’指定进入休眠的等待时间,这两个参数之前能够加min和max修饰,这些值的单位为秒,能够附加m和u来指定毫秒和微秒。off/on参数指定是否允许电源管理,all/unicast/multicast 指定允许唤醒的数据包类型。
 示例:#iwconfig eth0 power period 2
         #iwconfig eth0 power 500m unicast
         #iwconfig eth0 power timeout 300u all
         #iwconfig eth0 power off
         #iwconfig eth0 power min period 2 power max period 4
         
  commit:提交任何的参数修改给无线网卡驱动。有些无线网卡驱动会先缓存无线网卡参数修,使用这个命令来让无线网卡的参数修改生效。但是一般无需使用该命令,因为无线网卡驱动最终都会是参数的修改生效,一般在debug时会用到。
为了方便配置,能够把配置写到 /etc/network/interfaces中,这样以后就不用反复配置了

 示例1

1、配置ssid
iwconfig ra0 essid liangym             
Example :----配置mode
iwconfig eth0 mode Managed
iwconfig eth0 mode Ad-Hoc
2、配置工作频率
iwconfig eth0 freq 2422000000
iwconfig eth0 freq 2.422G
iwconfig eth0 channel 3
iwconfig eth0 channel auto
3、配置带宽
iwconfig eth0 rate 11M
iwconfig eth0 rate auto
iwconfig eth0 rate 5.5M auto
4、配置发射功率
iwconfig eth0 txpower 15
iwconfig eth0 txpower 30mW
iwconfig eth0 txpower auto
iwconfig eth0 txpower off
5、配置接受灵敏度
iwconfig eth0 sens -80
6、配置调制方式
iwconfig eth0 modu 11g
iwconfig eth0 modu CCK OFDMa
iwconfig eth0 modu auto


 示例2

1. 打开无线网卡电源
iwconfig wlan0 txpower on
2. 列出区域内的无线网络
iwlist wlan0 scan
3. 假设要连接到网络MyHome(即essid为MyHome的网络),那么输入命令
iwconfig wlan0 essid “MyHome” 
如果网络是加密的,密码是0123456789,那么就输入命令
iwconfig wlan0 essid “MyHome” key 0123-4567-89
4. 如果正常的话,输入
iwconfig wlan0
就可以看到连接正常的各项参数了。 
5. 启用无线网卡
ifconfig wlan0 up
6. 如果是用DHCP获取IP的,那么用dhclient或dhcpcd获取ip
dhclient wlan0

dhcpcd wlan0

7. 现在无线网卡应该可以正常使用了

iwpriv:iwpriv是iwconfig的辅助工具,

iwpriv用来配置无线网络接口的各种私有可选参数。iwpriv针对不同种类的驱动实现特定的参数处理和设置。

[root@localhost ~]# iwpriv -----不加任何命令可以查看网卡的私有命令和参数

# iwpriv
lo        no private ioctls.----lo无私有命令

eth2      no private ioctls..----eth2无私有命令

eth3      no private ioctls..----eth3无私有命令

ra0       Available private ioctls :.----ra0有私有命令,如下
          set              (8BE2) : set 1024 char  & get   0
          ipv4_matinfo     (0001) : set 1024 char  & get 2047 char
          ipv6_matinfo     (0002) : set 1024 char  & get 2047 char
          cloneMAC         (0003) : set 1024 char  & get 2047 char
          connStatus       (0004) : set 1024 char  & get 2047 char
          driverVer        (0005) : set 1024 char  & get 2047 char
          bainfo           (0006) : set 1024 char  & get 2047 char
          descinfo         (0007) : set 1024 char  & get 2047 char
          get_wps_pin_ap   (0008) : set 1024 char  & get 2047 char

br0       no private ioctls..----br0无私有命令

usb0      no private ioctls..----usb0无私有命令
--------------------- 

iwpriv不跟参数时会列出每个接口上可用的私有命令和它们对应的参数。用户可根据这些信息对特定的接口使用不同的命令操作。

设置命令
iwpriv ra0 set SSID=””
iwpriv ra0 set Channel=0
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=SHARED
iwpriv ra0 set EncrypType=WEP
iwpriv ra0 set DefaultKeyID=1
iwpriv ra0 set Key1=”whatever”
iwpriv ra0 set SSID=”some_ssed”
iwpriv ra0 set WPAPSK=”wpa_key”

‍显示命令

iwpriv ra0 show SSID

iwpriv ra0 show Channel
iwpriv ra0 show NetworkType

iwpriv ra0 show AuthMode

iwpriv ra0 show EncrypType

iwpriv ra0 show DefaultKeyID
iwpriv ra0 show Key1
iwpriv ra0 show WPAPSK

示例

iwpriv ra0 show    无线网卡功能参数
ra0       show:
SSID
WirelessMode
TxBurst
TxPreamble
TxPower
Channel
BGProtection
RTSThreshold
FragThreshold
HtBw
HtMcs
HtGi
HtOpMode
HtExtcha
HtMpduDensity
HtBaWinSize
HtRdg
HtAmsdu
HtAutoBa
CountryRegion
CountryRegionABand
CountryCode
PktAggregate
WmmCapable
IEEE80211H
NetworkType
WPAPSK
AutoReconnect
AuthMode
EncrypType
DefaultKeyID
Key1
Key2
Key3
Key4
PMK

 

  • 2
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux下进行WiFi重连,可以按照以下步骤进行操作: 1. 首先,使用以下命令查看当前连接的WiFi网络: ``` iwconfig ``` 2. 然后,使用以下命令断开当前连接: ``` iwconfig [interface] essid off ``` 其中,[interface]为网卡接口名,可以通过ifconfig命令查看。 3. 接着,使用以下命令重新连接WiFi网络: ``` iwconfig [interface] essid [SSID] key [WPA key] ``` 其中,[SSID]为WiFi网络名称,[WPA key]为WiFi网络的密码。 4. 最后,使用以下命令查看是否已经成功连接: ``` iwconfig ``` 如果看到已经成功连接到WiFi网络的信息,那么重连就完成了。 ### 回答2: 在Linux中,当WiFi连接不稳定或丢失时,可以通过重新连接来解决问题。以下是一些常见的方法: 1. 使用命令行工具:Linux中有许多命令行工具可以用来管理WiFi连接,如iwconfig、ifconfig、nmcli等。可以使用这些命令行工具来断开当前的WiFi连接,并重新连接到同一个或其他可用的网络。 例如,使用nmcli命令,首先可以列出当前已连接的网络: ``` nmcli connection show ``` 然后,找到要重新连接的网络名称或SSID,使用以下命令断开连接: ``` nmcli connection down <network_name> ``` 接下来,重新连接到同一个或其他可用的网络: ``` nmcli connection up <network_name> ``` 2. 使用网络管理工具:Linux发行版通常会提供基于图形界面的网络管理工具,如NetworkManager或Wicd。使用这些工具,可以在系统托盘或系统设置中找到WiFi连接选项。 打开网络管理工具,找到当前连接的WiFi网络,并选择“断开”或“忘记”选项,然后再次选择要连接的网络,并输入相应的凭据。 3. 重启网络服务:如果以上方法无效,可以尝试重启网络服务。对于大多数Linux发行版,可以使用以下命令重启网络服务: ``` sudo systemctl restart network.service ``` 这将重新启动网络服务,并尝试重新连接到WiFi网络。 总之,以上是一些在Linux中重新连接WiFi的常用方法。具体的操作取决于你所使用的Linux发行版和网络管理工具。 ### 回答3: Linux系统在处理WiFi重连时,可以通过以下步骤实现: 1. 检查网络状态:使用命令ifconfigiwconfig,检查当前网络接口的状态,包括连接的SSID、IP地址、网关等信息。 2. 断开当前连接:使用命令ifdown或iwconfig,将当前网络接口的连接断开。例如,如果当前接口为wlan0,可以使用命令ifdown wlan0。 3. 扫描可用网络:使用命令iwlistiw来扫描附近可用的WiFi网络。例如,使用命令iwlist scan可以列出附近的无线网络及其相关信息。 4. 选择要连接的网络:根据扫描结果选择要连接的目标网络,记下其SSID和安全类型。 5. 配置网络连接:使用命令iwconfig或wpa_supplicant,根据目标网络的安全类型,进行相应的配置。如果网络为开放网络,可以直接使用命令iwconfig来连接;如果网络为加密网络,需要使用wpa_supplicant命令进行配置。例如,通过wpa_supplicant配置一个WPA2加密网络的连接可以使用如下命令: wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext 其中,-B表示以守护进程模式运行,-iwlan0表示指定要连接的接口,-c /etc/wpa_supplicant.conf表示指定配置文件的路径,-Dwext表示使用wext驱动程序。 6. 连接到目标网络:使用命令dhclient或dhcpcd获取IP地址,与目标网络建立起连接。例如,通过命令dhclient wlan0可以获取IP地址。 7. 检查网络连接状态:使用命令ifconfigiwconfig,再次检查连接的网络接口的状态,确保已成功连接到目标网络。 通过以上步骤,Linux系统可以实现WiFi的重连操作。注意,具体的命令和配置方式可能因不同的Linux发行版和网络管理工具而有所不同,请根据具体环境进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值