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

Krijg een lijst van Open Ports in Linux

Ik heb een Linux commando nodig om alle vrije open poorten op te sommen voor gebruik in een applicatie

lsof -i TCP| fgrep LISTEN

helpt niet omdat de poorten die het opnoemt niet noodzakelijkerwijs vrij zijn voor gebruik. Hoe maak ik een lijst van vrije open poorten die niet in gebruik zijn?

Antwoorden (7)

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

zoals geantwoord door @askmish geeft u een lijst van diensten die op uw systeem draaien op tcp en udp poorten waar

  • -l = alleen diensten die luisteren op sommige poorten
  • -n = tonen poortnummer, probeer niet de service naam
  • -t = tcp ports
  • -u = udp ports
  • -p = naam van het programma

Je hebt de ‘p’ parameter niet nodig omdat je alleen geïnteresseerd bent in het verkrijgen van welke poorten vrij zijn en niet welk programma er op draait.

Dit laat echter alleen zien welke poorten op je systeem opgebruikt zijn. Dit vertelt je niet de status van je netwerk, b.v. als je achter NAT zit en je wilt dat sommige diensten van buitenaf toegankelijk zijn. Of als de firewall de poort blokkeert voor bezoekers van buitenaf. In dat geval komt nmap je te hulp. WAARSCHUWING: Gebruik nmap alleen op netwerken die onder uw controle staan. Ook zijn er firewall regels die nmap pings kunnen blokkeren, je zult moeten rommelen met opties om de juiste resultaten te krijgen.

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

Aangezien net-tools is afgeschreven , kunt u de opdracht ss gebruiken in plaats van netstat als netstat niet op uw machine aanwezig is:

ss -lntu

moet op dezelfde manier werken als

netstat -lntu

volgens de ingebouwde hulp:

-n, --numeric don't resolve service names
-l, --listening display listening sockets
-t, --tcp display only TCP sockets
-u, --udp display only UDP sockets
``` &001
21
21
21
2013-01-08 07:45:50 +0000

Dit commando geeft een lijst van open netwerkpoorten en de processen die deze bezitten:

netstat -lnptu

U kunt vervolgens de resultaten filteren naar uw exacte specificaties.

U kunt nmap ook gebruiken voor meer korrelige resultaten over poorten.

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

Alle geopende poorten inclusief responsverkeer:

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

Mijn mening over de oorspronkelijke vraag was dat hij vroeg naar de ongebruikte poorten, niet naar de poorten die op dit moment verbonden zijn met diensten. Als dit het geval is, is er geen specifieke manier om ze op te sommen, behalve om de gebruikte poorten op te sommen en aan te nemen dat de andere ongebruikt zijn.

Een extra punt om in gedachten te houden: als gebruiker zult u niet in staat zijn om een poort te openen die kleiner is dan 1024 (daar hebt u root permissies voor nodig).

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

Probeer

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

en kijk hier eens naar.

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

Het volgende commando werkt op elke Unix die in hetzelfde formaat als Ubuntu / Debian wordt uitgevoerd - waarbij het lokale adres in de kolom 4 staat en de uitvoer een 2-lijns koptekst bevat aan de bovenkant. Indien een van deze nummers verschillend is, stel dan het awk-commando hieronder in.

Indien u alleen IPv4 wilt:

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

Indien u alleen IPv6 wilt:

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

Indien u beide samen wilt:

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

Het commando geeft een lijst van poortnummers weer die op alle interfaces worden beluisterd. Als u alle poorten wilt weergeven die luisteren op de localhost interface, gebruik dan iets als dit:

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