Как управлять приоритетом доступных беспроводных сетей?

Вопрос или проблема

Я хочу двигаться вверх и вниз по доступным беспроводным точкам доступа, устанавливая приоритеты, как это можно сделать в Microsoft Windows. Не помню, чтобы я когда-либо достигал этого с тех пор, как начал использовать network-manager. Возможно, что-то можно сделать с файлами конфигурации…

Меня не интересуют другие менеджеры сетей.

Очевидно, в 2014 году команда NetworkManager представила такую функцию — возможность указывать приоритеты для разных сетей. Теперь доступен параметр connection.autoconnect-priority.

Эта статья предоставляет много информации о том, как взаимодействовать с NetworkManager через nmcli.

Например, с помощью

nmcli -f NAME,UUID,AUTOCONNECT,AUTOCONNECT-PRIORITY c

вы можете перечислить известные сети и увидеть, что их приоритет по умолчанию равен 0. Теперь я запустил команду

nmcli connection modify HOME-WIFI connection.autoconnect-priority 10

чтобы дать моему домашнему WiFi более высокий приоритет. У меня дома также доступны те же WiFi-точки, что и на работе, но я должен подключаться к HOME-WIFI, когда я дома. Эта команда сильно перезаписала /etc/NetworkManager/system-connections/HOME-WIFI, добавив autoconnect-priority=10 в секцию [connection] — время покажет, будет ли это работать как надо.

Может ли приоритет WiFi изменяться вверх и вниз в NetworkManager?

Короткий ответ — «Пока нет». По состоянию на середину 2018 года в Ubuntu нет ничего столь же простого, как в Microsoft Windows, для установки приоритета WiFi. Тем не менее, существуют способы достичь того, что вы хотите.


TL;DR? Резюме

Для работы в командной строке используйте nmcli. Для графического интерфейса — plasma-nm.

nmcli -f autoconnect-priority,name c
nmcli c mod "mypreferred" conn.autoconnect-p 10
nmcli c mod "xfinitywifi" conn.autoconnect-p -10

или

apt install plasma-nm
kde5-nm-connection-editor

Доступные альтернативы

Вот текущие доступные способы установки приоритета WiFi с коротким описанием, почему они не вполне отвечают на исходный вопрос.

Инструменты командной строки (nmcli)

Хотя это решение, возможно, является самым простым способом сделать это, и оно работает с NetworkManager, nmcli не позволяет проводить переупорядочивание в стиле Microsoft Windows. На самом деле nmcli (как следует из названия) — это “командный интерфейс” для NetworkManager, что означает, что вам придется вводить команды в терминале, что может отпугнуть некоторых людей. Я опишу подробнее, как его использовать ниже.

Plasma-nm (kde5-nm-connection-editor)

Этот инструмент не позволяет проводить переупорядочивание методом drag-and-drop, но он работает с NetworkManager. Несмотря на название “KDE”, он работает с любой настольной средой (я тестировал его с GNOME). Он предоставляет графический интерфейс, который позволяет редактировать “autoconnect-priority” сети. Я расскажу, как его использовать, ниже.

Wifi Radar

Этот инструмент позволяет перемещать приоритеты сетей вверх и вниз, как запрашивалось. Однако он фактически не интегрирован с Network Manager; на самом деле я считаю ошибкой запускать их оба одновременно. Также, несмотря на наличие графического интерфейса, он не так прост в использовании, как следовало бы. Еще одна причина не использовать Wifi Radar заключается в том, что это Python-скрипт, который должен быть запущен от имени root, что представляет потенциальный риск безопасности. Также, согласно руководству, WiFi Radar очень энергозатратен и имеет “вероятно много” ошибок.

Панель управления сетью GNOME (даже не рассматривается)

Я упоминаю это больше для полноты картины, так как это то, что люди ожидали бы работать, но это не так. GNOME, которая является текущей стандартной средней средой рабочего стола Ubuntu, поставляется с панелью управления сетью, которая просто не может показывать или редактировать приоритеты автоподключения вообще. (Кстати, nmcli и plasma-nm работают нормально под GNOME.)

nm-connection-editor: старая панель управления сети GNOME

