Настройте автоподключение к горячей точке только когда соединение Ethernet

Я в настоящее время переключаюсь между следующими двумя установками ежедневно:

1) Быть подключенным к Интернету через сеть WiFi.

2) Соединение моего (Ubuntu 16.04) ноутбук к Интернету через проводное соединение, затем совместно используя это соединение с моими другими устройствами через встроенную функциональность горячей точки Ubuntu.

В данный момент переключение от 1 до 2 требует, чтобы я вручную прошел "подключение к скрытому сетевому" диалогу в Администраторе сети; так же переключение от 2 до 1 требует, чтобы я вручную разъединился от горячей точки и подключения к сети WiFi. Это не большая работа, но я делаю это достаточно часто, что я хотел бы иметь его быть автоматизированным.

Это не столь просто как разрешающий автоподключение для горячей точки, с тех пор это переопределяет функциональность автоподключения других сетей вместо того, чтобы подключить меня к сети WiFi, когда я не соединен через проводное соединение, и я заканчиваю с горячей точкой, но никаким Интернетом. Таким образом, мне нужно решение который:

  • подключает меня к горячей точке каждый раз, когда я подключен к Интернету через проводное соединение.
  • разъединяет меня от горячей точки, когда нет никакого соединения Ethernet.
  • автоподключает меня к одной из сетей с autoconnect=true каждый раз, когда они доступны и нет никакого соединения Ethernet.

Полное объяснение о том, как сделать это, было бы большим, но ссылка на пользу (неспециалист) руководство для установки этих видов правил будет также очень цениться.

8
задан 9 March 2018 в 05:16

2 ответа

Именно мое понимание, которое, когда Вы включаете кабель Ethernet, превосходит соединение Wi-Fi и отбрасывания соединения Wi-Fi автоматически. Точно так же, разъединяя кабель Ethernet автоматические подключения к Вашему предпочтительному Wi-Fi (обеспечил, конечно, что Вам проверили поле к автоматическому подключению к той сети Wifi на вкладке "Общие" администратора сети. Протестированный на установке по умолчанию Ubuntu 16.04.3

Таким образом, если я понимаю Вас правильно, Вы просто хотите автоматически запустить сервис горячей точки на свой ноутбук, когда кабель Ethernet соединен, и отключите сервис, когда кабель Ethernet разъединяется.

Это должно быть довольно просто сделать со сценарием удара и nmcli 'nmcli' является мощным сетевым инструментом, который позволяет Вам приносить соединения вверх и вниз по желанию и получать тонны релевантной информации.

Узнать, каких соединений Вы будете писать сценарий для просто выполнения nmcli -t monitor| grep primary при соединении через Wi-Fi и включите кабель Ethernet. Соединения Вы интересуетесь обеспечением вверх и вниз с nmcli будут окруженные 's Пример: 'Проводное соединение 1' логика состоит в том, что, когда 'Соединение' соединено, поднимают горячую точку (можно считать необходимым использовать команду sleep или используйте -w переключатель для создания nmcliв Вашем сценарии ожидают конкретного количества секунд для команды для завершения прежде, чем выпустить следующее.

Перевод в нерабочее состояние соединения так же прост как nmcli 'connection name' down и перевод в рабочее состояние того nmcli 'connection name' up

Примечание: Для полного контроля с помощью сценария Вы, возможно, должны на самом деле отключить автоматически опция подключения, по крайней мере, для Вашего соединения Wi-Fi в Администраторе сети, поскольку это попытается автосоединиться каждый раз, когда это доступно и может вмешаться в то, что Вы пытаетесь выполнить. Выборка от man nmcli:

There may be multiple connections that apply
       to a device, but only one of them can be active on that device at any
       given time. The additional connections can be used to allow quick
       switching between different networks and configurations.

Таким образом, после того как Вы решили, что Ваш Ethernet соединен, можно дать команды, чтобы принести соединению Wi-Fi вниз Пример: nmcli connection my-wifi down и затем соединение горячей точки Пример: nmcli connection my-hotspot up

Для больше о том, как автоматически запустить скрипты на основе сетевого соединения, посмотрите это. Поскольку больше детали о 'nmcli' проверяет страницу справочника. И вот информация о том, как создать горячую точку.

2
ответ дан 23 November 2019 в 05:53

Решение, которое сделало это для меня (найденный с помощью Старшего Фаната).

Я сохранил автоподключение на для всех сетей, которые я хочу автоматически подключить с, но прочь для горячей точки. Я затем поместил следующий сценарий (с правильными полномочиями, как описано на этой странице Wiki) в папке /etc/NetworkManager/dispatcher.d

!/bin/bash

interf=$1
state=$2

if [ $interf = "my-ethernet-device" -a $state = "up" ]; then
    nmcli connection up 'my-hotspot'
fi

if [ $interf = "my-ethernet-device" -a $state = "down" ]; then
    nmcli connection down 'my-hotspot'
fi

Это работает очень хорошо до сих пор; автоматическое соединение с горячей точкой каждый раз, когда кабель Ethernet включается или даже когда загрузки компьютера или следы с включенным кабелем Ethernet. Автоматический deconnection от горячей точки каждый раз, когда кабель Ethernet вытащен, сопровождаемый автоматическим соединением с доступными сетями WiFi.

1
ответ дан 23 November 2019 в 05:53

Другие вопросы по тегам:

Похожие вопросы: