Как я могу заставить NetworkManager игнорировать мою беспроводную карту?

Я не хочу, чтобы NetworkManager отображал или управлял моей беспроводной картой. Можно ли как-то скрыть свой интерфейс от NetworkManager?

Я попытался добавить это в /etc/network/interfaces ,

 iface wlan0 inet static address 192.168.1.101 netmask 255.255.255.0 gateway 192.168.1.1 wireless-essid Synaptotagmin pre-up wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf post-down killall -q wpa_supplicant 

и это в /etc/NetworkManager/nm-system-settings.conf ,

 [main] plugins=ifupdown,keyfile [ifupdown] managed=false [keyfile] unmanaged-devices=/org/freedesktop/Hal/devices/net_00_19_e0_57_86_af 

но NetworkManager Applet по-прежнему перечисляет и позволяет мне подключаться к беспроводным сетям.

Согласно Gnome Wiki , синтаксис в /etc/NetworkManager/NetworkManager.conf (в старых версиях был /etc/NetworkManager/nm-system-settings.conf ) отличается от того, что я читал Arch Linux Wiki . Должен быть:

 [main] plugins=ifupdown,keyfile [ifupdown] managed=false [keyfile] unmanaged-devices=mac:00:19:e0:57:86:af 

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

Используйте следующий /etc/NetworkManager/nm-system-settings.conf :

 [main] plugins=ifupdown,keyfile [ifupdown] managed=false 

Таким образом, ваши интерфейсы из /etc/network/interfaces будут неуправляемы Network Manager, т. Е. Не будут пытаться что-либо с ними делать.

Я думаю, что неправильная линия может быть:

 unmanaged-devices=/org/freedesktop/Hal/devices/net_00_19_e0_57_86_af 

поскольку я не нашел этот формат, указанный в официальной документации.

Допустимые форматы: unmanaged-devices=mac:<hwaddr> или, в последних версиях Network Manager, unmanaged-devices=interface-name:<ifname> . Оба принимаются вместе, разделенные точкой с запятой, например:

 unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth2 

Это выдержка из руководства NetworkManager.conf:

неуправляемое-устройство

Установите устройства, которые следует игнорировать NetworkManager при использовании плагина keyfile. Устройства указаны в следующем формате:

mac: или имя-интерфейса :. Здесь hwaddr – это MAC-адрес устройства, который нужно игнорировать, в шестнадцатеричных цифрах и столбцах. ifname – это имя интерфейса игнорируемого устройства.

Несколько записей разделяются точкой с запятой. В значении пробелов не допускается.

Пример:

неуправляемое-устройство = интерфейс имя: EM4

неуправляемое-устройство = макинтош: 00: 22: 68: 1c: 59: б1; Mac: 00: 1E: 65: 30: D1: С4; имя-интерфейса: eth2

Я предполагаю, что вы на Ubuntu Desktop; если это так, щелкните правой кнопкой мыши на nm-апплете (я думаю, что вы нажмете Natty) и снимите флажок «Включить беспроводную связь». Единственное предостережение в том, что вам придется делать это каждый раз, когда вы входите в систему.

В Ubuntu 14.04 он находится в /etc/NetworkManager/NetworkManager.conf . Но вам, возможно, придется иметь дело с разрешениями.

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

Независимо от того, какой дистрибутив Linux запущен, альтернативный метод может использоваться, чтобы сообщить Network Manager прекратить управление интерфейсом. Это делается путем добавления следующих строк в файл конфигурации Network Manager /etc/NetworkManager/NetworkManager.conf :

 [main] plugins=keyfile [keyfile] unmanaged-devices=mac:00:11:22:33:44:55;mac:66:77:88:99:00:aa 

Перечислите MAC-адрес каждого интерфейса, который должен игнорировать диспетчер сети, разделенный точкой с запятой. Убедитесь, что MAC-адреса, перечисленные здесь, являются LOWER CASE (если там уже есть раздел [main] с plugins=... , добавьте в этот список keyfile плагина)

Чтобы получить адрес mac вашего устройства wlan0 используйте

 LANG=c ifconfig wlan0|grep HWaddr 

Это покажет mac устройства, что-то вроде

 wlan0 Link encap:Ethernet HWaddr ac:51:4f:70:13:72 

Перезапустите NetworkManager с помощью

 sudo /etc/init.d/network-manager restart 

Просто создайте файл .sh содержащий killall -q wpa_supplicant и запустите его, используя cron при входе в систему.