啟用 wpa_supplicant 而不需要 NetworkManager
如果你像我一般,只會進出數個受 WPA 保護的無線網絡,而且想筆記型電腦在開機時連線到本地的無線網絡,這裡有一個簡單的方法。
請注意你可以利用 NetworkManager 來達成目的,但它預設不會在開機時連線到一個網絡 —— NetworkManager 需要一位用戶登入,並將金鑰環的存取權賦予它,好讓它能取回 WPA 金鑰。
這裡是一個啟用 wpa_supplicant 而不需要 NetworkManager 的方法,並且令電腦在開機時連線。你有必要編輯設定檔,因此假若你不太樂意這樣做,你應該考慮採用 NetworkManager。
編輯 /etc/wpa_supplicant/wpa_supplicant.conf
你多數的網絡都會需要在 wpa_supplicant.conf 內擁有一個如此的記錄:
network={
ssid="MYNETWORKSSID"
scan_ssid=1
key_mgmt=WPA-PSK
psk="MYNETWORKPSK"
}
明顯地,你必須以你想連線的網絡的 SSID 及 PSK 來取代 MYNETWORKSSID 及 MYNETWORKPSK。
編輯 /etc/sysconfig/network-scripts/ifup-wireless
請在這個檔案的底部加入下列內容:
if [ "$WPA" = "yes" -a -x /etc/init.d/wpa_supplicant ]; then
/sbin/service wpa_supplicant start
fi
編輯 /etc/sysconfig/network-scripts/ifcfg-*
在 /etc/sysconfig/network-scripts 內有數個描述網絡介面的檔案,例如 ifcfg-eth0(大概是你的乙太網絡),及一個名叫 ifcfg-wlan0 或 ifcfg-eth1 的檔案,用來描述你的無線網絡。
用來描述你的無線網絡介面的檔案應該含有以下一行:
TYPE=Wireless
請在這個檔案的底部加入以下一行:
WPA=yes
編輯 /etc/rc.d/rc.local
我們現在已經設定 wpa_supplicant 在你的無線網絡介面啟動時一起啟動。很不幸地,CentOS 的腳本啟動次序並不正確 —— 它會嘗試在 DBUS 啟動前啟動無線網絡(並帶動 wpa_supplicant),然而 wpa_supplicant 需要 DBUS 才能連作。
最簡單快捷的解決方法就是在 /etc/rc.d/rc.local 的底部加入下面這行,讓你的無線網絡最遲啟動:
/sbin/ifup eth1
(如果你的無線介面是 wlan0,這便是 /sbin/ifup wlan0)。
這樣做會讓所需的程式預先執行,然後在開機過程結束時啟動無線介面及 wpa_supplicant。
在開機時停用介面及 wpa_supplicant
由於我們在相關的網絡介面 ifup 腳本裡直接啟動 wpa_supplicant,我們無需在開機時利用 init 啟動它。請這樣停止它:
chkconfig wpa_supplicant off
你亦可以透過 Network Device Control 應用程式來阻止無線網絡介面(eth1 或 wlan0)於開機時自動啟動,這是由於我們在 rc.local 所做的改動會自行啟動這個介面。
Translation of revision 5
