我想在 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 和以太网的脚本
断开 wifi
killall wpa_supplicant
wirelessname=`ls /sys/class/net | grep wlan* | head -1`
ifconfig $wirelessname down
连接 Wi-Fi
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