GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare le interfacce di rete disponibili su Linux

Possiamo configurare le interfacce di rete in Linux durante il tempo di installazione. Ma alcuni di voi potrebbero preferire farlo dopo l'installazione o modificare le impostazioni esistenti. Come già sai, devi prima sapere quante interfacce sono disponibili sul sistema per configurare le impostazioni di rete dalla riga di comando. Questo tutorial dettagliato affronta tutti i modi possibili per elencare e trovare le interfacce di rete disponibili sui sistemi operativi Linux e Unix.

Trova le interfacce di rete disponibili in Linux

Possiamo trovare le schede di rete disponibili in due modi. In questa guida, discuteremo 10 modi per elencare le schede di interfaccia di rete in Linux.

1. Elenca le interfacce di rete usando il comando ifconfig

Il metodo più comunemente usato per trovare i dettagli dell'interfaccia di rete usando ifconfig comando. Credo che alcuni utenti Linux potrebbero ancora usarlo.

$ ifconfig -a

Risultato di esempio:

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

Come puoi vedere nell'output sopra, ho due interfacce di rete:enp5s0 (adattatore ethernet cablato integrato) e wlp9s0 (adattatore di rete wireless) sulla mia scatola Linux. Qui, lo è un'interfaccia di loopback, utilizzata per accedere a tutti i servizi di rete in locale. Ha un indirizzo IP 127.0.0.1 .

Possiamo anche usare lo stesso 'ifconfig' comando in molte varianti UNIX, ad esempio FreeBSD , per elencare le schede di rete disponibili.

2. Elenca le interfacce di rete usando il comando ip

Il 'ifconfig' comando è deprecato nelle ultime versioni di Linux. Quindi puoi usare 'ip' comando per visualizzare le interfacce di rete come mostrato di seguito.

$ ip link show

Risultato di esempio:

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

Puoi anche utilizzare i seguenti comandi.

$ ip addr
$ ip -s link

Hai notato che questi comandi mostrano anche lo stato di connessione delle interfacce di rete? Se osservi attentamente l'output sopra, noterai che la mia scheda Ethernet non è collegata con il cavo di rete (vedi la parola "DOWN" nell'output sopra). E la scheda di rete wireless è collegata (vedi la parola "UP" ). Per maggiori dettagli, consulta la nostra precedente guida per trovare lo stato connesso delle interfacce di rete su Linux .

Questi due comandi (ifconfig e ip ) sono appena sufficienti per trovare le schede di rete disponibili sui tuoi sistemi Linux.

Tuttavia, ci sono pochi altri metodi disponibili per elencare le interfacce di rete su Linux.

3. Elenca le interfacce di rete usando la directory /sys/class/net/

Il kernel Linux salva i dettagli dell'interfaccia di rete all'interno di /sys/class/net directory. Puoi verificare l'elenco delle interfacce disponibili esaminando questa directory.

$ ls /sys/class/net

Risultato di esempio:

enp5s0  lo  virbr0  wlp9s0

4. Elenca le interfacce di rete usando il file /proc/net/dev

Nei sistemi operativi Linux, /proc/net/dev contiene statistiche sulle interfacce di rete.

Per visualizzare le schede di rete disponibili, è sufficiente visualizzarne il contenuto utilizzando il comando:

$ cat /proc/net/dev

Risultato di esempio:

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. Elenca le interfacce di rete usando il comando netstat

Il netstat il comando visualizza vari dettagli come connessioni di rete, tabelle di routing, statistiche dell'interfaccia, connessioni mascherate e appartenenze multicast.

$ netstat -i

Risultato di esempio:

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

Tieni presente che netstat è obsoleto . La sostituzione per "netstat -i" è "ip -s link" . Tieni inoltre presente che questo metodo elencherà solo le interfacce attive, non tutte le interfacce disponibili.

6. Elenca le interfacce di rete usando il comando nmcli

Il nmcli è uno strumento da riga di comando per controllare NetworkManager e segnalare lo stato della rete. Viene utilizzato per creare, visualizzare, modificare, eliminare, attivare e disattivare le connessioni di rete e visualizzare lo stato della rete.

Se hai un sistema Linux con Network Manager installato, puoi elencare le interfacce di rete disponibili usando lo strumento nmcli usando i seguenti comandi:

$ nmcli device status

Risultato di esempio:

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               --            

Puoi anche usare questo comando per mostrare le interfacce di rete nel tuo sistema Linux:

$ nmcli connection show

La maggior parte delle utilità di cui sopra viene preinstallata nella maggior parte dei sistemi Linux e Unix. Ci sono anche alcune altre utilità esterne disponibili per mostrare l'elenco delle schede di rete.

7. Mostra l'elenco delle interfacce di rete utilizzando hwinfo

Hwinfo è un'utilità della riga di comando per visualizzare le informazioni sull'hardware in un sistema Linux. Esamina l'hardware presente in un sistema Linux e visualizza i dettagli estesi di ciascun dispositivo hardware.

