GNU/Linux >> Linux Esercitazione >  >> Linux

7 comandi di rete Linux che ogni amministratore di sistema dovrebbe conoscere

Questo articolo è il primo di una serie incentrata sui consigli di comando "follati dalla folla". Ho chiesto a un gruppo dei nostri principali contributori quali fossero i loro comandi Linux preferiti e il feedback è stato travolgente. Abbiamo ricevuto 46 singoli comandi e molti di essi sono stati sottolineati da più invii.

Questa serie rappresenta l'elenco completo, suddiviso per categoria. Ho soprannominato questi primi sette comandi "Comandi di rete che tutti dovrebbero conoscere".

Nota della redazione :Evans Amoany ha fornito le informazioni sul comando e gli esempi. Uno dei nostri sudoer e un talentuoso *nix admin. Complimenti a Evans per aver fatto il lavoro pesante qui.

[ Potrebbe interessarti anche: Rete Linux:13 usi per netstat ]

ip

Il ip command è uno dei comandi di base di cui ogni amministratore avrà bisogno nel lavoro quotidiano, dalla configurazione di nuovi sistemi all'assegnazione di IP alla risoluzione dei problemi dei sistemi esistenti. Il ip il comando può mostrare informazioni sull'indirizzo, manipolare il routing e visualizzare in rete vari dispositivi, interfacce e tunnel.

La sintassi è la seguente:

ip

L'OGGETTO è la parte più importante della sinossi, e sono supportati i seguenti (alcuni omessi per brevità):

indirizzo - indirizzo di protocollo (IPv4 o IPv6) su un dispositivo.

  • tunnel - tunnel su IP
  • percorso - voce della tabella di instradamento
  • regola - regola nel database delle politiche di instradamento
  • vrf:gestisci i dispositivi di inoltro e routing virtuale
  • xfrm:gestisci i criteri IPSec

Ecco alcuni casi d'uso comuni per ip comando.

Per mostrare gli indirizzi IP assegnati a un'interfaccia sul tuo server:

[root@server ~]# ip address show 

Per assegnare un IP a un'interfaccia, ad esempio enps03 :

[root@server ~]# ip address add 192.168.1.254/24 dev enps03

Per eliminare un IP su un'interfaccia:

[root@server ~]# ip address del 192.168.1.254/24 dev enps03

Modifica lo stato dell'interfaccia portando l'interfaccia eth0 in linea:

[root@server ~]# ip link set eth0 up

Modifica lo stato dell'interfaccia portando l'interfaccia eth0 offline:

[root@server ~]# ip link set eth0 down

Modifica lo stato dell'interfaccia modificando l'MTU di eth0 :

[root@server ~]# ip link set eth0 mtu 9000

Modifica lo stato dell'interfaccia abilitando la modalità promiscua per eth0 :

[root@server ~]# ip link set eth0 promisc on

Aggiungi un percorso predefinito (per tutti gli indirizzi) tramite il gateway locale 192.168.1.254 raggiungibile sul dispositivo eth0 :

[root@server ~]# ip route add default via 192.168.1.254 dev eth0

Aggiungi un percorso a 192.168.1.0/24 tramite il gateway a 192.168.1.254:

[root@server ~]# ip route add 192.168.1.0/24 via 192.168.1.254

Aggiungi un percorso a 192.168.1.0/24 che può essere raggiunto sul dispositivo eth0 :

[root@server ~]# ip route add 192.168.1.0/24 dev eth0

Elimina il percorso per 192.168.1.0/24 tramite il gateway a 192.168.1.254:

[root@server ~]# ip route delete 192.168.1.0/24 via 192.168.1.254

Visualizza il percorso seguito per IP 10.10.1.4:

[root@server ~]# ip route get 10.10.1.4

ifconfig

Il ifconfig il comando era/è un punto fermo nella cintura degli strumenti di molti amministratori di sistema per la configurazione e la risoluzione dei problemi delle reti. Da allora è stato sostituito da ip comando discusso sopra. Tuttavia, se desideri maggiori informazioni al riguardo, dai un'occhiata al nostro articolo pubblicato in precedenza qui.

mt

