Diferencia entre el comando ip vs ifconfig

Diferencia entre el comando ip vs ifconfig

Ambos comandos, tanto “ifconfig” como el comando “ip” sirven para conocer y trabajar con las interfaces del red del sistema. Debes saber que la principal diferencia entre ellos es que el comando “ip” es el sustituto del comando “ifconfig”, pero de momento el potent铆simo “ifconfig” sigue entre nosotros, y creo que hasta que no desaparezca no dejaremos de usarlo.

Cable y conexi贸n ethernet

La sintaxis del comando m谩s b谩sica de ip es:

ip address show

Si quieres conocer m谩s sobre c贸mo funciona Linux y quieres saber c贸mo instalar tu propia distribuci贸n de Debian, puedes acceder de forma gratuita a mi curso b谩sico de Linux.

C贸mo ver las interfaces de red en Linux con ip e ifconfig

Una cosa buena que tienen estos comandos nuevos es que cada vez permiten ser ejecutados escribiendo menos texto. As铆, para conocer las redes e interfaces de un equipo puedes ejecutar este comando que te he escrito, o solo con 鈥渋p address鈥 o 鈥渋p addr鈥… incluso solamente con 鈥渋p a鈥 seguir谩 funcionando igual. El comando equivalente de “ifconfig” ser铆a 茅l mismo, sin par谩metros.

jaime@aprendolinux:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> 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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:5f:7b:1b brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
       valid_lft 86366sec preferred_lft 86366sec
    inet6 fe80::a00:27ff:fe5f:7b1b/64 scope link
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:c2:25:c8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.6/24 brd 192.168.200.255 scope global dynamic enp0s8
       valid_lft 566sec preferred_lft 566sec
    inet6 fe80::a00:27ff:fec2:25c8/64 scope link
       valid_lft forever preferred_lft forever

