引用自: http://blog.csdn.net/baggio1006/article/details/8838626
【嵌牛导读】:无线网络飞速发展的今天,许多设备都提供了连接无线网络的功能。那么Linux下的wifi到底该怎么配置、连接呢??开始配置之前,我们要说说iw家族。iw是linux下常用的wifi配置工具,网上有相应的库和源码。全名为wirelessTools。配置wifi模块,并连接相应的无线网络过程:主要使用iwpriv命令
【嵌牛鼻子】:wifi iw 配置
【嵌牛提问】:配置流程是什么?以及iw配置工具的命令的意思和用法。
【嵌牛正文】:
1. 扫描可用的无线网络:
iwlist wifi-name scanning
其中wifi-name为无线网卡的名字,比如网卡eth0就是系统默认的网卡名字, wifi-name可以用ifconfig查看,一般为ra0。
2. 看扫描到的网络信息,按要连接的网络类型进行配置。以下为扫描到的网络:
iwlist ra0scanning
===>rt_ioctl_giwscan. 11(11) BSS returned, data->length=1427
ra0 Scan completed :
Cell 01 - Address: C4:CA:D9:1D:9E:A0
Protocol:802.11b/g/n
ESSID:""
Mode:Managed
Frequency:2.412 GHz (Channel 1)
Quality=7/100 Signallevel=-87 dBm Noiselevel=-82 dBm
Encryption key:off
Bit Rates:54 Mb/s
Cell 02 - Address: FC:75:16:A1:A9:16
Protocol:802.11b/g/n
ESSID:"jxj_rd"
Mode:Managed
Frequency:2.452 GHz (Channel 9)
Quality=94/100 Signallevel=-53 dBm Noiselevel=-92 dBm
Encryption key:on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : TKIP
Pairwise Ciphers (2) : TKIP CCMP
Authentication Suites (1) : PSK
Cell 03 - Address: C4:CA:D9:02:2A:70
Protocol:802.11b/g/n
ESSID:""
Mode:Managed
Frequency:2.462 GHz (Channel 11)
Quality=83/100 Signallevel=-57 dBm Noiselevel=-92 dBm
Encryption key:off
Bit Rates:54 Mb/s
Cell 04 - Address: 14:D6:4D:75:CA:9C
Protocol:802.11b/g/n
ESSID:"liangym"
Mode:Managed
Frequency:2.472 GHz (Channel 13)
Quality=100/100 Signallevel=-27 dBm Noiselevel=-92 dBm
Encryption key:on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
如上:ESSID项的值即为无线网络的名字,如上的“jxj_rd”等。如果值为空,说明在无线路由勾选了隐藏ESSID的选项。
ESSID是很关键的,如果被隐藏了,也不是不能连接,而是需要破解,用到其他的工具,非常麻烦。至于如何破解,不是本文叙述的内容,有兴趣的朋友可以网上搜索。
得到了网络的信息,接下来就是配置连接选项了。以连接"jxj_rd"为例,我们看看具体的过程:
(1) 设置要连接的网络类型:
iwpriv ra0 setNetworkType=Infra
(2) 设置要连接的无线网络的安全模式:
iwpriv ra0 setAuthMode=WPA2PSK
(3) 设置网络加密方式:(CCMP即为AES)
iwpriv ra0 setEncrypType=TKIP
(4) 设置连接时的密码: ********为加密网络的密码
iwpriv ra0 setWPAPSK=*******
(5) 连接该网络:有两种方式:
<1>用iwpriv命令
iwpriv ra0 setSSID=jxj_rd
<2>用iwconfig命令
iwconfig ra0 essid jxj_rd
至此,如果密码正确,就可以连接上网络jxj_rd了。如果你不放心,可以用命令查看状态:
iwpriv ra0 connStatus
当然,你也可以用iwconfig命令查看状态,这里不再赘述。
==========================================================
insmod rt3070sta.ko
ifconfig ra0 up 启用无线网卡,至于为什么是ra0,因为我的使用手册上是这样做的
此时cat /proc/wireless 可以看到多了一个ra0
iwlist scanning 可以搜索到可用的网络 iwlist ra0 scanning (只搜索ra0的无线网络)
iwpriv ra0 set SSID="name"无线网络配置 name是搜到的一个网络的名字。假如不要密码这样就行了。
iwpriv ra0 set WPAPSK="A3DDD" 输入登陆密码
iwconfig ra0 key open 打开密码 输入密码后 一定要加这条命令哦,不然连接不上
ifconfig ra0 192.168.1.109 netmask 255.255.255.0为无线网卡指定IP地址
设置网关 route add default gw 192.168.1.1
之后我在ubantu上ping 192.168.1.109 成功。这些命令就是所谓的工具。
在超级终端ping 外网成功。
各种密码的命令参数,这在iwpriv_usage.txt里面可以查到。
无密码:
iwpriv ra0 set SSID="Vodafone D100"
注意:在切换到无密码的用户时,若之前是有密码用户,则要iwconfig ra0 key off。
WPA型密码:
网上说若路由器的加密方式是wpa的话要移植wpa_supplicant工具,我没有这样做,还是可以。
iwpriv ra0 set NetworkType=Infra 网络类型有Infra,Adhoc两种,前者是基于AP的,后者是p2p
iwpriv ra0 set AuthMode=WPAPSK OPEN,SHARED,WEPAUTO,WPAPSK,WPA2PSK,WPANONE
iwpriv ra0 set EncrypType=TKIP NONE,WEP,TKIP,AES
iwpriv ra0 set SSID="Vodafone D100"
iwpriv ra0 set WPAPSK="1234567890"
WEP型密码:
iwpriv ra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=OPEN
iwpriv ra0 set EncrypType=WEP
iwpriv ra0 set DefaultKeyID=1
iwpriv ra0 set Key1="1234567890"
iwpriv ra0 set SSID="Vodafone D100"
切换用户登陆:
直接重新输入登陆名字和输入密码的命令,值得注意的是在切换有密码和没有密码的用户时要相应的iwconfig ra0 key open和iwconfig ra0 key off。
网上说若路由器的加密方式是wpa的话要移植wpa_supplicant工具,我没有作过,看别人的http://blog.csdn.net/jimmy_1986/archive/2010/09/09/5872536.aspx
错误信息
PING 192.168.1.1 (192.168.1.1): 56 data bytes
ping: sendto: Network is unreachable
此原因是没有设置ip ifconfig ra0 192.168.1.109 up 解决。
ping 219.134.65.113 外网
ping: sendto: Network is unreachable
此原因是没有设置网关 route add default gw 192.168.1.1 解决。
1、以管理员身份运行命令提示符: “开始”---在搜索栏输入“cmd”----右键以“管理员身份运行”2、启用并设定虚拟WiFi网卡:运行命令:netsh wlan set hostednetwork mode=allow ssid=wuminPC key=wuminWiFi (注意:上边命令"ssid"后红字为网络名称,自己随便命名,比如wuminPC可改为MyWiFi等等,自己喜欢怎么命名都行 "Key"后边红字为密码,自己随便命名,比如wuminWiFi 可以改为12345678,总之自己命名就可以了,不一定非得这个网络名称,这个密码,密码8位以上最好)
此命令有三个参数,
mode:是否启用虚拟WiFi网卡,改为disallow则为禁用。
ssid:无线网名称,最好用英文(以wuminPC为例),即要设定的wifi名称。
key:无线网密码,八个以上字符(以wuminWiFi为例),即你要设定的wifi密码。
以上三个参数可以单独使用,例如只使用mode=disallow可以直接禁用虚拟Wifi网卡。相信以前用过DOS的人都知道怎么运行命令了,那就是输入按回车netsh wlan set hostednetwork mode=allow ssid=wuminPC key=wuminWiFi 运行之后看到以下内容:
3、然后再打开“网络和共享中心”--“更改适配器设置”看看是不是多了一项,若果有多出的这一项“Microsoft Virtual WiFi Miniport Adapter”,那么说明你前边的设置是真确的。
4、开启成功,网络连接中会多出一个网卡为“Microsoft Virtual WiFi Miniport Adapter”的无线。为方便起见,将其重命名为虚拟WiFi。若没有,只需更新无线网卡驱动就OK了。 设置Internet连接共享:在“网络连接”窗口中,右键单击已连接到Internet的网络连接,选择“属性”→“共享”,勾上“允许其他······连接(N)”并选择“虚拟WiFi”。
5、确定之后,提供共享的网卡图标旁会出现“共享的”字样,表示“宽带连接”已共享至“虚拟WiFi。
6、开启无线网络:继续在命令提示符中运行:netsh wlan start hostednetwork,当然可以新建一个记事本文件复制:netsh wlan start hostednetwork然后另存为:启动WIFI热点.bat,下次开机的时候只需要以“管理员身份运行”就启动了。
至此,虚拟WiFi的红叉叉消失,WiFi基站已组建好,主机设置完毕。iphone,touch,笔记本,带WiFi模块的手机等子机搜索到无线网络wuminPC,输入密码wuminWiFi,就能共享上网啦。
Redhat中配置无线网络使用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,则需要在前面加"--"。
示例:
#ifconfig eth0 up/down 启动/禁用无线网卡
#iwconfig eth0 essid any允许任何ESSID,也就是混杂模式
#iwconfig eth0 essid "My Network" 设置ESSID为"My Network"
#iwconfig eth0 essid -- "ANY" 设置ESSID为"ANY"
#iwconfig eth0 key [1] 设置key id
#iwconfig eth0 key 1231231234 设置password为1231231234
#iwpriv eth0 auth 2 设置认证方式为Shared
#iwpriv eth0 enc 2设置加密方式为WEP
#iwlist eth0 scanning 搜索周围存在的无线网络
iwconfig eth0 nwid AB34
iwconfig eth0 nwid o
iwconfig eth0 nickname “My Linux Node”
iwconfig eth0 txpower off
iwconfig eth0 rts 250
iwconfig eth0 rts off
iwconfig eth0 mode Managed
iwconfig eth0 mode Ad-Hoc
iwconfig eth0 freq 2422000000
iwconfig eth0 freq 2.422G
iwconfig eth0 channel 3
iwconfig eth0 channel auto
iwconfig eth0 ap 00:60:1D:01:23:45
iwconfig eth0 ap any
iwconfig eth0 ap off
iwconfig eth0 rate 11M
iwconfig eth0 rate auto
iwconfig eth0 rate 5.5M auto
iwconfig eth0 txpower 15
iwconfig eth0 txpower 30mW
iwconfig eth0 txpower auto
iwconfig eth0 txpower off
iwconfig eth0 sens -80
iwconfig eth0 sens 2
iwconfig eth0 retry 16
iwconfig eth0 retry lifetime 300m
iwconfig eth0 retry min limit 8
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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)