
hemos aprendido como Establecer una dirección IP estática Para sistemas Linux y cómo Configurar varias direcciones IP en sistemas Linux.En esta guía, aprenderemos cómo Asigne direcciones IP a sistemas Linux remotos mediante nmcli Orden.
Hay muchas razones por las que es posible que necesite cambiar la dirección IP de un sistema Linux remoto. Algunas razones comunes incluyen:
- Siga las políticas de Internet: Muchas organizaciones tienen políticas que requieren que todos los dispositivos de su red tengan un rango de direcciones IP específico. Si el sistema Linux remoto no cumple con estas políticas, es posible que deba cambiar su dirección IP.
- Resolver problemas de red: Si un sistema Linux remoto tiene problemas de red, cambiar su dirección IP a veces puede ayudar a resolver el problema.
- Migrar el sistema a una nueva red: Si está migrando un sistema Linux remoto a una nueva red, deberá cambiar su dirección IP para que coincida con el rango de direcciones de la nueva red.
- Mejorar la seguridad: Cambiar la dirección IP de un sistema Linux remoto puede hacer que a los atacantes les resulte más difícil encontrarlo y atacarlo.
Por cualquier motivo, si necesita cambiar la dirección IP de un sistema Linux remoto, puede hacerlo fácilmente usando el siguiente comando: nmcli
Orden.
Utilice el comando nmcli para asignar una dirección IP a un sistema Linux remoto
Quizás ya lo sepas, Podemos usar SSH para ejecutar comandos en sistemas Linux remotospermitiéndonos gestionar sistemas Linux remotos de forma más fácil, eficiente y flexible.
Antes de asignar la dirección IP del sistema Linux remoto usando el siguiente comando nmcli
, primero necesitamos encontrar la interfaz de red del sistema. Para hacer esto, ejecute:
$ ssh [email protected] 'nmcli con show'
Reemplace el nombre de usuario y la dirección IP por los suyos.
Salida de ejemplo:
NAME UUID TYPE DEVICE Wired connection 1 60e8eaf3-89f9-3e9f-9919-1944e7abee20 ethernet ens18
Como puede ver en el resultado anterior, el nombre de la conexión de red es «Wired connection 1
‘.
Ahora, cambiemos la dirección IP usando el comando:
$ ssh -t [email protected] "sudo nmcli con modify 'Wired connection 1' ipv4.address 192.168.1.50/24"
esta aquí, -t
La bandera con ssh lo obliga a asignar una pseudo terminal, lo que permite a sudo solicitar una contraseña. Cuando ejecuta este comando, ssh debería solicitarle la contraseña del usuario remoto (si es necesario) y luego sudo le solicitará la contraseña en la computadora remota. En otras palabras, se le solicitará dos veces la contraseña del usuario remoto.
Aquí hay un desglose completo del comando anterior.
ssh
: Este es el comando Secure Shell que se utiliza para establecer una conexión segura con la computadora remota.-t
: esta opción fuerza la asignación de pseudoterminales.Se utiliza aquí para garantizar que el terminal esté asignado en el extremo remoto, lo que permitesudo
Solicita una contraseña si es necesario.[email protected]
: Esto especifica el usuario remoto y el host al que desea conectarse.reemplazarostechnix
Utilice el nombre de usuario real y192.168.1.40
con la dirección IP de su sistema remoto."sudo nmcli con modify 'Wired connection 1' ipv4.address 192.168.1.50/24"
: Este es el comando ejecutado en la computadora remota después de establecer una conexión SSH.sudo
: Ejecute el siguiente comando como superusuario (u otro usuario), suponiendouser
Tener los permisos necesarios.nmcli
: Interfaz de línea de comandos de NetworkManager, una herramienta utilizada para controlar NetworkManager, un demonio que administra la configuración de red en muchas distribuciones de Linux.con modify
: Esta opción se utiliza para modificar la configuración de una conexión de red específica.'Wired connection 1'
: El nombre de la conexión de red que se va a modificar. Está entre comillas simples para manejar espacios en el nombre de la conexión.ipv4.address 192.168.1.50/24
: establezca la dirección IPv4 de la interfaz de red en192.168.1.50
La máscara de subred es255.255.255.0
(Depender de/24
en notación CIDR).
Eso es todo. Se ha asignado una nueva dirección IP. Verifiquémoslo usando el comando:
$ ssh [email protected] "ip addr show ens18"
Reemplace el nombre de usuario, la dirección IP y el nombre de la tarjeta de red (ens18) por los suyos propios. Verás la nueva IP asignada.
Salida de ejemplo:
2: ens18:mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 6e:26:0b:8e:33:8c brd ff:ff:ff:ff:ff:ff altname enp0s18 inet 192.168.1.40/24 brd 192.168.1.255 scope global noprefixroute ens18 valid_lft forever preferred_lft forever inet 192.168.1.50/24 brd 192.168.1.255 scope global secondary noprefixroute ens18 valid_lft forever preferred_lft forever inet6 fe80::bfcf:b9d3:60de:af1b/64 scope link noprefixroute valid_lft forever preferred_lft forever
De esta manera, puede usar SSH para agregar múltiples direcciones IP a Linux remoto a través de SSH. nmcli
Orden.
Como ya dije, este método agregará una IP adicional. La antigua dirección IP existente permanecerá sin cambios.
También puedes usar -S
Opción para pasar la contraseña sudo. Permite a Sudo leer contraseñas desde la entrada estándar.Puede repetir la contraseña y canalizarla a ssh, pero tenga en cuenta Este método no es seguro. Porque la contraseña puede ser visible en el manifiesto del proceso o en el historial del shell.
$ echo 'yourpassword' | ssh -t user@ip "sudo -S nmcli con modify YourConnectionName ipv4.address YourIPAddress"
Le advierto nuevamente que este método no es seguro ya que su contraseña puede quedar expuesta a otros usuarios localmente en su computadora o transmitirse a través de la red.
Script Bash para asignar una dirección IP a un sistema Linux remoto a través de SSH usando nmcli
Creamos un script Bash simple llamado nmcli_remote_ip_changer Utilice el comando nmcli para asignar una nueva dirección IP al sistema Linux remoto a través de SSH.
El script es muy simple y básicamente hace lo siguiente:
- Le solicita que ingrese el nombre de usuario remoto y la IP,
- Establecer una conexión SSH,
- Obtener y mostrar la conexión de red en la computadora remota,
- Se le solicitará que seleccione la conexión para modificar y solicitar una nueva configuración de IP.
- usar
sudo
Aplique los cambios en la sesión remota y reinicie NetworkManager.
Está alojado en Repositorio Ostechnix GitHub. Puede descargarlo y modificarlo según sus necesidades.
Si desea utilizar este script para agregar una nueva dirección IP a un sistema Linux remoto, siga los pasos a continuación:
1. Script de clonación de Git:
$ git clone nmcli_remote_ip_changer
Esto copiará el script en un directorio llamado nmcli_remote_ip_changer
en el directorio actual.
2. cd en el directorio y haga que el script sea ejecutable usando el comando:
$ cd nmcli_remote_ip_changer/
$ chmod +x nmcli_remote_ip_changer.sh
3. Ejecute el script usando el comando:
$ ./nmcli_remote_ip_changer.sh
Se le pedirá que ingrese el nombre de usuario del sistema remoto, la dirección IP actual, la nueva dirección IP, la puerta de enlace, el DNS, etc. Después de proporcionar todos los detalles requeridos, ingrese la contraseña sudo para el sistema Linux remoto.
Enter the remote username: ostechnix Enter the remote host IP address: 192.168.1.40 Fetching list of network connections from the remote system... [email protected]'s password: NAME UUID TYPE DEVICE Wired connection 1 60e8eaf3-89f9-3e9f-9919-1944e7abee20 ethernet ens18 Enter the NAME of the connection you want to modify: Wired connection 1 Enter the new IP address (in CIDR format, e.g., 192.168.1.10/24): 192.168.1.50/24 Enter the new Gateway (leave empty if unchanged): 192.168.1.101 Enter the new DNS (leave empty if unchanged, space separated for multiple): 8.8.8.8,8.8.4.4 [email protected]'s password: Applying the new IP address... [sudo] password for ostechnix: IP address applied successfully. Restarting NetworkManager to apply changes... NetworkManager restarted successfully. Please verify the connectivity to the remote system. Connection to 192.168.1.40 closed.

Puede conectarse al sistema remoto a través de SSH para verificar la nueva dirección IP o ejecutar el siguiente comando desde su sistema local para verificar la IP del sistema remoto a través de SSH:
$ ssh [email protected] 'ip addr show ens18'
cuidadoso: Si no desea ingresar la contraseña del usuario remoto, puede Configurar la autenticación basada en claves SSH.
en conclusión
Como puede ver, cambiar la dirección IP de un sistema Linux remoto es un proceso sencillo.este nmcli
El comando simplifica significativamente esta tarea.
Si te gusta actuar nmcli
Puede lograr esto fácilmente con comandos directos o incorporándolos a scripts.