У GNOME когда-то была возможность устанавливать приоритеты подключений, хотя и в неудобный способ, не методом drag-and-drop. Старая панель управления все еще включена в GNOME, но не доступна для нажатия. Вместо этого запустите команду nm-connection-editor, затем выберите WiFi-сеть, нажмите Изменить, перейдите на вкладку Общие и нажмите кнопки – / + рядом с “приоритетом подключения для автоматической активации”.

Emacs/vi

Если вы заядлый фанат, бормочущий код во сне, все, что вам нужно сделать, это добавить строку “autoconnect-priority: 10” в файл /etc/NetworkManager/system-connections/foo. Смотрите nm-settings(5).


Полное объяснение с примерами

Оба nmcli и kde5-nm-connection-editor могут редактировать индивидуальные приоритеты автоподключения сетей. Только nmcli может показать вам список всех текущих установленных приоритетов. Оба предполагают, что вы знаете, что более высокие числа представляют более высокий приоритет, а ноль является значением по умолчанию. Допускаются отрицательные числа, которые работают для обозначения сети как “последнего средства”, если ничего другого из известных WiFi-сетей недоступно (Смотрите man nm-settings и поисковый запрос “autoconnect-priority”.)

Изменения, сделанные nmcli и plasma-nm, сохраняются NetworkManager в папке /etc/NetworkManager/system-connections/ на постоянной основе.

Как использовать nmcli

Это мое предпочтительное решение, и оно уже включено в Ubuntu. Если вы знакомы с командной строкой или у вас природный лингвистический склад ума, вы можете найти это решение проще, чем использование мыши. С другой стороны, если вы хотите попробовать сначала графический интерфейс, перейдите к следующей секции о KDE’s plasma-nm. Во всех примерах ниже вам потребуется открыть терминал для ввода команд.

Чтобы увидеть текущие приоритеты

$ nmcli -f autoconnect-priority,name c 

Пример вывода:

AUTOCONNECT-PRIORITY  NAME
0                     Blake5Net             
0                     Caffe Ubuntu      
0                     Caffe Ubuntu Guest      
0                     Fire Hotspot          
0                     JET & Mishka             
0                     La Marzocco           
0                     Le_MX                 
0                     MobileLab             
0                     xfinitywifi           

Подсказка: Если у вас очень длинный список, вы можете отсортировать их по приоритету:

nmcli -f autoconnect-priority,name c | tail -n +2 | sort -nr

Как установить сеть как предпочитаемую

nmcli connection modify "Caffe Ubuntu" connection.autoconnect-priority 10

Обратите внимание, что вы можете использовать любое число для приоритета. Большее число перемещает сеть на вершину списка.

Как установить сеть как последнее средство

nmcli connection modify "xfinitywifi" connection.autoconnect-priority -10

Отрицательные значения приоритета ниже значения по умолчанию 0, что означает, что они будут испробованы последними, если никакая другая известная сеть WiFi не будет найдена. Обратите внимание, что из-за ошибки в некоторых версиях nmcli вы можете видеть отрицательные числа в виде огромных положительных чисел, таких как 4294967286. Не беспокойтесь об этом, так как это все равно будет работать нормально.

Как использовать plasma-nm

Plasma-nm, клиент NetworkManager для KDE, позволяет изменить приоритет сети с помощью нескольких кликов в графическом интерфейсе. Вы не можете использовать drag-and-drop, вместо этого вам нужно указать число. Как и в nmcli, более высокие числа имеют более высокий приоритет. К сожалению, вы не можете увидеть список ранее установленных приоритетов, поэтому вам, возможно, придется угадать число. Лично я просто использую “10” для предпочтительных сетей и “-10” для сетей последнего средства и не делаю различия между ними дальше этого.

Вам не нужно устанавливать весь KDE, чтобы получить plasma-nm. (На моей машине, работающей под GNOME, полный пакет KDE требовал бы загрузки более 600 МБ; в отличие от этого, plasma-nm занимало всего 8 МБ). Я установил plasma-nm с помощью командной строки, как показано ниже:

sudo apt install plasma-nm

и запустил его, набрав это:

kde5-nm-connection-editor

(Ну, технически я не набирал все это. Я использовал TAB для автозавершения набора.)

Если вы не используете KDE, при первом запуске plasma-nm он спросит вас о создании “кошелька” для хранения учетных данных. Я просто нажал “Отмена” на этот вопрос, и у меня все работало нормально.

Затем он покажет вам список соединений. Дважды щелкните по соединению, которое вы хотите изменить. Это вызовет окно “Редактор соединений”. Выберите вкладку “Общая конфигурация”. Внизу вы увидите поле с надписью “Приоритет”. Измените его с 0 на 10 (предпочтительный) или -10 (последнее средство). Нажмите “ОК”, чтобы сохранить изменения.

Панель редактора соединения plasma-nm

Поскольку изменения сохраняются NetworkManager на постоянной основе, как только вы закончите настроивать приоритеты, вам не нужно держать plasma-nm установленным, если вы этого не хотите. (sudo apt remove plasma-nm)

Запуск nm-connection-editor

С тех пор, как (сетевые) настройки были переработаны в GNOME, некоторые функции больше не доступны из нового интерфейса настроек. Чтобы использовать старый, который предоставляет больше опций, запустите nm-connection-editor.

Установка приоритета соединения в <code>nm-connection-editor</code>“></a><!--/noindex--></p></div><div class=

WiFi Radar это утилита на Python/PyGTK2 для управления профилями WiFi.
Она позволяет сканировать доступные сети и создавать профили для
ваших предпочитаемых сетей. При загрузке WiFi Radar
автоматически сканирует доступные предпочитаемые сети и подключается к
ней. Вы можете перетаскивать предпочитаемые сети, чтобы изменить их
приоритет профиля. 1

Чтобы установить WiFi Radar, просто нажмите Ctrl+Alt+T на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните следующую команду.

sudo apt install wifi-radar

Чтобы запустить его,

sudo wifi-radar

WiFi Radar имеет новую версию 2.0, которую можно скачать с их вебсайта. Или скачать его из здесь

1Источник: Ubuntu Geek

Если вы используете xfce, например в xubuntu 18.04, вы можете сделать следующее:

  • Перейдите к аплету WiFi (правый верхний угол)
  • Нажмите “Редактировать подключения”
  • Дважды щелкните по интересующей вас сети
  • Нажмите на вкладку “Общие”
  • Введите значение для “приоритета подключения для автоматической активации”

Положительные числа имеют более высокий приоритет, отрицательные числа имеют более низкий приоритет. Приоритет по умолчанию, кажется, равен 0, поэтому я установил приоритет для вездесущего, но не всегда работающего “xfinitywifi” на отрицательное число, чтобы что-то еще подключалось первым.

Признание: я нашел это только после значительных усилий, направленных на добавление этой функции самостоятельно. Что показывает, что drag-and-drop, наверное, стоит добавить, просто потому что он более интуитивно понятен для обнаружения, хотя необходимо было бы решить вопрос о том, как согласовать его с порядком сортировки по умолчанию и т.д. Вкладка “приоритет” в списке подключений может быть подходящим местом для раскрытия этой функции.

Я ношу с собой мобильное Wifi устройство (4G) и также использую мобильный хотспот с моего мобильного (4G, но другого провайдера). Когда я дома или на работе, я обычно использую доступный там Wifi. Но когда все идет медленно, иногда мне нужно переключаться на мобильные устройства. Вот что я сделал, чтобы ускорить это.

Установите приоритеты

  1. Я запустил nm-connection-editor из терминала. Это открывает приложение ‘Network Connections’, где вы можете установить приоритеты для разных точек доступа WiFi, которые вы используете.

введите описание изображения здесь

  1. Я изменил приоритеты так, чтобы мобильные устройства WiFi были выше в порядке.

    • Мобильный хотспот -> 100
    • Мобильное устройство WiFi -> 90
    • Офисный Wifi -> 50
    • Домашний Wifi -> 40 и т.д.
  2. Теперь, когда я в офисе, обычно подключаюсь к Офисному Wifi, если он не обнаруживает мобильные устройства при запуске. Однако, если я считаю офисную сеть медленной и хочу подключиться к мобильному WiFi, я просто запускаю сочетание клавиш (Ctrl+Alt+R) с нижеприведенной командой:

    sh -c "nmcli r wifi off && nmcli r wifi on"