jaime@aprendolinux:~$ /usr/sbin/ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fe5f:7b1b  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:5f:7b:1b  txqueuelen 1000  (Ethernet)
        RX packets 158  bytes 16424 (16.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 108  bytes 21330 (20.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.6  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::a00:27ff:fec2:25c8  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:c2:25:c8  txqueuelen 1000  (Ethernet)
        RX packets 4  bytes 1300 (1.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11  bytes 1416 (1.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Habilitar o deshabilitar una interfaz de red en Linux con ip e ifconfig

Para habilitar o deshabilitar una interfaz de red, se ejecutan los siguientes comandos cambiando a usuario administrador o usuario 鈥渞oot鈥:

# Esto ser铆a para deshabilitar la interfaz de red enp0s8:

root@aprendolinux:~# ip link set enp0s8 down
root@aprendolinux:~# ip address list enp0s8
3: enp0s8: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 08:00:27:c2:25:c8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.6/24 brd 192.168.200.255 scope global dynamic enp0s8
       valid_lft 395sec preferred_lft 395sec

# As铆 ser铆a para habilitar de nuevo la interfaz de red enp0s8:

root@aprendolinux:~# ip link set enp0s8 up
root@aprendolinux:~# ip address list enp0s8
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:c2:25:c8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.6/24 brd 192.168.200.255 scope global dynamic enp0s8
       valid_lft 376sec preferred_lft 376sec
    inet6 fe80::a00:27ff:fec2:25c8/64 scope link
       valid_lft forever preferred_lft forever

Ser铆an los comandos similares utilizando ifconfig a:

# Esto ser铆a para deshabilitar la interfaz de red enp0s8:

root@aprendolinux:~# ifconfig  enp0s8 down
root@aprendolinux:~# ifconfig  enp0s8
enp0s8: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.200.6  netmask 255.255.255.0  broadcast 192.168.200.255
        ether 08:00:27:c2:25:c8  txqueuelen 1000  (Ethernet)
        RX packets 4  bytes 1300 (1.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 23  bytes 2352 (2.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# As铆 ser铆a para habilitar de nuevo la interfaz de red enp0s8:

root@aprendolinux:~# ifconfig  enp0s8 up
root@aprendolinux:~# ifconfig  enp0s8
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.6  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::a00:27ff:fec2:25c8  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:c2:25:c8  txqueuelen 1000  (Ethernet)
        RX packets 4  bytes 1300 (1.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28  bytes 2778 (2.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

A帽adir una nueva IP a una interfaz de red en Linux con ip e ifconfig

Tambi茅n podemos agregar una IP extra a una interfaz de red con este comando, y podemos especificar no solo la IP, sino tambi茅n la m谩scara (tambi茅n en formato CIDR como vemos a continuaci贸n) y la IP de broadcast si lo deseas, aunque no es necesario.

# Esto ser铆a para agregar una IP a la interfaz de red enp0s8:

root@aprendolinux:~# ip addr add 10.0.0.100/24 dev enp0s8
root@aprendolinux:~# ip address list enp0s8
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:c2:25:c8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.6/24 brd 192.168.200.255 scope global dynamic enp0s8
       valid_lft 492sec preferred_lft 492sec
    inet 10.0.0.100/24 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fec2:25c8/64 scope link
       valid_lft forever preferred_lft forever

# Esto ser铆a para quitar la nueva IP a la interfaz de red enp0s8:

root@aprendolinux:~# ip addr del 10.0.0.100/24 dev enp0s8
root@aprendolinux:~# ip address list enp0s8
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:c2:25:c8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.6/24 brd 192.168.200.255 scope global dynamic enp0s8
       valid_lft 464sec preferred_lft 464sec
    inet6 fe80::a00:27ff:fec2:25c8/64 scope link
       valid_lft forever preferred_lft forever

Como en los casos anteriores, esto tambi茅n se puede hacer con ifconfig del siguiente modo:

# Esto ser铆a para agregar una IP a la interfaz de red enp0s8:

root@aprendolinux:~# ifconfig enp0s8 add 10.0.0.100
root@aprendolinux:~# ifconfig
鈥.
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.6  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::a00:27ff:fec2:25c8  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:c2:25:c8  txqueuelen 1000  (Ethernet)
        RX packets 8  bytes 2600 (2.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 39  bytes 4092 (3.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 192.168.200.255
        ether 08:00:27:c2:25:c8  txqueuelen 1000  (Ethernet)

# Esto ser铆a para quitar la nueva IP a la interfaz de red enp0s8:

root@aprendolinux:~# ifconfig enp0s8 del 10.0.0.100

Ventajas del comando “ip” sobre “ifconfig”

Hasta ahora te he mostrado alguna diferencia entre el comando “ip” y el comando “ifconfig”, y hay cosas que obviamente est谩n m谩s evolucionadas en el comando “ip”, como por ejemplo que nos da la posibilidad de ver la tabla de ARP Cache.

Y 驴qu茅 demonios es la tabla de ARP? Pues es una tabla que se almacena localmente en tu equipo y que vincula las IP que ha descubierto en su entorno, con la direcci贸n f铆sica o MAC que tiene cada tarjeta de red de forma un铆voca.

Podemos ver de forma general la tabla para todas las interfaces de red, si no se especifica ninguna al llamar al comando:

root@aprendolinux:~# ip neighbour show
10.0.2.2 dev enp0s3 lladdr 52:54:00:12:35:02 REACHABLE
192.168.200.3 dev enp0s8 lladdr 08:00:27:42:5c:0a REACHABLE
192.168.200.4 dev enp0s8 lladdr 08:00:27:44:91:a4 REACHABLE

Si se prefiere obtener la tabla de una sola interfaz:

root@aprendolinux:~# ip neighbour show dev enp0s8
192.168.200.3 lladdr 08:00:27:42:5c:0a STALE
192.168.200.4 lladdr 08:00:27:44:91:a4 STALE

Deja una respuesta

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *