NetworkManager — это служба для Linux, которая управляет различными сетевыми интерфейсами, включая физические, такие как Ethernet и беспроводной, и виртуальные, такие как VPN и другие туннели. Network Manager можно настроить для управления некоторыми или всеми интерфейсами системы.
У NetworkManager есть графический интерфейс — это тот апплет, который открывается, когда вы нажимаете на иконку сети, расположенную рядом с часами, а также окна настройки сети и сетевых соединений, в которые вы можете перейти из апплета. По умолчанию NetworkManager предустановлен на многих дистрибутивах Linux.
Хотя NetworkManager это отличная служба для управления повседневными потребностями компьютера пользователя, его эффекты обычно не оптимальны для среды тестирования. NetworkManager может самостоятельно, без запроса пользователя, менять MAC-адреса сетевых интерфейсов, а также менять их состояние — например, при подключении USB Wi-Fi адаптера именно NetworkManager переводит его в состояние up (включено), может вывести беспроводной интерфейс из режима монитора и перевести его в обычное состояние.
Связанная статья: Как поменять MAC-адрес в Linux, как включить и отключить автоматическую смену (спуфинг) MAC в Linux
Если вы хотите избежать этого для определённых сетевых интерфейсов, то кроме очевидного решения остановить службу NetworkManager или удалить NetworkManager вовсе, есть другие варианты. Кстати, если вас только не устраивает, что MAC-адреса меняются на произвольные, то это можно настроить или отключить в самом NetworkManager.
Что такое unmanaged (без управления) интерфейс в NetworkManager
Состояние unmanaged (без управления) в NetworkManager для сетевого интерфейса означает, что NetworkManager никак не взаимодействует с данным сетевым интерфейсом: не включает его, не меняет его режим работы, не меняет MAC-адрес, не использует для поиска сетей и даже не показывает в списке сетевых интерфейсов — то есть NetworkManager делает вид, что этого интерфейса в системе просто нет.
Как определить, управляет ли NetworkManager определённым сетевым интерфейсом
Состояние unmanaged имеет эффект только в самом NetworkManager. Вы, как обычно, можете видеть все сетевые интерфейсы командой
ip a
или только беспроводные командой
iw dev
При этом там никак не обозначено, управляет ли этим интерфейсом NetworkManager.
Как уже было сказано, если ваше устройство отсутствует в списке сетевых интерфейсов, которые показывает NetworkManager, значит оно может быть в состоянии unmanaged.
Но чтобы быть точно уверенным в этом, можно использовать команду nmcli — это инструмент командной строки для управления NetworkManager. Чтобы вывести список сетевых интерфейсов и их состояние выполните команду:
nmcli dev status
Для unmanaged устройств будет показано «без управления».
Предположим, я хочу, чтобы NetworkManager никак не менял настройки беспроводного сетевого интерфейса с именем wlp0s20f0u1.
Как временно перевести сетевой интерфейс в unmanaged (без управления) в NetworkManager
Сетевой интерфейс можно отключить от управления NetworkManager временно или постоянно (чтобы этот статус сохранялся после перезагрузки). На самом деле, можно в любое время поменять статус.
Чтобы на время сделать интерфейс unmanaged, выполните команду вида:
nmcli dev set ИНТЕРФЕЙС managed no
Например:
nmcli dev set wlp0s20f0u1 managed no
Проверяем:
nmcli dev status
Обратите внимание на строку:
wlp0s20f0u1 wifi без управления --
Данная настройка сбрасывается не только после перезагрузки компьютера, но и после отключения и подключения сетевого интерфейса.
Как перевести сетевой интерфейс в unmanaged (без управления) в NetworkManager, чтобы это сохранялось после перезагрузки
Чтобы NetworkManager не трогал сетевой интерфейс сразу после запуска службы и чтобы эта настройка сохранилась после перезагрузки, нужно использовать метод keyfile.
Для этого откройте файл /etc/NetworkManager/NetworkManager.conf:
sudo gedit /etc/NetworkManager/NetworkManager.conf
И добавьте туда строки вида:
[keyfile] unmanaged-devices=mac:00:11:22:33:44:55;mac:66:77:88:99:00:aa
Вы можете перечислить любое количество MAC-адресов.
Посмотреть MAC-адреса сетевых интерфейсов можно командой
ip a
Но помните, что NetworkManager уже мог присвоить произвольный MAC-адрес, чтобы увидеть настоящий, выполните команду вида:
nmcli dev set ИНТЕРФЕЙС managed no
Перечислите MAC-адрес каждого интерфейса, который Network Manager должен игнорировать, через точку с запятой. Убедитесь, что перечисленные здесь MAC-адреса записаны в нижнем регистре.
Более новые версии NetworkManager могут также использовать более общий альтернативный метод KEYFILE, который не включает фактические MAC-адреса и вместо этого использует имена интерфейсов. Этот синтаксис заменяет приведённый выше раздел [keyfile] следующим:
[keyfile] unmanaged-devices=interface-name:eth*,except:interface-name:eth0;interface-name:wlan*
К примеру, я хочу, чтобы NetworkManager не управлял сетевыми интерфейсами wlp0s20f0u1, wlp0s20f0u2 и wlp0s20f0u3, тогда мои строки следующие:
[keyfile] unmanaged-devices=interface-name:wlp0s20f0u1;interface-name:wlp0s20f0u2;interface-name:wlp0s20f0u3
Сохраните сделанные изменения и перезапустите службу:
sudo systemctl restart NetworkManager
Проверим:
nmcli dev status
Как вернуть сетевой интерфейс под управление NetworkManager
Теперь перечисленные сетевые интерфейсы всегда будут «без управления». Но их можно вновь передать под управление NetworkManager. Для этого достаточно откатить сделанные изменения в файле NetworkManager.conf и перезапустить службу.
Если вы вывели интерфейс из-под управления NetworkManager командой nmcli, то вернуть его в прежнее состояние можно командой:
nmcli dev set ИНТЕРФЕЙС managed yes
Как выключить NetworkManager
Если вы хотите полностью остановить NetworkManager, чтобы он перестал управлять сразу всеми сетевыми интерфейсами, то выполните команду:
sudo systemctl stop NetworkManager
Если вы хотите убрать NetworkManager из автозагрузки, то выполните:
sudo systemctl disable NetworkManager
Чтобы вновь запустить NetworkManager и добавить его в автозагрузку выполните:
sudo systemctl start NetworkManager sudo systemctl enable NetworkManager
Связанные статьи:
- Где NetworkManager хранит настройки (РЕШЕНО) (81.8%)
- Почему при смене MAC-адреса в VirtualBox пропадает подключение (РЕШЕНО) (68.9%)
- Как использовать команду ip в Linux (62.3%)
- Что такое сокеты Unix и как они работают? (59.2%)
- Переход с устаревшей команды iwconfig (wireless_tools) на iw (59%)
- Как установить драйвер для W-Fi для карт с чипсетом RTL8814AU (Alfa AWUS1900) (RANDOM - 2.4%)
СПАСИБО!