Вопрос автоматический переход между Wi-Fi и Ethernet в Linux с помощью командной строки


Я хочу переключиться между Wifi и ethernet в Linux (Ubuntu 10.04). Я искал много способов, и я нашел, что это можно сделать, используя firestarter - autoswitch между проводными и беспроводными сетями.

Для этого мне нужно установить пакет firestarter в Ubuntu.

Это правильный способ переключения между eth0 и wifi? Я хотел реализовать его с помощью командной строки без установки каких-либо новых пакетов.

Пожалуйста помоги. заранее спасибо


2
2018-06-10 05:54


происхождения




ответы:


Я создал сценарий для подключения и отключения от 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 

1
2018-06-18 04:47





Connman(1) может использоваться для приоритизации ваших соединений, чтобы предпочесть проводные сети и автоматически подключаться к проводным соединениям, когда проводное соединение недоступно. Он поддерживается Intel, поэтому он может быть враждебным к неинтеллектуальному сетевому оборудованию: я не могу использовать Connman(1) поскольку мой драйвер wifi не установит флаги, которые Intel ожидает включить адаптер. Я получаю ошибку «без несущей» и не подключаю Wi-Fi. Однако, кажется, он быстро подключается, когда я подключаю проводное соединение.

Вам необходимо настроить /etc/connman/main.conf/main.conf с чем-то вроде:

  BackgroundScanning = false
  DefaultAutoConnectTechnologies = ethernet,wifi 
  PreferredTechnologies = ethernet,wifi
  SingleConnectedTechnology = true

для обеспечения подключения только Wi-Fi или Ethernet. Затем используйте интерактивный connmanctl(1) сеанс, как указано в man-странице, для подключения к Wi-Fi в первый раз или редактирования файла настроек для вашего интерфейса, найденного в /var/lib/connman (мне это кажется мне легче, но перезагрузка требуется.) См. connman-service.config(5)

Если у вас есть ifupdown или его варианты, вы можете удалить их, чтобы избежать столкновений перед установкой connman(1)


1
2017-07-17 20:35



Добро пожаловать в Ask Ubuntu! :-)  Отличный первый ответ!  Upvoted! - Fabby