Desactivando NetworkManager

Estimados, algo de tiempo sin escribir pero aquí de nuevo.

El post de hoy es acerca de como desactivar NetworkManager en tu distro Linux. Este articulo lo vi en ingles y pense que seria buena idea pasarlo al castellano.

Como muchos saben, y quienes no sabían se esteraran, la mayoría de las distros Linux actuales utiliza un servicio que controla las conexión de red, ya sean cableadas, inalambricas, VPN, Broadband Movil y bluetooth (si tambien).

NetworkManager viene con varias propiedades que lo hace muy eficiente a la hora de administrar nuestras redes a las que estemos conectados, y que en algunos escenarios seria mejor dejarlo de lado.

Algunos se preguntan, por ejemplo? Bueno, el que mejor podría ser es cuando se tiene un servidor, donde queremos controlar por nuestra parte las conexiones de red, tablas de ruteo, etc.

Podrias decir, y en mi laptop o maquina de escritorio? En ese caso, este articulo no es para ti, a menos que seas algo atrevido y quieras experimentar.

Bien, manos a la obra.

Revisar que conexión controla NetworkManager


Para revisar podremos ejecutar en una consola el siguiente comando:

$ nmcli dev status
DISPOSITIVO TIPO              ESTADO       
00:17:EA:65:CA:72 bluetooth         desconectado 
p6p1       802-3-ethernet    conectado    
wlan0      802-11-wireless   no disponible

Como veran, tengo los dispositivos:
  • p6p1: la red cableada, así me configuro Fedora la placa de red
  • wlan0: la red inalambrica, como pueden ver, la misma se ve no disponible, esto es porque la tengo desactivada
  • bluetooth: como dije, detecta bluetooth

Los posibles estados que puede mostrar son, conectado (connected), desconectado (disconnected), no disponible (unaviable), y no manejado (unmanaged)


Desactivando NetworkManager completamente


Si nos queremos ponernos "rudos" y deseamos desactivar completamente el servicio lo que se necesita hacer es:

Para Debian


$ sudo /etc/init.d/network-manager stop
$ sudo update-rc.d network-manager remove 

Para Ubuntu y derivados


$ sudo stop network-manager
$ echo "manual" | sudo tee /etc/init/networkmanager.override 

Una vez deshabilitado (tanto en Debian como en Ubuntu) deberán usar el archivo /etc/network/interfaces para configurar sus interfaces de red

Para Fedora/Centos(v.6)


$ sudo systemctl stop NetworkManager.service
$ sudo systemctl disable NetworkManager.service 

Para Centos, versión menores a 6


$ sudo service NetworkManager stop
$ sudo chkconfig NetworkManager off 

Una vez deshabilitado en Fedora y/o Centos, deberás usar el archivo /etc/sysconfig/network-script/ifcfg-ethX (p6p1 en mi caso), según corresponda tu interfaz para configurar tu red

Desactivando NetworkManager sobre interfaces en particular


Es posible desactivar ciertas interfaces de red en NetworkManager, por lo que para hacerlo seria de la siguiente manera:


En primer lugar editar el archivo de configuración en /etc/NetworkManager/NetworkManager.conf, buscar el parametro managed y definirlo como "false", tipicamente ubucado en la seccion ifupdown

 $ sudo vi /etc/NetworkManager/NetworkManager.conf

[ifupdown]
managed=false

Para Debian/Ubuntu y derivados


Posterior, en el archivo /etc/network/interfaces, agregar la informacion de la interfaz que deseas desactivar en NetworkManager. Por ejemplo, la interfaz eth1 con IP fija quedaría así:

 $ sudo vi /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# network interface not managed by Network Manager
allow-hotplug eth1
iface eth1 inet static
address 10.0.0.10
netmask 255.255.255.0
gateway 10.0.0.1
dns-nameservers 8.8.8.8

Con lo anterior, NetworkManager automáticamente ignorara cada interfaz que este configurada en el archivo /etc/network/interfaces

Una vez que reinicies podrás comprobar con nmcli que la interfaz se ve como unmanaged (no manejada, o no administrada).

Para Fedora/Centos


Con lo siguiente podremos deshabilitar la interfaz eth1, solo seria crear y/o modificar el archivo /etc/sysconfig/network-script/ifcfg-eth1, por ejemplo:

 $ sudo vi /etc/sysconfig/network-script/ifcfg-eth1

TYPE="Ethernet"
NAME="eth1"
BOOTPROTO="static"
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
ONBOOT="yes"
NM_CONTROLLED=no

El parámetro que hace la "magia" es NM_CONTROLLED=no, posterior a esto activar el servicio "network" con:

$ sudo chkconfig network on

Por ultimo, reiniciar y al final confirmar con el comando nmcli que la interfaz no se vea manejada por NetworkManager.

Listo, espero les sirva a mas de uno, los comentarios son bienvenidos, que tenga un gran día.

Entradas populares de este blog

Como montar particiones LVM en Linux

Configurando interfaces de red virtuales en Linux