7.6 用脚本设置以太网与无线LAN
配置以太网很简单,因为它使用物理线缆,没有认证之类的特殊要求。但是无线LAN可就需要认证了,比如WEP密钥,还有所要连接的无线网络的ESSID。让我们看看如何用脚本来连接无线网络和有线网络。
7.6.1 新手上路
我们需要用ifconfig
分配IP地址和子网掩码才能连接上有线网络。对于无线网络来说,还需要其他工具(如iwconfig
和iwlist
)来配置更多的参数。
7.6.2 实战演练
要通过有线网络接口连接网络,执行下面的脚本:
#!/bin/bash
#文件名: etherconnect.sh
#用途: 连接以太网
#根据你的设置修改下面的参数
######### PARAMETERS ###########
IFACE=eth0
IP_ADDR=192.168.0.5
SUBNET_MASK=255.255.255.0
GW=192.168.0.1
HW_ADDR='00:1c:bf:87:25:d2'
# HW_ADDR 是可选的
#################################
if [ $UID -ne 0 ];
then
echo "Run as root"
exit 1
fi
#进行新的配置之前关闭接口
/sbin/ifconfig $IFACE down
if [[ -n $HW_ADDR ]];
then
/sbin/ifconfig hw ether $HW_ADDR
echo Spoofed MAC ADDRESS to $HW_ADDR
fi
/sbin/ifconfig $IFACE $IP_ADDR netmask $SUBNET_MASK
route add default gw $GW $IFACE
echo Successfully configured $IFACE
用WEP连接无线LAN的脚本如下:
#!/bin/bash
#文件名: wlan_connect.sh
#用途: 连接无线 LAN
#根据你的设置修改下面的参数
######### PARAMETERS ###########
IFACE=wlan0
IP_ADDR=192.168.1.5
SUBNET_MASK=255.255.255.0
GW=192.168.1.1
HW_ADDR='00:1c:bf:87:25:d2'
#如果不想欺骗物理地址,在行上注释
ESSID="homenet"
WEP_KEY=8b140b20e7
FREQ=2.462G
#################################
KEY_PART=""
if [[ -n $WEP_KEY ]];
then
KEY_PART="key $WEP_KEY"
fi
#进行新的配置之前关闭接口
/sbin/ifconfig $IFACE down
if [ $UID -ne 0 ];
then
echo "Run as root"
exit 1;
fi
if [[ -n $HW_ADDR ]];
then
/sbin/ifconfig $IFACE hw ether $HW_ADDR
echo Spoofed MAC ADDRESS to $HW_ADDR
fi
/sbin/iwconfig $IFACE essid $ESSID $KEY_PART freq $FREQ
/sbin/ifconfig $IFACE $IP_ADDR netmask $SUBNET_MASK
route add default gw $GW $IFACE
echo Successfully configured $IFACE
7.6.3 工作原理
命令ifconfig
、iwconfig
和route
必须以超级用户身份来运行,因此在脚本一开始要检查是否为超级用户。
连接以太网的这个脚本相当简单明了,例子中涉及的概念在7.2节中都已讲解过。让我们看看用来连接无线LAN的命令。
无线LAN需要essid
、密钥、网络频率等参数。essid
是我们想要连接的无线网络的名称。一些使用WEP(Wired Equivalent Protocol,有线等效保密协议)的网络需要用WEP密钥进行验证,有些网络则不需要这一步。WEP密钥通常是一个10位十六进制数口令。频率则是分配给特定网络的。iwconfig
命令用来为无线网卡配置适合的无线网络、WEP密钥以及频率。
我们可以用iwlist
工具扫描并列出可用的无线网络。用下面的命令进行扫描:
- # iwlist scan
- wlan0 Scan completed :
- Cell 01 - Address: 00:12:17:7B:1C:65
- Channel:11
- Frequency:2.462 GHz (Channel 11)
- Quality=33/70 Signal level=-77 dBm
- Encryption key:on
- ESSID:"model-2"
可以从扫描结果中的Frequency:2.462 GHz (Channel 11)
行提取频率参数。
7.6.4 参考
1.15节讲解了字符串比较。