LinuxParty
Hay muchos casos en los que es posible que deseemos establecer una IP estática para una interfaz de red. En RHEL 8 / CentOS 8, las conexiones de red son administradas por el demonio NetworkManager, por lo que en este tutorial vemos cómo podemos realizar dicha tarea, bien editando un archivo de interfaz directamente, usando una utilidad de línea de comando "nmcli
", o mediante una interfaz de usuario de texto: "nmtui
" .
Tal vez te interese:
- Configuración de una IP Estática en una Tarjeta de Red en Linux.
- Cómo configurar conexiones IP de red usando 'nmcli' en Linux
- Cómo configurar la tarjeta de Red Inalámbrica ( WiFi ) en Linux.
- Configurar dirección IP estática en RHEL 8 / CentOS 8 Linux
- 10 comandos "IP" útiles para configurar interfaces de red.
- Cómo cambiar dirección IP (modo gráfico), por qué querría hacerlo y cuándo no debería hacerlo.
En este tutorial aprenderá:
- Cómo configurar una dirección IP estática editando directamente un archivo de interfaz
- Cómo configurar una dirección IP estática usando la utilidad nmcli
- Cómo configurar una dirección IP estática usando nmtui
El archivo de interfaz de red editado
Introducción
En Red Hat Enterprise Linux 8, las interfaces de red son administradas por el "NetworkManager
" demonio, por lo que para cambiar la configuración de una interfaz de red debemos interactuar de alguna manera con ella. En este tutorial veremos cómo podemos configurar una dirección IP estática, una puerta de enlace y un servidor dns para una NIC usando tres métodos diferentes.
Identificando nuestra interfaz
Lo primero que queremos hacer es encontrar la interfaz que queremos modificar. Para listar todas las interfaces en nuestro sistema, podemos usar el comando "ip addr
":
$ ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp1s0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.122.189/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0 valid_lft 3004sec preferred_lft 3004sec inet6 fe80::9ab6:ba48:1ddd:a8e1/64 scope link noprefixroute valid_lft forever preferred_lft forever
"
En la salida anterior, que es el resultado de ejecutar el comando en mi máquina virtualizada rhel8, podemos ver dos interfaces: "lo
" y "enp1s0
". La primera es una interfaz "virtual", que el sistema utiliza para "hablar" consigo mismo. El segundo es la que nos interesa, y actualmente su dirección IPv4 es 192.168.122.189: queremos cambiarla.
Método 1: modificar el archivo de configuración de la interfaz manualmente
Para cada interfaz de red administrada por el demonio NetworkManager, se crea un archivo de configuración dentro del directorio "/etc/sysconfig/network-scripts
". El nombre del archivo está compuesto por el prefijo "ifcfg-
" más el nombre de la interfaz. Si inspeccionamos el archivo relacionado con nuestra NIC, podemos ver su configuración real:
$ cat /etc/sysconfig/network-scrIPts/ifcfg-enp1s0 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="dhcp" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="enp1s0" UUID="d5f41bf4-de0a-43b3-b633-7e2ec6212e58" DEVICE="enp1s0" ONBOOT="yes"
Si la opción "BOOTPROTO
" se establece en "dhcp
" : la opción establece el protocolo que se utilizará en el arranque para establecer la dirección IP de la interfaz. Las posibles opciones a utilizar son:
- none: no se debe utilizar ningún protocolo
- bootp: usa el protocolo bootp
- dhcp: utiliza el protocolo dhcp
Como queremos establecer una dirección IPv4 estática, queremos cambiar el valor de BOOTPROTO a "none
" y configurar nuestra IP, prefijo de ruta, puerta de enlace y servidor dns de forma estática. Podemos lograr esto mediante el uso de, respectivamente, las opciones "IPADDR
", "PREFIX
", "GATEWAY
" y "DNS
" . Dado que se pueden especificar muchos servidores dns, la opción "DNS
" debe informarse junto con un número progresivo, comenzando desde 1. Después de las modificaciones necesarias, nuestro archivo debería verse así:
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="enp1s0" UUID="d5f41bf4-de0a-43b3-b633-7e2ec6212e58" DEVICE="enp1s0" ONBOOT="yes" IPADDR=192.168.122.66 PREFIX=24 GATEWAY=192.168.122.1 DNS1=192.168.122.1
Configuramos nuestra IP estática "192.168.122.66
" y configuramos tanto nuestra puerta de enlace como nuestro servidor dns "192.168.122.1
" . Ahora, para que nuestros cambios sean efectivos, debemos desactivar y volver a activar la interfaz de red. Tenga en cuenta que esto interrumpirá las conexiones ssh existentes a través de dicha interfaz:
$ sudo nmcli connection down enp1s0 && sudo nmcli connection up enp1s0
Al ejecutar el comando "ip addr
" nuevamente podemos verificar que la IP haya cambiado:
"IP addr|grep enp1s0 | grep inet inet 192.168.122.66/24 brd 192.168.122.255 scope global noprefix
"
Método 2: usar nmcli
"Nmcli
" es una herramienta de línea de comandos que se utiliza para controlar NetworkManager. Al usarlo, podemos, entre otras cosas, cambiar la configuración de red para una interfaz específica. En nuestro caso debemos usar nmcli con el subcomando "connection
" con "modify
" o la acción "edit
" . El primero nos permite cambiar la configuración directamente, mientras que el segundo lanza el shell nmcli, donde podemos operar de forma interactiva.
Usando nmcli directamente
Para cambiar la dirección IP de la interfaz "enp1s0" con un comando nmcli directo, ejecutamos:
$ sudo nmcli connection modify enp1s0 IPv4.address 192.168.122.66/24
Observe que especificamos el prefijo de enrutamiento junto con la IP utilizando la denominada notación "CIDR
" (Classes Inter-Domain Routing). Usamos una sintaxis similar para cambiar la puerta de enlace y la configuración de dns:
$ sudo nmcli connection modify enp1s0 IPv4.gateway 192.168.122.1 $ sudo nmcli connection modify enp1s0 IPv4.dns 192.168.122.1
"
Finalmente, configuramos el método "manual
" para evitar usar cualquier otro protocolo de arranque para la interfaz. Este comando establece la opción BOOTPROTO en none en el archivo de configuración de la interfaz:
$ sudo nmcli connection modify enp1s0 IPv4.method manual
Usando el shell nmcli
Como mencionamos anteriormente, también podemos usar un método interactivo para realizar los mismos cambios. Para ingresar en la "shell nmcli
" usamos la acción "edit
", seguida del nombre de la interfaz que queremos editar:
$ sudo nmcli connection edit enp1s0 ===| nmcli interactive connection editor |=== Editing existing '802-3-ethernet' connection: 'enp1s0' Type 'help' or '?' for available commands. Type 'print' to show all the connection properties. Type 'describe [.]' for detailed property descrIPtion. You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, IPv4, IPv6, tc, proxy nmcli>
"
El cursor parpadeante nos dice que el shell está aceptando comandos: podemos escribir "help
" para obtener una lista de los disponibles, "print
" para ver todas las propiedades de conexión o "describe
" seguido de una configuración y una de sus propiedades (representada con una notación de puntos), para obtener una descripción de este último. Por ejemplo:
nmcli> nmcli> describe IPv4.address === [addresses] === [NM property descrIPtion] Array of IP addresses. [nmcli specific descrIPtion] Enter a list of IPv4 addresses formatted as: IP[/prefix], IP[/prefix],... Missing prefix is regarded as prefix of 32. Example: 192.168.1.5/24, 10.0.0.11/24
"
Para cambiar la dirección de nuestra interfaz:
nmcli> set IPv4.address 192.168.122.66/24
El mismo principio se utiliza para cambiar las otras propiedades:
nmcli> set IPv4.gateway 192.168.122.1 nmcli> set IPv4.dns 192.168.122.1 nmcli> set IPv4.method manual
Para guardar las modificaciones que hicimos, necesitamos emitir un último comando:
nmcli> save Connection 'enp1s0' (d5f41bf4-de0a-43b3-b633-7e2ec6212e58) successfully updated.
"
Para salir del shell nmcli simplemente escriba "quit
" y presione enter:
nmcli> quit
Nuevamente, para que los cambios sean efectivos, debemos recargar la interfaz con el mismo comando que usamos antes.
Método 3 - usando nmtui
Además de cambiar los parámetros de una interfaz de red modificando su archivo manualmente o usando la utilidad nmcli, también podemos controlar NetworkManager usando una interfaz de usuario de texto. Para lanzarlo simplemente invocamos "nmtui
" en nuestro terminal:
$ sudo nmtui
La interfaz de usuario de texto nmtui
Seleccionamos "Edit a connection"
y luego el nombre de la interfaz que queremos manipular; luego procedemos a cambiar los valores deseados. Por ejemplo:
Editar la configuración de conexión con nmtui
Después de que estemos satisfechos, seleccionamos "OK
" y presionamos enter: regresaremos al menú de selección de interfaz. Esta vez seleccionamos "back
" , y luego elegimos "quit
" salir. Para aplicar la configuración necesitamos volver a cargar la conexión de la interfaz:
$ sudo nmcli connection down enp1s0 && sudo nmcli connection up enp1s0
Conclusiones
En este tutorial vimos tres métodos que podemos usar para establecer una dirección IP estática en Red Hat Enterprise Linux 8. Vemos qué opciones debemos cambiar y qué debemos agregar en el archivo de configuración de la interfaz al editarlo manualmente, y cómo realizar el mismos cambios usando nmcli y nmtui, que son respectivamente una utilidad de línea de comando y una interfaz de usuario de texto: ambas se usan para controlar el demonio NetworkManager.
-
CentOS
- Configurar dirección IP estática en RHEL 8 / CentOS 8 Linux
- Cómo migrar CentOS 7 a AlmaLinux 8 usando ELevate Repo
- CERN y Fermilab han anunciado que adoptarán AlmaLinux como su sistema operativo principal.
- Instalar Nvidia Driver en AlmaLinux, Rocky Linux, CentOS, RHEL y Fedora (último controlador patentado)
- Cómo actualizar / migrar de CentOS 8 a AlmaLinux 8.5
- Rocky Linux 9 llega con todo lo necesario para replicar la distro por tu cuenta
- Solucionar Failed to download metadata for repo ‘AppStream’ CentOS / AlmaLinux / RockyLinux / Fedora / RHEL
- Cómo actualizar de CentOS 8 a Centos Stream 8
- Cómo actualizar de CentOS 8 a Rocky Linux 8
- Cómo actualizar de CentOS 8 a RHEL 8
- Avanzando después de CentOS 8 EOL
- Wi-Fi 7: el futuro estándar cuatro veces más rápido que Wi-Fi 6 y que rivalizará con el ancho de banda con los cables.
- Como reiniciar la contraseña (password) en RedHat 7 / CentOS 7
- Cómo migrar de CentOS 8 a Rocky Linux 8
- Rocky Linux el sustituto de CentOS, disponible para su descarga.