Holen Sie sich eine Liste der Offenen Ports in Linux
Ich benötige einen Linux-Befehl, um alle freien offenen Ports für die Verwendung in einer Anwendung aufzulisten
lsof -i TCP| fgrep LISTEN
Wird nicht als hilfreich angesehen, da die darin aufgelisteten Ports nicht unbedingt frei sind. Wie liste ich freie offene Ports auf, die nicht verwendet werden?
8 answers
netstat -lntu
Wie von @askmish beantwortet, erhalten Sie eine Liste der Dienste, die auf Ihrem System auf TCP-und UDP-Ports ausgeführt werden, wobei
-
-l
= nur Dienste, die einen Port abhören -
-n
= Portnummer anzeigen, versuchen Sie nicht, den Dienstnamen aufzulösen -
-t
= tcp-ports -
-u
= udp-ports -
-p
= Name des Programms
Sie benötigen den Parameter ' p ' nicht, da Sie nur wissen möchten, welche Ports frei sind und nicht welches Programm läuft darauf.
Dies zeigt jedoch nur an, welche Ports auf Ihrem System verbraucht sind. Dies zeigt Ihnen nicht den Status Ihres Netzwerks an, z. B. wenn Sie hinter NAT stehen und möchten, dass einige Dienste von außen zugänglich sind. Oder wenn die Firewall den Port für externe Besucher blockiert. In diesem Fall kommt nmap zur Rettung. WARNUNG: Verwenden Sie nmap nur in Netzwerken, die unter Ihrer Kontrolle stehen. Außerdem gibt es Firewall-Regeln, die nmap-Pings blockieren können, Sie müssen mit Optionen herumspielen, um erhalten Sie korrekte Ergebnisse.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-06-24 15:06:11
Seit net-tools
ist veraltet, können Sie die ss
befehl anstelle von netstat
wenn netstat
auf Ihrem Computer nicht vorhanden ist:
ss -lntu
Sollte ähnlich funktionieren wie
netstat -lntu
Gemäß der integrierten Hilfe:
-n, --numeric don't resolve service names
-l, --listening display listening sockets
-t, --tcp display only TCP sockets
-u, --udp display only UDP sockets
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-04-20 10:28:10
Dieser Befehl listet offene Netzwerkports und die Prozesse auf, denen sie gehören:
netstat -lnptu
Anschließend können Sie die Ergebnisse nach Ihren genauen Spezifikationen filtern.
Sie können auch nmap
für detailliertere Ergebnisse zu Ports verwenden.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-01-08 07:45:50
Alle geöffneten Ports einschließlich Antwortverkehr:
netstat -tuwanp 2>/dev/null | awk '{print $4}' | sort | uniq -c | wc -l
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-04-04 08:44:12
Meine Einstellung zur ursprünglichen Frage war, dass er nach den nicht verwendeten Ports fragte, nicht nach den Ports, die derzeit mit Diensten verbunden sind. Wenn dies der Fall ist, gibt es keine bestimmte Möglichkeit, sie aufzulisten, außer die verwendeten Ports aufzulisten und anzunehmen, dass die anderen nicht verwendet werden.
Ein weiterer Punkt, den Sie beachten sollten: Als Benutzer können Sie keinen Port mit weniger als 1024 öffnen (dafür benötigen Sie Root-Berechtigungen).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-01-16 23:21:34
Der folgende Befehl funktioniert auf jedem Unix, das im selben Format wie Ubuntu / Debian ausgibt-wobei sich die lokale Adresse in der Spalte 4 befindet und die Ausgabe oben eine 2-Zeilenkopfzeile enthält. Wenn eine dieser Nummern unterschiedlich ist, optimieren Sie den folgenden Befehl awk.
Wenn Sie nur IPv4 wollen:
netstat -lnt | awk 'NR>2{print $4}' | grep -E '0.0.0.0:' | sed 's/.*://' | sort -n | uniq
Wenn Sie nur IPv6 wollen:
netstat -lnt | awk 'NR>2{print $4}' | grep -E ':::' | sed 's/.*://' | sort -n | uniq
Wenn Sie beide zusammen wollen:
netstat -lnt | awk 'NR>2{print $4}' | grep -E '(0.0.0.0:|:::)' | sed 's/.*://' | sort -n | uniq
Der Befehl gibt eine Liste der Portnummern aus, die alle Schnittstellen abhören. Wenn Sie möchten Sie alle Ports auflisten, die auf der Localhost-Schnittstelle lauschen, und dann Folgendes verwenden:
netstat -lnt | awk 'NR>2{print $4}' | grep -E '(127.0.0.1:|::1:)' | sed 's/.*://' | sort -n | uniq
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-04-04 06:29:27
Versuchen
sudo netstat -plnt | grep -E '(0.0.0.0:|:::|127.0.0.1:|::1:)' | awk 'NR>2{print $7}' | sort -n | uniq
Und sieh dir das an.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-01-16 22:33:10
Ein Einzeiler, um nur eindeutige Portnummern und nur IPv4 aufzulisten:
netstat -tuwanp4 | awk '{print $4}' | grep ':' | cut -d ":" -f 2 | sort | uniq
Alle Credits zu Aaron C. de Bruyns Kommentar.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2021-02-01 05:52:47