Podemos configurar interfaces de red en Linux durante el tiempo de instalación. Pero, algunos de ustedes pueden preferir hacerlo después de la instalación o cambiar la configuración existente. Como ya sabe, primero debe saber cuántas interfaces están disponibles en el sistema para configurar los ajustes de red desde la línea de comandos. Este tutorial detallado aborda todas las formas posibles de enumerar y encontrar las interfaces de red disponibles en los sistemas operativos Linux y Unix.
Encuentre interfaces de red disponibles en Linux
Podemos encontrar las tarjetas de red disponibles de dos maneras. En esta guía, analizaremos 10 formas de enumerar las tarjetas de interfaz de red en Linux.
1. Enumere las interfaces de red usando el comando ifconfig
El método más utilizado para encontrar los detalles de la interfaz de red usando ifconfig
dominio. Creo que algunos de los usuarios de Linux aún podrían usar esto.
$ ifconfig -a
Salida de muestra:
enp5s0: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether 24:b6:fd:37:8b:29 txqueuelen 1000 (Ethernet) 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 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 171420 bytes 303980988 (289.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 171420 bytes 303980988 (289.8 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlp9s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.225.37 netmask 255.255.255.0 broadcast 192.168.225.255 inet6 2409:4072:6183:c604:c218:85ff:fe50:474f prefixlen 64 scopeid 0x0<global> inet6 fe80::c218:85ff:fe50:474f prefixlen 64 scopeid 0x20<link> ether c0:18:85:50:47:4f txqueuelen 1000 (Ethernet) RX packets 564574 bytes 628671925 (599.5 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 299706 bytes 60535732 (57.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Como puede ver en el resultado anterior, tengo dos interfaces de red, a saber, enp5s0
(adaptador de ethernet con cable incorporado) y wlp9s0
(adaptador de red inalámbrica) en mi caja de Linux. Aquí, lo
es la interfaz de bucle invertido, que se utiliza para acceder a todos los servicios de red localmente. Tiene una dirección IP 127.0.0.1
.
También podemos usar el mismo 'ifconfig'
comando en muchas variantes de UNIX, por ejemplo FreeBSD , para enumerar las tarjetas de red disponibles.
2. Enumere las interfaces de red usando el comando ip
El 'ifconfig'
El comando está obsoleto en las últimas versiones de Linux. Entonces puedes usar 'ip'
Comando para mostrar las interfaces de red como se muestra a continuación.
$ ip link show
Salida de muestra:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp5s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 24:b6:fd:37:8b:29 brd ff:ff:ff:ff:ff:ff 3: wlp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000 link/ether c0:18:85:50:47:4f brd ff:ff:ff:ff:ff:ff
También puede usar los siguientes comandos.
$ ip addr
$ ip -s link
¿Notó que este comando también muestra el estado conectado de las interfaces de red? Si observa detenidamente el resultado anterior, notará que mi tarjeta Ethernet no está conectada con el cable de red (vea la palabra "ABAJO" en la salida anterior). Y la tarjeta de red inalámbrica está conectada (vea la palabra "ARRIBA" ). Para obtener más detalles, consulte nuestra guía anterior para encontrar el estado conectado de las interfaces de red en Linux .
Estos dos comandos (ifconfig
y ip
) son suficientes para encontrar las tarjetas de red disponibles en sus sistemas Linux.
Sin embargo, hay algunos otros métodos disponibles para enumerar las interfaces de red en Linux.
3. Enumere las interfaces de red usando el directorio /sys/class/net/
El Kernel de Linux guarda los detalles de la interfaz de red dentro de /sys/class/net
directorio. Puede verificar la lista de interfaces disponibles consultando este directorio.
$ ls /sys/class/net
Salida de muestra:
enp5s0 lo virbr0 wlp9s0
4. Enumere las interfaces de red usando el archivo /proc/net/dev
En los sistemas operativos Linux, /proc/net/dev
El archivo contiene estadísticas sobre las interfaces de red.
Para ver las tarjetas de red disponibles, simplemente vea su contenido usando el comando:
$ cat /proc/net/dev
Salida de muestra:
Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 2836 30 0 0 0 0 0 0 2836 30 0 0 0 0 0 0 enp5s0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wlp9s0: 557664882 402062 0 0 0 0 0 0 20087136 165358 0 0 0 0 0 0 virbr0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5. Enumere las interfaces de red usando el comando netstat
El netstat
El comando muestra varios detalles, como conexiones de red, tablas de enrutamiento, estadísticas de interfaz, conexiones enmascaradas y membresías de multidifusión.
$ netstat -i
Salida de muestra:
Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg enp5s0 1500 0 0 0 0 0 0 0 0 BMU lo 65536 30 0 0 0 30 0 0 0 LRU virbr0 1500 0 0 0 0 0 0 0 0 BMU wlp9s0 1500 402063 0 0 0 165361 0 0 0 BMRU
Tenga en cuenta que netstat está obsoleto . El reemplazo de "netstat -i"
es "ip -s link"
. También tenga en cuenta que este método enumerará solo las interfaces activas, no todas las interfaces disponibles.
6. Enumere las interfaces de red usando el comando nmcli
El nmcli es una herramienta de línea de comandos para controlar NetworkManager e informar sobre el estado de la red. Se utiliza para crear, mostrar, editar, eliminar, activar y desactivar conexiones de red y mostrar el estado de la red.
Si tiene un sistema Linux con Network Manager instalado, puede enumerar las interfaces de red disponibles usando la herramienta nmcli usando los siguientes comandos:
$ nmcli device status
Salida de muestra:
DEVICE TYPE STATE CONNECTION wlp9s0 wifi connected JioFi4_12E9FE virbr0 bridge connected (externally) virbr0 p2p-dev-wlp9s0 wifi-p2p disconnected -- enp5s0 ethernet unavailable -- lo loopback unmanaged --
También puede usar este comando para mostrar las interfaces de red en su sistema Linux:
$ nmcli connection show
La mayoría de las utilidades mencionadas vienen preinstaladas en la mayoría de los sistemas Linux y Unix. También hay algunas utilidades externas más disponibles para mostrar la lista de tarjetas de red.
7. Mostrar lista de interfaces de red usando hwinfo
Hwinfo es una utilidad de línea de comandos para ver la información de hardware en un sistema Linux. Sondea el hardware presente en un sistema Linux y muestra los detalles extensos de cada dispositivo de hardware.
Hwinfo está disponible en los repositorios oficiales de muchas distribuciones de Linux. Para instalar hwinfo en sistemas basados en RPM, ejecute:
$ sudo dnf install hwinfo
En sistemas basados en Deb, puede instalar hwinfo usando el siguiente comando:
$ sudo apt install hwinfo
Una vez instalado, ejecute el siguiente comando para listar el nombre de las interfaces de red usando la utilidad hwinfo:
$ sudo hwinfo --short --network
Salida de muestra:
network interface: enp5s0 Ethernet network interface virbr0 Ethernet network interface wlp9s0 Ethernet network interface lo Loopback network interface
8. Mostrar interfaces de red usando lshw
Lshw (Lista de hardware) es una utilidad CLI que proporciona información detallada de la configuración de hardware de un sistema Linux.
Para mostrar la lista de tarjetas de red en Linux con la utilidad lshw, ejecute:
$ sudo lshw -class network -short
Salida de muestra:
H/W path Device Class Description =============================================================== /0/100/1c.1/0 enp5s0 network RTL810xE PCI Express Fast Ethernet controller /0/100/1c.3/0 wlp9s0 network AR9285 Wireless Network Adapter (PCI-Express)
9. Ver interfaces de red usando inxi
Inxi es otra herramienta de información del sistema de línea de comandos como hwinfo y lshw. Muestra el hardware del sistema, la CPU, los controladores, Xorg, el escritorio, el kernel, la(s) versión(es) de GCC, los procesos, el uso de RAM y una amplia variedad de otra información útil.
Para mostrar información sobre las tarjetas de red, incluido el proveedor, el controlador de la tarjeta y la cantidad de interfaces de red disponibles en un sistema Linux, ejecute inix con -N
opción:
$ inxi -N Network: Device-1: Realtek RTL810xE PCI Express Fast Ethernet driver: r8169 Device-2: Qualcomm Atheros AR9285 Wireless Network Adapter driver: ath9k
Lectura relacionada:
- Cómo verificar o encontrar información de la CPU en Linux
10. Mostrar interfaces de red mediante lspci
El lspci
El comando enumera todos los dispositivos PCI en un sistema Linux.
Para ver la lista de interfaces de red disponibles en un sistema Linux, use lspci con egrep comando como a continuación:
$ lspci | egrep -i 'network|ethernet|wireless|wi-fi'
Salida de muestra:
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller (rev 05) 09:00.0 Network controller: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
Enumerar solo el nombre de las interfaces de red disponibles
Lo que hemos visto hasta ahora son varios métodos para encontrar las interfaces de red disponibles en Linux. En todos los métodos mencionados anteriormente, mostramos las interfaces de red disponibles junto con algunos detalles adicionales, como detalles de RX/TX, dirección Mac, estado conectado, modo, tipo de red y algunos más. Si desea eliminar detalles innecesarios y enumerar solo el nombre de las interfaces de red, puede usar uno de los siguientes comandos.
$ ifconfig -a | sed 's/[ \t].*//;/^$/d'
Salida de muestra:
enp5s0: lo: virbr0: wlp9s0:
Para excluir el dispositivo de bucle invertido (lo) de la salida, ejecute este comando en su lugar:
$ ifconfig -a | sed 's/[ \t].*//;/^\(lo\|\)$/d'
Como se indicó anteriormente, ifconfig
el comando está en desuso. Si ifconfig
el comando no está disponible, use ip
comando para mostrar solo el nombre de las interfaces de red con -o
marca como a continuación:
$ ip -o link show | awk -F': ' '{print $2}' lo enp5s0 wlp9s0 virbr0
También puede usar el siguiente comando:
$ ip addr show | awk '/^[1-9]/ {print $2}'
Conclusión
En esta guía, discutimos diez métodos diferentes para encontrar y enumerar las interfaces de red disponibles en Linux y Unix. También hemos visto algunas formas de mostrar solo el nombre de las interfaces de red en Linux.
Consulte las siguientes guías para saber cómo configurar la dirección IP en Linux.
- Cómo configurar una dirección IP estática en Linux y Unix
- Cómo configurar la dirección IP en Ubuntu 18.04 LTS
- Cómo configurar una dirección IP estática y dinámica en Arch Linux
- Cómo asignar múltiples direcciones IP a una sola tarjeta de red en Linux