早上習慣在Ubuntu 11.04 下打開防火牆,竟然報錯,看樣子和8.04版本firestarter裡面錯誤一樣,還是配置文件取值的問題(奇怪為什麼老有這個問題呀)
先秀一下我升級後的版本
www.linuxidc.com@linuxidc:~$ 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.linuxidc.om@linuxidc:~$ export LANG=C
www.linuxidc.om@linuxidc:~$ /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
最後祝大家好運