2013-01-08 07:34:55 +0000 2013-01-08 07:34:55 +0000
202
202

Ottenere un elenco di Porte aperte in Linux

Ho bisogno di un comando Linux per elencare tutte le porte aperte libere per l'uso in un'applicazione

lsof -i TCP| fgrep LISTEN

Non sembra essere d'aiuto in quanto le porte che elenca non sono necessariamente libere per l'uso. Come faccio a elencare le porte aperte libere non in uso?

Risposte (7)

268
268
268
2013-01-08 11:51:03 +0000
netstat -lntu

come risposto da @askmish vi darà l'elenco dei servizi in esecuzione sul vostro sistema su porte tcp e udp dove

  • -l = solo servizi che sono in ascolto su alcune porte
  • -n = mostra il numero della porta, non cercare di risolvere il nome del servizio
  • -t = porte tcp
  • -u = porte tcp
  • -p = porte udp
  • &007 = nome del programma

Non è necessario il parametro ‘p’, in quanto si è interessati solo ad ottenere quali porte sono libere e non quale programma è in esecuzione su di esso.

Questo mostra solo quali porte del vostro sistema sono esaurite. Questo non vi dice lo stato della vostra rete, ad esempio se siete dietro NAT e volete che alcuni servizi siano accessibili dall'esterno. Oppure se il firewall blocca la porta per i visitatori esterni. In questo caso, nmap viene in soccorso. ATTENZIONE: Utilizzate nmap solo su reti che sono sotto il vostro controllo. Inoltre, ci sono regole del firewall che possono bloccare i ping di nmap, dovrete armeggiare con le opzioni per ottenere risultati corretti.

93
93
93
2016-06-08 20:19:05 +0000

Poiché net-tools è deprecato , si può usare il comando ss invece di netstat se netstat non è presente sulla macchina:

ss -lntu
``` ```
netstat -lntu

dovrebbe funzionare in modo simile a

-n, --numeric don't resolve service names
-l, --listening display listening sockets
-t, --tcp display only TCP sockets
-u, --udp display only UDP sockets

secondo l'aiuto incorporato:

&001

21
21
21
2013-01-08 07:45:50 +0000

Questo comando elencherà le porte di rete aperte e i processi che le possiedono:

netstat -lnptu nmap

è possibile filtrare i risultati in base alle proprie specifiche.

Si può anche utilizzare &007 per risultati più granulari sulle porte.

5
5
5
2014-11-03 04:33:36 +0000

Tutte le porte aperte, compreso il traffico di risposta:

netstat -tuwanp 2>/dev/null | awk '{print $4}' | sort | uniq -c | wc -l
1
1
1
2019-01-16 23:21:34 +0000

La mia opinione sulla domanda iniziale era che egli si riferiva alle porte non utilizzate, non a quelle attualmente collegate ai servizi. Se questo è il caso, non c'è un modo specifico per elencarle, se non quello di elencare le porte usate e supporre che le altre siano inutilizzate.

Un ulteriore punto da tenere a mente: come utente, non sarai in grado di aprire una porta a meno di 1024 (avrai bisogno dei permessi di root per questo).

0
0
0
2019-01-16 19:51:05 +0000

Provi

sudo netstat -plnt | grep -E '(0.0.0.0:|:::|127.0.0.1:|::1:)' | awk 'NR>2{print $7}' | sort -n | uniq

e guardi qui.

0
0
0
2016-04-04 06:29:27 +0000

Il seguente comando funzionerà su qualsiasi Unix che produce nello stesso formato di Ubuntu / Debian - dove l'indirizzo locale è nella colonna 4 e l'output include un header a 2 righe in alto. Se uno di questi numeri è diverso, modificare il comando awk qui sotto.

Se si desidera solo IPv4:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '0.0.0.0:' | sed 's/.*://' | sort -n | uniq

Se si desidera solo IPv6:

netstat -lnt | awk 'NR>2{print $4}' | grep -E ':::' | sed 's/.*://' | sort -n | uniq
``` ```
netstat -lnt | awk 'NR>2{print $4}' | grep -E '(0.0.0.0:|:::)' | sed 's/.*://' | sort -n | uniq

Se si desidera entrambi insieme:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '(127.0.0.1:|::1:)' | sed 's/.*://' | sort -n | uniq

Il comando emette un elenco di numeri di porta che sono in ascolto su tutte le interfacce. Se volete elencare tutte le porte che sono in ascolto sull'interfaccia localhost, allora usate qualcosa come questo:

&001