
Я хочу переключаться между Wifi и ethernet в Linux (Ubuntu 10.04). Я искал много способов и обнаружил, что это можно сделать с помощью firestarter — автоматического переключения между проводными и беспроводными сетями.
Для этого мне нужно установить пакет firestarter в Ubuntu.
Это правильный способ переключения между eth0 и wifi? Я хотел реализовать это с помощью командной строки без установки каких-либо новых пакетов.
Помогите пожалуйста. Спасибо заранее.
решение1
Connman(1)
может использоваться для установки приоритетов подключений, чтобы предпочесть проводные сети и автоматически подключаться к беспроводным сетям, когда проводное соединение недоступно. Он поддерживается Intel, поэтому может быть враждебным к сетевому оборудованию не Intel: Я не могу использовать, Connman(1)
так как мой драйвер Wi-Fi не устанавливает флаги, которые Intel ожидает включить для адаптера. Я получаю ошибку «no carrier» и отсутствие подключения Wi-Fi. Однако, кажется, он быстро подключается, когда я подключаю проводное соединение.
Вам необходимо настроить /etc/connman/main.conf/main.conf
что-то вроде:
BackgroundScanning = false
DefaultAutoConnectTechnologies = ethernet,wifi
PreferredTechnologies = ethernet,wifi
SingleConnectedTechnology = true
чтобы убедиться, что подключен только wifi или ethernet. Затем используйте интерактивный connmanctl(1)
сеанс, как указано на странице man, чтобы подключиться к wifi в первый раз или отредактируйте файл настроек для вашего интерфейса, найденный в /var/lib/connman
(это кажется мне проще, но требуется перезагрузка.) Смотритеconnman-service.config(5)
Если у вас ifupdown
установлены какие-либо его варианты, вы можете удалить их, чтобы избежать конфликтов перед установкой.connman(1)
решение2
Я создал скрипт для подключения и отключения от Wi-Fi и Ethernet.
Отключите Wi-Fi.
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 &
Подключить Ethernet
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
Отключить Ethernet
ifconfig $(ifconfig | grep eth | awk '{print $1}' | head -1 ) down