
我想在 Linux (Ubuntu 10.04) 中切換 Wifi 和乙太網路。我搜尋了很多方法,發現可以使用firestarter——有線和無線網路之間的自動切換來完成。
為此,我需要在 Ubuntu 中安裝 firestarter 套件。
這是 eth0 和 wifi 之間切換的正確方法嗎?我想使用命令列來實現它,而不安裝任何新的軟體包。
請幫忙。先致謝
答案1
Connman(1)
可用於優先考慮您的連接,以優先選擇有線網絡,並在有線連接不可用時自動連接到無線。它受英特爾支持,因此可能對非英特爾網路硬體產生敵意:我無法使用,Connman(1)
因為我的 wifi 驅動程式不會設定英特爾期望啟用適配器的標誌。我收到“無運營商”錯誤並且沒有 WiFi 連線。不過,當我插入有線連接時,它似乎連接得很快。
您需要/etc/connman/main.conf/main.conf
進行以下配置:
BackgroundScanning = false
DefaultAutoConnectTechnologies = ethernet,wifi
PreferredTechnologies = ethernet,wifi
SingleConnectedTechnology = true
確保僅連接 wifi 或乙太網路。然後,使用手冊頁所示的互動式connmanctl(1)
會話首次連接到 wifi,或編輯在中找到的介面的設定檔/var/lib/connman
(這對我來說似乎更容易,但需要重新啟動。)參見connman-service.config(5)
如果您ifupdown
安裝了或其變體,您可以在安裝之前刪除它們以避免衝突connman(1)
答案2
我創建了用於連接和斷開 wifi 和以太網的腳本
斷開無線網路連接
killall wpa_supplicant
wirelessname=`ls /sys/class/net | grep wlan* | head -1`
ifconfig $wirelessname down
連接無線網路
wirelessname=`ls /sys/class/net | grep wlan* | head -1`
ifconfig $wirelessname up > /dev/null 2>&1 &
killall wpa_supplicant > /dev/null 2>&1 &
iwconfig $wirelessname power off > /dev/null 2>&1 &
wpa_passphrase $1 $2 > /root/wps.conf
wpa_supplicant -Dwext -i$wirelessname -c/root/wps.conf > /dev/null 2>&1 &
sleep 5
dhclient -r > /dev/null 2>&1 &
dhclient $wirelessname > /dev/null 2>&1 &
連接乙太網路
ifconfig $(ip link show | grep eth | grep state | awk '{printf $2}'| sed -e 's/:$//') up
ifconfig $(ifconfig | grep eth | awk '{print $1}'| head -1 ) $(ifconfig | grep Bcast | awk '{printf $2}' | cut -c6-) up
斷開乙太網路連接
ifconfig $(ifconfig | grep eth | awk '{print $1}' | head -1 ) down