昨天家里路由器坏了,又有三台电脑要同时上网,于是我想到了Win7自带的Ad-Hoc功能。把网线插在一台Win7电脑上,拨号上网并共享此宽带连接,然后创建一个p2p的无线连接。另一台Win7连上这个p2p连接后就可以顺利上网。而我在自己的Arch Linux下尝试连接的时候却总是失败。昨晚折腾了好久之后不得不打开一个pdf小说默默地看了一晚。

今天回家继续尝试,终于成功了,不知道是不是用dhclient代替dhcpcd的缘故。也正好整理一下Linux下用命令行管理无线网络的方法。主要涉及三个命令ifconfig、iwlist和iwconfig。ifconfig用来控制无线设备的启用禁用状态、设置IP和子网掩码;iwlist用来搜索无线网络;iwconfig用来连接到特定的无线网络。之所以采用命令行的方式是因为有三个好处:首先不依赖其他软件包;其次快速可靠;第三可以写一个shell脚本实现自动化。

按顺序逐步操作,以下步骤都需要root权限。

ifconfig wlan0 up

这一步开启wlan0无线网卡,可以把wlan0换成你的无线设备名,一般情况下都是wlan0。

iwlist wlan0 scan

这个步骤可以搜索出范围内的全部无线网络,列出它们的essid、channel、网络类型和加密情况等等。比如:

Cell 01 - Address: AA:FA:E2:E2:34:C6
    Channel:11
    Frequency:2.462 GHz (Channel 11)
    Quality=44/70  Signal level=-66 dBm  
    Encryption key:off
    ESSID:"share"
    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
    Mode:Ad-Hoc
    Extra:tsf=000000007f49f22a
    Extra: Last beacon: 96ms ago
    IE: Unknown: 00057368617265
    IE: Unknown: 010482848B96
    IE: Unknown: 03010B
    IE: Unknown: 06020000
    IE: Unknown: DD09001018020010010000

然后根据iwlist搜出来的网络信息,选择你要连接的网络之后对wlan0设备进行设置,仔细看每一条命令的设置都对应于前面列出的iwlist结果。

iwconfig wlan0 mode Ad-Hoc
iwconfig wlan0 channel 11
iwconfig wlan0 key off
iwconfig wlan0 essid "essid"

最后一步用dhclient对wlan0设置进行dhcp,自动获得IP地址、子网掩码、网关等信息。到此,无线网络连接完成。ping一下看看是不是已经能通过Ah-Hoc服务器的宽带连接共享上网了?

dhclient wlan0
Logo

更多推荐