В настоящее время я переключаюсь между следующими двумя настройками ежедневно:
1) Будучи подключен к Интернету через сеть WiFi.
2) Подключите мой ноутбук (Ubuntu 16.04) к Интернету через проводное соединение, а затем поделитесь этим подключением с другими моими устройствами с помощью встроенной функции горячей точки Ubuntu.
На данный момент переключение с 1 на 2 требует, чтобы я вручную прошел через диалог «подключиться к скрытой сети» в Network Manager; аналогично переключение с 2 на 1 требует от меня ручного отключения от точки доступа и подключения к сети Wi-Fi. Это не много работы, но я делаю это достаточно часто, поэтому я хотел бы, чтобы это было автоматизировано.
Это не так просто, как включение автоматического подключения для точки доступа, поскольку тогда оно переопределяет функциональность автоматического подключения других сетей, а не подключает меня к сети Wi-Fi, когда я не подключен через проводное подключение, и в результате возникает горячая точка, но без интернета. Поэтому мне нужно решение, которое:
- подключает меня к горячей точке всякий раз, когда я подключен к Интернету через проводное соединение.
- отключает меня от горячей точки, когда нет подключения к Ethernet.
- autoconnect меня к одной из сетей с autoconnect = true, когда они доступны, и нет подключения к Ethernet.
Полное объяснение того, как это сделать, было бы замечательно, но ссылка на хорошее (не экспертное) руководство по настройке таких правил также была бы очень признательна.
источник
post-up
в/etc/network/interfaces
контексте, есть большой обзор здесь .post-up
в основном, просто вызывает команды или сценарии после появления интерфейса.Ответы:
Насколько я понимаю, когда вы подключаете кабель Ethernet, который превосходит соединение Wi-Fi, и соединение Wi-Fi разрывается автоматически. Аналогичным образом отключение кабеля Ethernet автоматически подключается к предпочитаемому Wi-Fi (при условии, конечно, что у вас установлен флажок для автоматического подключения к этой сети Wi-Fi на вкладке «Общие» диспетчера сети. Протестировано при стандартной установке Ubuntu 16.04.3
Так что, если я вас правильно понимаю, вы просто хотите автоматически запустить службу горячей точки на своем ноутбуке, когда кабель Ethernet подключен, и отключить службу, когда кабель Ethernet отключен.
Это должно быть довольно просто сделать с помощью bash-скрипта, а
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-соединения в Network Manager, так как он будет пытаться автоматически подключаться, когда он доступен, и может помешать выполнению того, что вы пытаетесь выполнить. Выдержка из
man nmcli
:Поэтому, как только вы определили, что ваш Ethernet подключен, вы можете выполнить команды, чтобы разорвать соединение Wi-Fi Пример:
nmcli connection my-wifi down
и затем соединение горячей точки Пример:nmcli connection my-hotspot up
Подробнее о том, как автоматически запускать сценарии на основе сетевого подключения, смотрите здесь. Для более подробной информации о «nmcli» проверьте страницу руководства . А вот информация о том, как создать точку доступа.
источник
nmcli connection my-wifi down
он никогда не переподключается?Решение, которое сделало это для меня (найдено с помощью Elder Geek).
Я продолжал AutoConnect на всех сетей , которые я хочу , чтобы автоматически подключиться, но от за хот-спота. Затем я помещаю следующий скрипт (с правами доступа, описанными на этой вики-странице ) в папку
/etc/NetworkManager/dispatcher.d
Это работает очень хорошо до сих пор; автоматическое подключение к точке доступа всякий раз, когда подключен кабель Ethernet или даже когда компьютер загружается или просыпается с подключенным кабелем Ethernet. Автоматическое отключение от горячей точки при каждом извлечении кабеля Ethernet с последующим автоматическим подключением к доступным сетям WiFi.
источник