Indipendentemente dal tipo di utente Linux che sei (principiante o professionista), ci sono alcuni strumenti di cui devi essere a conoscenza. Una di queste utilità è Ping . In questo tutorial, discuteremo le basi di questo strumento utilizzando alcuni esempi di facile comprensione. Ma prima di farlo, vale la pena ricordare che tutti gli esempi nell'articolo qui sono stati testati su una macchina Ubuntu 16.04 LTS.
Comando ping Linux
Nella maggior parte dei termini, il comando ping ti consente di verificare se un host remoto è attivo e risponde. Di seguito è riportata la sintassi dello strumento:
ping [OPTIONS] destination
Ed ecco come lo spiega la pagina man:
ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to elicit
an ICMP ECHO_RESPONSE from a host or gateway. ECHO_REQUEST datagrams
(``pings'') have an IP and ICMP header, followed by a struct timeval
and then an arbitrary number of ``pad'' bytes used to fill out the
packet.
ping6 is IPv6 version of ping, and can also send Node Information
Queries (RFC4620). Intermediate hops may not be allowed, because IPv6
source routing was deprecated (RFC5095).
Di seguito sono riportati alcuni esempi in stile domande e risposte che dovrebbero darti una buona idea su come funziona il comando ping.
Q1. Come utilizzare il comando ping?
L'utilizzo di base è abbastanza semplice:basta eseguire il comando 'ping' con la destinazione come input.
Ad esempio:
ping howtoforge.com
Di seguito è riportato il risultato di questo comando prodotto sul mio sistema:
Nota che per impostazione predefinita, il comando continuerà a essere eseguito finché non lo fermerai tramite Ctrl+C.
Q2. Come modificare l'intervallo di tempo tra i pacchetti ping?
Per impostazione predefinita, c'è un intervallo di un secondo tra i pacchetti ping. Tuttavia, se lo desideri, puoi personalizzare questo ritardo utilizzando l'opzione della riga di comando -i.
Ad esempio, il comando seguente assicura che ci sia un intervallo di 3 secondi:
ping -i 3 howtoforge.com
E il comando seguente invia i pacchetti con un ritardo di mezzo secondo.
ping -i 0.5 howtoforge.com
Tieni presente che solo il superutente può impostare l'intervallo su valori inferiori a 0,2 secondi
T3. Come modificare la dimensione del pacchetto ping?
Per impostazione predefinita, il numero di byte in un pacchetto ping è 56 (64 se si includono 8 byte di intestazione ICMP). Tuttavia, se lo desideri, puoi modificare questo valore, cosa che puoi fare usando l'opzione della riga di comando -s.
Ad esempio, per inviare un pacchetto da 80 byte (88 inclusa l'intestazione ICMP), utilizzare il comando seguente:
ping -s 80 howtoforge.com
Q4. Come fare in modo che il ping invii un determinato numero di pacchetti?
Il comportamento predefinito del ping consiste nel continuare a inviare pacchetti fino a quando non viene interrotto dall'utente. Tuttavia, se lo desideri, puoi forzare l'interruzione dell'esecuzione del ping dopo aver inviato un determinato numero di pacchetti. Puoi farlo usando l'opzione della riga di comando -c.
Ad esempio, il comando seguente invierà 3 pacchetti e poi si fermerà.
ping -c 3 howtoforge.com
Q5. Come lanciare una marea di pacchetti usando ping?
Sì, il comando ping offre anche un'opzione per lanciare una marea di pacchetti. Puoi farlo usando l'opzione della riga di comando -f.
ping -f howtoforge.com
Ecco cosa dicono i documenti ufficiali su questa opzione:
For every ECHO_REQUEST sent a period ``.'' is
printed, while for ever ECHO_REPLY received a backspace is
printed. This provides a rapid display of how many packets are
being dropped. If interval is not given, it sets interval to
zero and outputs packets as fast as they come back or one hun?
dred times per second, whichever is more. Only the super-user
may use this option with zero interval.
Q6. Come creare un timestamp di stampa ping prima di ogni riga?
C'è un'opzione (-D) che ti consente di farlo. Il timestamp stampato è una combinazione di unix time e microsecondi (come in gettimeofday).
ping -D howtoforge.com
Ecco uno screenshot di questa opzione in azione:
Q7. Come impostare un timeout difficile per il ping?
È possibile specificare una scadenza per l'uscita del ping. Puoi farlo usando l'opzione della riga di comando -w che richiede un valore numerico che rappresenta il numero di secondi.
Ad esempio, il seguente comando ping si interromperà dopo 3 secondi:
ping -w 3 howtoforge.com
Ecco come i documenti ufficiali spiegano questa opzione:
Specify a timeout, in seconds, before ping exits regardless of
how many packets have been sent or received. In this case ping
does not stop after count packet are sent, it waits either for
deadline expire or until count probes are answered or for some
error notification from network.
Q8. Come impostare un timeout soft per il ping?
Mentre l'opzione -w assicura che il ping si interrompa in ogni caso dopo la scadenza del termine, c'è un'altra opzione (-W, in maiuscolo) che interrompe anche il ping ma solo quando non c'è risposta dal lato di destinazione.
ping -W 3 howtoforge.com
Ecco come la pagina man spiega il comportamento in questo caso:
Time to wait for a response, in seconds. The option affects only
timeout in absence of any responses, otherwise ping waits for
two RTTs.
Conclusione
Ping è uno strumento importante che quasi certamente viene utilizzato per il debug di problemi relativi alla rete. In questo tutorial, abbiamo discusso alcune caratteristiche principali (opzioni della riga di comando) di questa utility. Esercitati con questi e, una volta terminato, vai alla pagina man dello strumento per saperne di più.