iwconfig

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

 

用法: 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]

 

说明:iwconfig是LWE最主要的工具,可以对无线网卡的大部分参数进行配置。

 

参数:

 

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时会用到。

 

-----------

 

iwlist eth1 scan 搜索无线网络:

 

显示搜到的网络(此处只显示一个):

 

eth1 Scan completed :

 

Cell 01 - Address: 00:04:E2:E3:04:FC

 

ESSID:"ap_demo"

 

Mode:Managed

 

Frequency:2.437 GHz

 

Quality:0/0 Signal level=-61 dBm Noise level=-96 dBm

 

Encryption key:on

 

Bit Rate:1 Mb/s

 

Bit Rate:2 Mb/s

 

Bit Rate:5.5 Mb/s

 

Bit Rate:11 Mb/s

 

Bit Rate:6 Mb/s

 

Bit Rate:9 Mb/s

 

Bit Rate:12 Mb/s

 

Bit Rate:18 Mb/s

 

Bit Rate:24 Mb/s

 

Bit Rate:36 Mb/s

 

Bit Rate:48 Mb/s

 

Bit Rate:54 Mb/s

 

Cell 02 ……

 

---------------

 

设置板子的channel

 

iwlist eth1 channel 11

 

--------------

 

设置模式:

 

iwconfig eth1 mode managed

 

通过MAC 设置AP:

 

iwconfig eth1 ap 00:0A:EB:CA:79:B0

 

连接到WEP on 的AP:

 

iwconfig eth1 key s:12345 等效于 iwconfig eth1 enc 3132333435(12345的hex值) (为什么AP64bit的口令是40bit呢)

 

iwconfig eth1 key on

 

iwconfig eth1 essid sychip_demo

 

断开WEP:

 

iwconfig eth1 enc off

 

查看IP:

 

ifconfig eth1

 

设置IP:

 

ifconfig eth1 10.3.1.74

 

把IP: 129.158.215.204 , netmask: 255.255.255.0分配给rh0,

 

# ifconfig rh0 129.158.215.204 netmask 255.255.255.0

 

获取IP;

 

ifconfig eth1 dhcp start (从eth1走,不需要ip即可dhcp)

 

udhcpc -i eth1

 

udhcpc --help

 

路由处理:

 

若要删除以 10. 起始的 IP 路由表中的所有路由,请键入:

 

route delete 10.*

 

route del default

 

route add -net 10.3.0.0 netmask 255.255.0.0 eth1 (eth1获得IP之前,使用此命令显示:No such device)