MTR (Matt's traceroute) è un programma con un'interfaccia a riga di comando che funge da strumento di diagnostica e risoluzione dei problemi di rete. Questo comando combina le funzionalità del ping e traceroute comandi. Proprio come un traceroute , il mtr comando mostrerà il percorso da un computer a un host specificato. mtr fornisce molte statistiche su ogni hop, come tempo di risposta e percentuale. Con il mtr comando, otterrai maggiori informazioni sul percorso e potrai vedere i dispositivi problematici lungo il percorso. Se vedi un improvviso aumento del tempo di risposta o una perdita di pacchetti, allora ovviamente c'è un collegamento errato da qualche parte.

La sintassi del comando è la seguente:

mtr nome host/IP

Diamo un'occhiata ad alcuni casi d'uso comuni.

Il mtr di base comando mostra le statistiche, incluso ogni hop (nomi host) con tempo e perdita%:

[root@server ~]# mtr google.com

Mostra gli indirizzi IP numerici (se utilizzi -g , otterrai indirizzi IP (numeri) anziché nomi host):

[root@server ~]# mtr -g google.com

Mostra anche gli indirizzi IP numerici e i nomi host:

[root@server ~]# mtr -b google.com

Imposta il numero di ping che vuoi inviare:

[root@server ~]# mtr -c 10 google.com

Ottieni un rapporto del mtr risultato del comando:

[root@server ~]# mtr -r -c 10 google.com > mtr-command-google-output

oppure:

[root@server ~]# mtr -rw -c 10 google.com > mtr-command-google-output

Forza l'uso del TCP invece dell'ICMP:

[root@server ~]# mtr –tcp google.com

Forza l'uso dell'UDP invece dell'ICMP:

[root@server ~]# mtr –udp google.com

Imposta la quantità massima di luppoli:

[root@server ~]# mtr -m 35 216.58.223.78

Definisci la dimensione del pacchetto:

[root@server ~]# mtr -r -s 50 google.com

Stampa su output CSV:

[root@server ~]# mtr –csv google.com

Stampa su output XML:

[root@server ~]# mtr –xml google.com

tcpdump

Il tcpdump il comando è progettato per acquisire e visualizzare i pacchetti.

Puoi installare tcpdump con il comando seguente:

[root@server ~]# dnf install -y tcpdump

Prima di iniziare qualsiasi acquisizione, devi sapere quali interfacce tcpdump poter usare. In questo caso dovrai usare sudo o disporre dell'accesso come root.

[root@server ~]# tcpdump -D

  1 eth0
  2 nflog
  3 nfqueue
  4 usbmon1
  5 any
  6 lo (Loopback)

Se desideri acquisire traffico su eth0 , puoi avviarlo con tcpdump -i eth0 output di esempio:

[root@server ~]# tcpdump -i eth0
[root@server ~]# tcpdump -i eth0 -c 10

Cattura il traffico da e verso un host

Puoi filtrare il traffico proveniente da un host specifico. Ad esempio, per trovare il traffico proveniente da e verso 8.8.8.8, utilizzare il comando:

[root@server ~]# tcpdump -i eth0 -c 10 host 8.8.8.8

Per il traffico proveniente dalla versione 8.8.8.8, utilizzare:

[root@server ~]# tcpdump -i eth0 src host 8.8.8.8

Per il traffico in uscita che va a 8.8.8.8, usa:

[root@server ~]# tcpdump -i eth0 dst host 8.8.8.8

Cattura il traffico da e verso una rete

Puoi anche acquisire traffico da e verso una rete specifica utilizzando il comando seguente:

[root@server ~]# tcpdump -i eth0 net 10.1.0.0 mask 255.255.255.0

oppure:

[root@server ~]# tcpdump -i eth0 net 10.1.0.0/24

Puoi anche filtrare in base alla fonte o alla destinazione.

In base alla fonte (traffico proveniente da):

[root@server ~]# tcpdump -i eth0 src net 10.1.0.0/24

In base alla destinazione (traffico verso):

[root@server ~]# tcpdump -i eth0 dst net 10.1.0.0/24

Cattura il traffico da e verso i numeri di porta

Acquisisci solo il traffico della porta DNS 53:

[root@server ~]# tcpdump -i eth0 port 53

Per un host specifico,

[root@server ~]# tcpdump -i eth0 host 8.8.8.8 and port 53

Per acquisire solo il traffico HTTPS,

[root@server ~]# tcpdump -i eth0 -c 10 host www.google.com and port 443

Per acquisire tutte le porte tranne le porte 80 e 25,

[root@server ~]# tcpdump -i eth0 port not 53 and not 25

netstat

Il netstat strumento per la stampa di connessioni di rete, tabelle di routing, statistiche di interfaccia, connessioni mascherate e appartenenze multicast. Questa utilità fa parte del pacchetto net-tool, così come ifconfig . Nel nuovo pacchetto iproute2, ss strumento viene utilizzato per raggiungere gli stessi obiettivi.

Se netstat non si trova sul tuo sistema, installalo con questo comando:

[root@server ~]# dnf install net-tools

L'utilizzo principale di netstat è senza alcun parametro:

[root@server ~]# netstat

Per un utilizzo avanzato, espandi netstat comando con opzioni:

netstat <options>

Oppure elenca le opzioni una per una:

netstat <option 1> <option 2> <option 3>

Per elencare tutte le porte e le connessioni indipendentemente dal loro stato o protocollo, utilizza:

[root@server ~]# netstat -a

Elenca tutte le porte TCP eseguendo:

[root@server ~]# netstat -at

Elenca tutte le porte UDP con:

[root@server ~]# netstat -au

Per restituire un elenco di sole porte in ascolto per tutti i protocolli, utilizza:

[root@server ~]# netstat -l

Elenca tutte le porte TCP in ascolto con:

[root@server ~]# netstat -lt

Restituisci solo porte UDP in ascolto eseguendo:

[root@server ~]# netstat -lu

Per elencare le porte di ascolto UNIX, utilizzare:

[root@server ~]# netstat -lx

Visualizza le statistiche per tutte le porte indipendentemente dal protocollo con:

[root@server ~]# netstat -s

Elenca le statistiche per le porte TCP solo con:

[root@server ~]# netstat -st

Per visualizzare le connessioni TCP con il nome PID/Programma elencato, utilizzare:

[root@server ~]# netstat -tp

Per trovare un processo che utilizza un numero di porta particolare, eseguire:

[root@server ~]# netstat -an | grep ‘:<port number>’

nslookup

Usa nslookup utility per interrogare i server dei nomi Internet in modo interattivo. Usalo per eseguire query DNS e ricevere nomi di dominio o indirizzi IP o qualsiasi altro record DNS specifico.

Considera i seguenti esempi comuni.

Per trovare il record A di un dominio:

[root@server ~]# nslookup example.com

Per controllare i record NS di un dominio:

[root@server ~]# nslookup -type=ns example.com

Per trovare i record MX responsabili dello scambio di email:

[root@server ~]# nslookup -query=mx example.com

Per trovare tutti i record DNS disponibili di un dominio:

[root@server ~]# nslookup -type=any example.com

Per verificare l'utilizzo di un server DNS specifico (in questo caso, eseguire una query utilizzando il server dei nomi specifico ns1.nsexample.com):

[root@server ~]# nslookup example.com ns1.nsexample.com

Il controllo dei record DNS A per vedere gli IP di un dominio è una pratica comune, ma a volte è necessario verificare se un indirizzo IP è correlato a un dominio specifico. A tale scopo, è necessaria una ricerca DNS inversa.

[root@server ~]# nslookup 10.20.30.40

ping

Ping è uno strumento che verifica la connettività a livello IP a un altro computer TCP/IP inviando messaggi ICMP (Internet Control Message Protocol) Echo Request. Viene visualizzata la ricezione dei messaggi Echo Reply corrispondenti, insieme ai tempi di andata e ritorno. Ping è il comando TCP/IP principale utilizzato per risolvere i problemi di connettività, raggiungibilità e risoluzione dei nomi.

Semplice ping i comandi richiedono un solo parametro:il nome host o l'indirizzo IP dell'host che si desidera verificare. Un semplice ping l'esempio è proprio come di seguito:

[root@server ~]# ping google.com
PING google.com (216.58.206.174) 56(84) bytes of data.
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=1 ttl=56 time=10.7 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=2 ttl=56 time=10.2 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=3 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=4 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=5 ttl=56 time=17.3 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 10.219/11.844/17.381/2.773 ms

Devi interrompere il ping comando premendo CTRL+C . In caso contrario, eseguirà il ping finché non lo fermi. Dopo ogni ping comando, visualizzerà un report riepilogativo con le seguenti informazioni:

  • Min:tempo minimo necessario per ottenere una risposta dall'host a cui è stato eseguito il ping dalla tua estremità.
  • Media:tempo medio necessario per ottenere una risposta dall'host a cui è stato eseguito il ping dalla tua estremità.
  • Max:tempo massimo necessario per ottenere una risposta dall'host a cui è stato eseguito il ping dalla tua estremità.

Inoltre, vedrai TTL, che sta per Time To Live. Ping utilizza un valore numerico TTL per tentare di raggiungere un determinato computer host tramite il percorso del percorso. Questo è anche noto come limite di hop.

Normalmente, quando esegui un semplice ping comando senza passare alcun parametro aggiuntivo, Linux eseguirà il ping quell'ospite per un tempo infinito. Se vuoi eseguire il ping un host dieci volte, usa il seguente comando:

[root@server ~]# ping -c 10 google.com

Usa l'opzione -q per visualizzare solo il ping riepilogo delle statistiche:

[root@server ~]# ping -c 10 google.com

Sui sistemi con più interfacce, puoi specificare l'interfaccia per il ping comando da usare. Se il sistema ha entrambi eth0 e eth1 e voglio ping utilizzando eth0 :

[root@server ~]# ping -I eth0 google.com

Oppure usa l'indirizzo sull'interfaccia, supponendo che l'interfaccia sia 10.233.201.45 come IP:

[root@server ~]# ping -I 10.233.201.45 google.com

Puoi anche ping e specifica la versione IP come v4 o v6:

[root@server ~]# ping -4 google.com
[root@server ~]# ping -6 google.com

Durante il ping di un host, troverai un output diverso dal ping risultati, inclusi i tre esempi seguenti.

Host di destinazione irraggiungibile

Il possibile motivo migliore è che non esiste un percorso dal sistema host locale e all'host di destinazione desiderato di destinazione, oppure un router remoto segnala di non avere alcun percorso verso l'host di destinazione.

Richiesta scaduta

Questo risultato significa che nessun messaggio Echo Reply è stato ricevuto entro il tempo predefinito di un secondo o il tempo impostato durante il ping dell'host. Ciò può essere dovuto a molte cause diverse; i più comuni includono la congestione della rete, il fallimento della richiesta ARP, il filtraggio dei pacchetti/firewall, ecc.

Host sconosciuto/Richiesta ping non è riuscito a trovare host

Forse hai sbagliato a scrivere il nome host o l'host non esiste affatto nella rete.

Devi avere lo 0% di perdita di pacchetti per ogni ping risultato con una buona latenza o tempi di risposta inferiori. A seconda del mezzo di trasmissione (UTP, cavo in fibra ottica, Wi-Fi) che stai utilizzando, la tua latenza sarà diversa.

[ Cheat sheet gratuito:ottieni un elenco di utilità e comandi Linux per la gestione di server e reti. ] 

Guardando avanti

Dovresti aggiungere questi comandi ed esempi nelle tue routine mentre configuri e risolvi i problemi delle tue reti. Se hai trovato utile questo tipo di articolo, assicurati di contattarci e farci sapere. Inoltre, tieni d'occhio la seconda parte del nostro elenco di comandi della community. Il prossimo è 16 comandi Linux generali di cui non puoi fare a meno.


Linux
  1. 10 comandi che ogni utente Linux dovrebbe conoscere

  2. 3 abilità che ogni amministratore di sistema Linux dovrebbe portare in tavola

  3. 6 Opzioni di comando OpenSSL che ogni amministratore di sistema dovrebbe conoscere

  4. Elenco di comandi Linux che ogni sviluppatore dovrebbe conoscere

  5. 10 comandi mortali che non dovresti mai eseguire su Linux

5 comandi Linux che ogni utente Linux dovrebbe conoscere

21 comandi essenziali che ogni utente Docker dovrebbe conoscere

5 semplici trucchi per la cronologia di Bash che ogni utente Linux dovrebbe conoscere

Comandi Linux che tutti gli utenti dovrebbero conoscere {Ultimate List}

Fatti interessanti su Linux che dovresti conoscere

I 20 migliori siti Web di giochi Linux che ogni giocatore deve conoscere