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 [interface] [up|down] ------查询网卡参数(如果不加interface的话,就会显示全部的活动的网卡参数,up和down分别是打开和关闭网卡)
[root@localhost ~]# ifconfig ------显示所有活动网卡参数
em1: flags=4099
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
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
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
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
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
[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+
常用命令列表:
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 # 获取所有网络设备的工作日志信息
参数介绍:
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针对不同种类的驱动实现特定的参数处理和设置。
[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