Ubuntu 11.04 下 Firestarter 无法启动解决办法


早上习惯在Ubuntu 11.04 下打开防火墙,竟然报错,看样子和8.04版本firestarter里面错误一样,还是配置文件取值的问题(奇怪为什么老有这个问题呀)

先秀一下我升级后的版本 

www.bkjia.com@bkjia:~$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 11.04
Release:    11.04
Codename:    natty

还是老办法,修改firestarter的配置文件:/etc/firestarter/firestarter.sh ,错误的原因在于脚本没有取到参数值,原来取值的shell是

# External network interface data
IP=`LANG=C /sbin/ifconfig $IF | grep inet | cut -d : -f 2 | cut -d \  -f 1`
MASK=`LANG=C /sbin/ifconfig $IF | grep Mas | cut -d : -f 4`
BCAST=`LANG=C /sbin/ifconfig $IF |grep Bcast: | cut -d : -f 3 | cut -d \  -f 1`

错误就是在设置LANG=C上面,我测试了一下,这样会取到空值:

www.bkjia.om@bkjia:~$ export LANG=C
www.bkjia.om@bkjia:~$ /sbin/ifconfig wlan0
wlan0     Link encap:???  ???? 00:26:c7:76:2e:12
 inet ??:192.168.1.100  ??:192.168.1.255  ??:255.255.255.0
 inet6 ??: fe80::226:c7ff:fe76:2e12/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST  MTU:1500  ???:1
 ?????:89993 ??:0 ??:0 ??:0 ??:0
 ?????:83451 ??:0 ??:0 ??:0 ??:0
 ??:0 ??????:1000
 ????:68073259 (68.0 MB)  ????:13938821 (13.9 MB)

修正这个错误很简单,还是我刚才贴的8.04firestarter错误的链接,在脚本的第三行增加LANG=en_US,取消掉LANG=C,大致的内容是:

#!/bin/bash
#-----------( Firestarter Control Script )-----------#
 
#增加下面这行
 
LANG=en_US
 
#中间
 
#内容
 
#省略
 
# External network interface data
IP=`/sbin/ifconfig $IF | grep inet | cut -d : -f 2 | cut -d \  -f 1`
MASK=`/sbin/ifconfig $IF | grep Mas | cut -d : -f 4`
BCAST=`/sbin/ifconfig $IF |grep Bcast: | cut -d : -f 3 | cut -d \  -f 1`
NET=$IP/$MASK

最后祝大家好运 

相关内容