Создайте комбинацию клавиш

  1. Откройте Настройки > Устройства > Горячие клавиши

  2. Прокрутите вниз и нажмите кнопку плюс (+) внизу, чтобы добавить новую горячую клавишу

  3. Дайте ей имя, комбинацию клавиш (в моем случае Ctrl+Alt+R) и введите нижеуказанный код в поле Команда:

    sh -c "nmcli r wifi off && nmcli r wifi on"

Это комбинация двух команд — первая часть выключает WiFi, а вторая часть включает его снова. При этом он подключает вас к точке доступа WiFi с наивысшим доступным приоритетом.

введите описание изображения здесь

  1. Сохраните, и все готово.

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

Протестировано в ubuntu 24.04 с запущенным Network Manager.

Вы можете настроить точку доступа как деприоритизированную так, чтобы ваша машина имела интернет через ethernet или LTE, в то время как WiFi подключен к точке доступа, которая не подключается к интернету.

  1. Bash: nm-connection-editor
  2. Выберите точку доступа wifi, которую вы хотите деприоритизировать введите описание изображения здесь
  3. Выберите IPv4 > Routes… введите описание изображения здесь
  4. Включите “используйте это соединение только… “. Подсказка при наведении: “Если включено, это соединение никогда не будет использоваться как основное интернет-соединение” введите описание изображения здесь

Ответ или решение

Управление приоритетом доступа к беспроводным сетям может быть достаточно актуальной задачей для пользователей, которым требуется гибкость в подключении к различным точкам доступа в зависимости от предпочтений или условий среды. В отличие от операционной системы Microsoft Windows, у которой предусмотрен более интуитивно понятный интерфейс для задания приоритета сетей, в Linux, использующем NetworkManager и его компоненты, подход к решению данной задачи может отличаться в силу своей специфики и требовать более глубокого понимания работы с командной строкой.

Теория

В 2014 году команда NetworkManager внедрила функцию, позволяющую задавать приоритет для соединений с беспроводными сетями с помощью параметра connection.autoconnect-priority. Эта возможность позволяет операционной системе определять порядок, в котором будут устанавливаться подключения к доступным сетям. Дополнительно, параметр autoconnect-priority можно настроить вручную в конфигурационных файлах или через интерфейс командной строки, что делает его гибким выбором для опытных пользователей Linux.

Пример

Одним из наиболее доступных и распространенных инструментов для работы с NetworkManager является nmcli — интерфейс командной строки, который позволяет пользователям управлять сетями, используя текстовые команды. Применение такой команды, как nmcli connection modify <имя_сети> connection.autoconnect-priority <приоритет>, позволяет задать конкретному соединению приоритет. Более высокий числовой приоритет означает, что сеть будет предпочтительной при автоматическом подключении. Например,

nmcli connection modify HOME-WIFI connection.autoconnect-priority 10

Присваивает домашней сети более высокий приоритет по сравнению с другими доступными сетями.

Применение

Теперь рассмотрим, как можно применять данную конфигурацию в реальных условиях. Допустим, у вас есть несколько точек доступа Wi-Fi, доступных дома, включая рабочую сеть. Параметр connection.autoconnect-priority поможет организовать их так, чтобы домашняя сеть всегда имела более высокий приоритет, чем рабочая. Чтобы добиться этого, используйте следующую команду:

nmcli connection modify HOME-WIFI connection.autoconnect-priority 20
nmcli connection modify WORK-WIFI connection.autoconnect-priority 5

Таким образом, если обе сети доступны, устройство подключится к HOME-WIFI, так как ее приоритет выше.

Альтернативные методы

Кроме nmcli, существует несколько других инструментов, которые, хотя и не предоставляют такой же прямолинейности, все же могут быть полезны. Например, plasma-nm, ориентированный на пользователей графических интерфейсов, позволяет корректировать приоритеты через GUI на базе KDE. Этот инструмент можно установить и использовать независимо от среды рабочего стола, несмотря на название, связанное с KDE. Таким образом можно менять приоритеты, вводя значение приоритета в соответствующее поле на вкладке "General Configuration" в редакторе соединений.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...