Wie kann ich sehen, welche Ports auf meinem Computer geöffnet sind?


148

Ich möchte sehen, welche Ports auf meinem Computer geöffnet sind, z. B. welche Ports auf meinem Computer empfangsbereit sind. ZB Port 80, wenn ich einen Webserver installiert habe, und so weiter.

Gibt es einen Befehl dafür?

Antworten:


113

nmap Installieren Sie nmap

Nmap ("Network Mapper") ist ein kostenloses Open-Source-Dienstprogramm für die Netzwerkerkundung oder Sicherheitsüberwachung

nmap 192.168.1.33 interner PC oder nmap external ip address

Mehr Informationen man nmap


11
Danke, hat super nmap localhostfunktioniert.
Jonas

11
Denken Sie daran, dass es einen Unterschied zwischen nmap localhostund nmap 192.168.0.3(oder was auch immer Sie Maschine IP ist)
LassePoulsen

6
Ich denke, Netstat ist eine bessere Antwort darauf. netstat listet direkt auf, was das System abhört, ohne eine zusätzliche Anwendung zu verwenden oder unnötige Anrufe über localhost zu tätigen oder über das Netzwerk zu kommunizieren.
Mathieu Trudel-Lapierre

2
Das ist blöd. Wenn Sie Zugriff auf den Computer haben, verwenden Sie einfach netstat -ln. Sie sehen sofort alle offenen Ports.
Alexis Wilke

1
nmap localhosthabe keine Dienste gefunden, die nur an localhost gebunden waren. Zum Beispiel renne ich influxdmit bind-address:localhost:8086. Das ist nicht aufgetaucht sudo nmap localhost, aber aufgetaucht sudo netstat -tulpn.
Dan Dascalescu

279

Ich habe das immer benutzt:

sudo netstat -ntlp | grep LISTEN

4
sudo netstat -ntlp | grep LISTEN... sudosonst verwenden ... pid wird nicht gedruckt.
Rafaf Tahsin

6
-lfiltert schon zum hören. grep LISTENhilft nicht mehr, als 2 Zeilen Header-Informationen auszublenden.
Dan Dascalescu

3
-t: tcp,: -llistening socket -p,: show pid und programmname,: -nprint 127.0.0.1:80statt localhost:http. Referenz: linux.die.net/man/8/netstat
Rick

1
Installieren Sie netstatmitsudo apt-get install net-tools
RichArt

2
Der erweiterte Befehl lautet sudo netstat --tcp --listening --programs --numeric. Es muss nicht verwendet werden, es grepsei denn, Sie möchten Spaltenüberschriften entfernen.
Patrick Dark

60

Weitere gute Möglichkeiten, um herauszufinden, welche Ports aufgelistet sind und welche Firewall-Regeln gelten:

  • sudo netstat -tulpn

  • sudo ufw status


Ich ändere die Antwort nmapwieder auf, die Benutzerfreundlichkeit von netstatist Mist.
Jonas

2
@Jonas: siehe mein Kommentar unter der nmap Antwort. Es werden keine Dienste aufgelistet, die nur an localhost gebunden sind.
Dan Dascalescu

27

Verwenden Sie den netstatBefehl, um offene Ports aufzulisten.

Zum Beispiel:

    $ sudo netstat -tulpn | grep LISTEN
    tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      5452/dnsmasq    
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1037/cupsd      
    tcp6       0      0 ::1:631                 :::*                    LISTEN      1037/cupsd

Im obigen Beispiel sind drei Dienste an die Loopback-Adresse gebunden.

An die Loopback-Adresse "127.0.0.1" gebundene IPv4-Dienste sind nur auf dem lokalen Computer verfügbar. Die entsprechende Loopback-Adresse für IPv6 lautet ":: 1". Die IPv4-Adresse "0.0.0.0" bedeutet "Beliebige IP-Adresse". Dies bedeutet, dass andere Computer möglicherweise eine Verbindung zu einer der lokal konfigurierten Netzwerkschnittstellen auf dem bestimmten Port herstellen können.

Eine andere Methode ist die Verwendung des lsofBefehls:

    $ sudo lsof -nP -i | grep LISTEN
    cupsd     1037   root    9u  IPv6  11276      0t0  TCP [::1]:631 (LISTEN)
    cupsd     1037   root   10u  IPv4  11277      0t0  TCP 127.0.0.1:631 (LISTEN)
    dnsmasq   5452 nobody    5u  IPv4 212707      0t0  TCP 127.0.0.1:53 (LISTEN)

Weitere Einzelheiten finden Sie unter man netstatoder man lsof.


3
Ich dachte, die -lOption wäre, LISTENPorts aufzulisten. Also das grep wäre hier überflüssig ?!
Alexis Wilke

24

Dies reicht aus, um zu zeigen, dass ein Prozess 0.0.0.0auf Port 80 (Standard-Webserver-Portnummer) die IP-Adresse abhört (wird benötigt, um auf jede Anfrage zu antworten). In meinem Fall ist dies der Webserverlighttpd

$ sudo netstat -ntlp | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN          2495/lighttpd

Wenn Sie später sicherstellen möchten, dass das einzige, was Sie durch Ihre Firewall zulassen, Port 80 ist, verwende ich häufig ShieldsUp von www.grc.com, um einen Firewall-Test durchzuführen.


11

sudo iptables -Llistet die Anschlussregeln für Ihren PC auf. Beachten Sie, dass die Ausgabe bei Verwendung von UFW- oder Shorewall-Firewalls möglicherweise schwer lesbar ist. In diesem Fall eher sudo ufw statuszum Beispiel verwenden.

Dies ist für sich genommen nicht sehr nützlich, da der Zugriff auf einen offenen Port immer noch verweigert wird, wenn kein Prozess auf diesen Port wartet.


4

Wenn Sie auf der Suche nach einer kontinuierlichen Überwachung der Ports für Server-Computer oder lokal sind, können Sie meiner Meinung nach auch eine grafische Version von nmap verwenden, dh Zenmap, um eine detailliertere Version zu erhalten

Zenmap ist die offizielle grafische Benutzeroberfläche (GUI) für den Nmap Security Scanner.

Unterstützungen verfügbar (Linux, Windows, Mac OS X, BSD usw.)

Schauen Sie sich diese Werkzeugansicht an:

Bildbeschreibung hier eingeben

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.