Press "Enter" to skip to content

Il comando ping di un indirizzo ip specificando la porta

Il comando ping è uno dei comandi di base quando si lavora con le reti informatiche. Questo semplicissimo comando viene solitamente utilizzato nella sua forma più semplice, senza opzioni, solamente fornendo il nome host o l’indirizzo ip della macchina a cui mandare il ping. Ma se invece volessimo fare il ping di indirizzo ip e porta?

La prima cosa che viene in mente a un utente Mac o Linux è sicuramente quella di consultare la pagina man del comando ping. In questa pagina ci aspettiamo di trovare quale sia la sintassi corretta per specificare la porta. Purtroppo però, nella pagina man del comando ping non troviamo nessun riferimento su come specificare la porta.

Purtroppo come vedremo il comando ping non offre questa funzionalità. Vedremo nei prossimi paragrafi perché e quali alternative abbiamo per pingare una specifica porta.

Indice

Come funziona il comando ping e perché non è possibile specificare la porta

In informatica si usa il termine “pingare” intendendo l’azione di eseguire il comando ping verso una macchina in rete.

Il comando ping utilizza il protocollo ICMP, e serve solitamente per testare la connettività fra due dispositivi in una rete. Quando lanciamo il comando ping da un dispositivo verso un altro, viene fondamentalmente inviato un pacchetto ICMP verso il dispositivo di destinazione. Se fra i due dispositivi vi è connettività di rete e il destinatario non ha esplicitamente bloccato il protocollo ICMP, quest’ultimo invia una risposta al mittente. Il mittente può, in base al ricevimento o meno di una risposta, determinare se c’è connettività fra le due macchine.

Possiamo ad esempio eseguire velocemente un ping verso google.it per assicurarci che il nostro dispositivo sia in grado di raggiungere i server di google, e quindi più in generale internet.

ping google.it

Il comando ping utilizza quindi il protocollo standard ICMP, che permette solamente di controllare che il dispositivo di destinazione sia raggiungibile dal dispositivo mittente. Per questo motivo non è possibile eseguire il comando ping su una porta specifica. Quando vogliamo eseguire un ping su una porta specifica vogliamo infatti solitamente assicurarci che un determinato servizio sul dispositivo di destinazione sia raggiungibile.

Come fare ping di una porta specifica?

Visto che abbiamo detto che il comando ping non ci permette questa funzione, quando parliamo di pingare una porta specifica dovremo intendere stabilire una connessione e non un semplice ping.

Vediamo quindi quali sono i comandi che ci permettono di stabilire questa connessione che abbiamo a disposizione.

Test di una porta specifica usando telnet

L’alternativa più comune, probabilmente perché si trova già nella maggior parte dei sistemi, è usare il comando telnet.

Il comando telnet infatti è incluso nel prompt dei comandi di windows, nella maggior parte delle distribuzioni Linux e può essere installato nei sistemi Mac OS seguendo la nostra guida per installare telnet su mac OS.

Il comando telnet permette di instaurare una semplice connessione con un indirizzo ip o un nome di dominio con la possibilità di specificare la porta.

La sintassi del comando da eseguire è in tutti i casi:

telnet <ip o dominio> <numero porta>

Ad esempio nella nostra rete abbiamo un router che risponde all’indirizzo ip 10.24.1.1, possiamo verificare che la sua interfaccia di configurazione web sia attiva sulla porta 80 tramite il comando

telnet 10.24.1.1 80
Telnet di una porta specifica
Telnet di una porta specifica

Per uscire dalla connessione occorre premere la combinazione di escape <Ctrl> + ]. Se avete una tastiera con layout americano (e questo è uno dei motivi per cui l’abbiamo consigliato l’uso della tastiera americana in questo post) il tasto ] si trova visibile sulla tastiera nella parte destra. Se invece avete una tastiera con il layout italiano, dovrete premere la combinazione <Ctrl> + <Shift> + <Alt Gr> + +. Una volta premuta la combinazione di escape premiamo il tasto q e poi invio.

Se abbiamo un sistema linux come ad esempio Ubuntu e riceviamo una risposta tipo comando non trovato, possiamo installarlo con il comando

sudo apt-get install telnet

Se invece abbiamo windows e riceviamo lo stesso messaggio dal prompt dei comandi, possiamo attivare telnet aprendo il menu avvio, iniziando a digitare “Attiva o disattiva funzionalità di windows” e scegliendo l’omonima voce dai risultati della ricerca. Fra le funzionalità elencate nella finestra che si aprirà scegliete “client Telnet” e attivatela. Premete poi sul pulsante OK per confermare e chiudere la finestra appena aperta. Potrebbe essere necessario riavviare il prompt dei comandi per avere disponibile il comando.

Test di una porta specifica usando nc (netcat)

Un altro modo per tentare di capire se è possibile effettuare una connessione ad una specifica porta di un dispositivo in rete è tramite l’uso del comando nc (abbreviazione di netcat).

Questo comando è disponibile sui sistemi unix come Linux e mac OS.

Per testare una porta useremo le opzioni -v per verbose e -z per scanning.

Proviamo ad esempio a controllare che i server di google siano raggiungibili sulla porta 80:

nc -vz google.it 80

Il risultato sarà il seguente:

Netcat con porta verso il server di google.it
Netcat con porta verso il server di google.it

Nel caso in cui la porta non sia raggiungibile il risultato non sarà “succeded!” ma “Connection refused”

Nel caso in cui avete un sistema linux e il comando nc non è disponibile potete installare netcat tramite il comando:

sudo apt-get install netcat

Controllare una porta con nmap

Un altro modo per “pingare” una porta è usare il comando nmap.

Il comando nmap permette di fare scanning di porte anche su grandi porzioni di indirizzi e larghi range di porte. Per questo motivo potrebbe non essere ben visto in alcune situazioni se usato verso macchine che non sono sotto il nostro controllo. Per questi motivi vi invitiamo a leggere il disclaimer legale presente sul sito ufficiale di nmap a questo indirizzo. Continuando assumiamo che sappiate cosa state facendo e che stiate usando nmap in una rete locale in cui avete i permessi per operare. Assumiamo inoltre che lo stiate facendo solamente per scopi diagnostici e non per cercare vulnerabilità in macchine che non sono già sotto il vostro controllo.

In questo caso useremo l’opzione -p per poter specificare un numero di porta.

nmap -p <numero porta> <ip o dominio>

Nmap è presente sui sistemi linux, se non è installato potete farlo attraverso il comando:

sudo apt-get install nmap

Test di una porta tramite Windows Powershell

Se siete utenti windows, molti dei comandi presi in esame nei paragrafi precedenti non sono disponibili nel vostro sistema operativo. C’è però un comando che potete utilizzare tramite la powershell, si tratta di Test-NetConnection. Questo comando permette di specificare la porta tramite l’opzione -p.

La sintassi è abbastanza semplice:

Test-NetConnection <indirizzo ip> -p <numero porta>

Proviamo quindi di nuovo a testare la porta 80 dei server google.it tramite il comando

Test-NetConnection google.it -p 80

Otterremo questo risultato:

L’ultima riga TcpTestSucceded : true ci indica che la porta è stata raggiunta.

Conclusioni

In conclusione abbiamo visto che parlare di ping su una singola porta è scorretto, in quanto il comando ping utilizza il protocollo ICMP e non permette di specificare un altro protocollo o un’altra porta.

Abbiamo quindi fatto una panoramica di comandi alternativi a ping da usare con indirizzo ip e porta.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.