Hwinfo è disponibile nei repository ufficiali di molte distribuzioni Linux. Per installare hwinfo su sistemi basati su RPM, eseguire:

$ sudo dnf install hwinfo

Sui sistemi basati su Deb, puoi installare hwinfo usando il seguente comando:

$ sudo apt install hwinfo

Una volta installato, eseguire il comando seguente per elencare il nome delle interfacce di rete utilizzando l'utilità hwinfo:

$ sudo hwinfo --short --network

Risultato di esempio:

network interface:                                              
  enp5s0               Ethernet network interface
  virbr0               Ethernet network interface
  wlp9s0               Ethernet network interface
  lo                   Loopback network interface

8. Mostra le interfacce di rete usando lshw

Lshw (Elenco hardware) è un'utilità CLI che fornisce informazioni dettagliate sulla configurazione hardware di un sistema Linux.

Per mostrare l'elenco delle schede di rete in Linux con l'utilità lshw, eseguire:

$ sudo lshw -class network -short

Risultato di esempio:

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. Visualizza le interfacce di rete utilizzando inxi

Inxi è ancora un altro strumento di informazioni sul sistema a riga di comando come hwinfo e lshw. Mostra hardware di sistema, CPU, driver, Xorg, Desktop, Kernel, versioni GCC, processi, utilizzo della RAM e un'ampia varietà di altre informazioni utili.

Per mostrare le informazioni sulle schede di rete, incluso il fornitore, il driver della scheda e il numero di interfacce di rete disponibili in un sistema Linux, esegui inix con -N opzione:

$ inxi -N
Network:   Device-1: Realtek RTL810xE PCI Express Fast Ethernet driver: r8169 
           Device-2: Qualcomm Atheros AR9285 Wireless Network Adapter driver: ath9k 

Lettura correlata:

  • Come controllare o trovare informazioni sulla CPU in Linux

10. Visualizza le interfacce di rete utilizzando lspci

Il lspci comando elenca tutti i dispositivi PCI in un sistema Linux.

Per visualizzare l'elenco delle interfacce di rete disponibili in un sistema Linux, utilizzare lspci con egrep comando come di seguito:

$ lspci | egrep -i 'network|ethernet|wireless|wi-fi'

Risultato di esempio:

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)

Elenca solo il nome delle interfacce di rete disponibili

Quello che abbiamo visto finora sono vari metodi per trovare le interfacce di rete disponibili in Linux. In tutti i metodi sopra menzionati, abbiamo visualizzato le interfacce di rete disponibili insieme ad alcuni dettagli aggiuntivi, come i dettagli RX/TX, l'indirizzo Mac, lo stato di connessione, la modalità, il tipo di rete e alcuni altri. Se desideri eliminare i dettagli non necessari ed elencare solo il nome delle interfacce di rete, puoi utilizzare uno dei seguenti comandi.

$ ifconfig -a | sed 's/[ \t].*//;/^$/d'

Risultato di esempio:

enp5s0:
lo:
virbr0:
wlp9s0:

Per escludere il dispositivo di loopback (lo) dall'output, esegui invece questo comando:

$ ifconfig -a | sed 's/[ \t].*//;/^\(lo\|\)$/d'

Come affermato in precedenza, ifconfig il comando è deprecato. Se ifconfig comando non è disponibile, usa ip comando per visualizzare solo il nome delle interfacce di rete con -o segnala come di seguito:

$ ip -o link show | awk -F': ' '{print $2}'
lo
enp5s0
wlp9s0
virbr0

Puoi anche usare il seguente comando:

$ ip addr show | awk '/^[1-9]/ {print $2}'

Conclusione

In questa guida, abbiamo discusso di dieci diversi metodi per trovare ed elencare le interfacce di rete disponibili su Linux e Unix. Abbiamo anche esaminato alcuni modi per visualizzare solo il nome delle interfacce di rete in Linux.

Consulta le seguenti guide per sapere come configurare l'indirizzo IP su Linux.

  • Come configurare un indirizzo IP statico in Linux e Unix
  • Come configurare l'indirizzo IP in Ubuntu 18.04 LTS
  • Come configurare l'indirizzo IP statico e dinamico in Arch Linux
  • Come assegnare più indirizzi IP a una singola scheda di rete in Linux

Linux
  1. Come usare TROVA in Linux

  2. Come configurare un indirizzo IP statico su Debian Linux

  3. Come trovare un file in Linux

  4. Trova le interfacce di rete disponibili in C/C++?

  5. Come scoprire la capacità delle interfacce di rete?

Come trovare l'indirizzo IP in Linux

Come trovare il nome host in Linux

Scopri gli adattatori di rete disponibili in Ubuntu Linux

Come aggiungere route su Linux

Come trovare l'ultimo accesso su Linux

Come trovare l'indirizzo IP in Linux