GNU/Linux >> Linux Esercitazione >  >> Linux

È possibile eseguire il ping di un indirizzo:porta?

Le porte sono un concetto di UDP e TCP. I messaggi ping sono tecnicamente indicati come ICMP Echo Request e ICMP Echo Reply che fanno parte dell'ICMP. ICMP, TCP e UDP sono "fratelli"; non si basano l'uno sull'altro, ma sono tre protocolli separati che funzionano su IP.

Pertanto non puoi ping un porto. Quello che puoi fare, è usare un port scanner come nmap .

nmap -p 80 onofri.org

Puoi anche usare telnet onofri.org 80 , come suggerito in una delle altre risposte (darà un errore se la porta è chiusa o filtrata).


Uso Telnet, poiché è integrato in molte piattaforme senza download aggiuntivi.

Usa semplicemente il comando telnet per connetterti alla porta che vuoi testare. Se ricevi il messaggio qui sotto o un messaggio dal servizio stesso, allora la porta è attiva.

Minty16 ~ $ telnet localhost 139
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Se conosci la sequenza di comandi per il servizio a cui ti stai connettendo, puoi digitare un comando (HTTP/FTP GET per esempio) e osservare la risposta e l'output nel terminale. Questo è molto utile per testare il servizio stesso, in quanto ti mostrerà le informazioni sugli errori inviate al client, come gli errori HTTP 500.

Se ricevi un messaggio che la connessione è stata rifiutata, la porta è chiusa.

Minty16 ~ $ telnet localhost 5000
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

Puoi usare netcat per connetterti a una porta specifica per vedere se ottieni una connessione. Il flag -v aumenterà la verbosità per mostrare se la porta è aperta o chiusa. Il flag -z causerà la chiusura di netcat una volta stabilita una connessione. È quindi possibile utilizzare i codici di uscita tramite $? per vedere se la connessione è stata stabilita o meno.

$ nc -zv localhost 22
localhost [127.0.0.1] 22 (ssh) open
$ echo $?
0
$ nc -zv localhost 23
localhost [127.0.0.1] 23 (telnet) : Connection refused
$ echo $?
1

Inoltre, puoi usare mtr con il flag -T per tcp e il flag -P per specificare una porta. Questo farà qualcosa di simile a un traceroute su TCP invece che solo su ICMP. Questo potrebbe essere eccessivo, tuttavia.

sospiro Devo modificare per aggiungere questo bit, poiché non possiamo inserire il codice nei commenti. Knoppix potrebbe fare qualcosa di diverso con la sua versione di netcat, ma questo è ciò che ottengo da Linux Mint

$ date;nc -z -w 1 www.google.com 8000;date
Fri Jun 20 15:55:26 PDT 2014
Fri Jun 20 15:55:27 PDT 2014
$ date;nc -z -w 4 www.google.com 8000;date
Fri Jun 20 15:55:33 PDT 2014
Fri Jun 20 15:55:37 PDT 2014

$ nc -h
[v1.10-40]

Linux
  1. Il tuo indirizzo IP è 224.67.138.143

  2. Linux – Porta seriale Raspberrypi?

  3. Gateway porta seriale Netbsd?

  4. Binding non riuscito:indirizzo già in uso

  5. Netcat - Come ascoltare su una porta TCP utilizzando l'indirizzo IPv6?

Qual è il mio indirizzo IP?

Come aprire la porta per un indirizzo IP specifico in Firewalld

Come modificare l'indirizzo IP su Linux

Come eseguire il ping di un numero di porta specifico

Come consentire la porta SMTP 587 su tutti gli indirizzi IP in Plesk?

comando ping di Linux