GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich überprüfen, welche Ports belegt und welche Ports auf meinem Linux-Rechner frei sind?

Der Befehl

netstat -antu

zeigt alle verwendeten TCP- und UDP-Ports an. Die Ausgabe sieht in etwa so aus:

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:59753           0.0.0.0:*               LISTEN

Die Zahl nach dem Doppelpunkt im Feld Lokale Adresse zeigt den verwendeten Port an. Wenn der Status "LISTEN" ist, bedeutet dies einen Port, der für eingehende Verbindungen verwendet wird. Wenn die IP-Adresse im Local Address Feld ist 0.0.0.0 Das bedeutet, dass eingehende Verbindungen auf jeder IP-Adresse akzeptiert werden, die einer Schnittstelle zugewiesen ist – also von Verbindungen, die von außerhalb Ihres Computers stammen.

Wenn dort localhost stand oder 127.0.0.1 es würde nur Verbindungen von Ihrem Rechner akzeptieren.

Zusätzlich, wenn Sie den -p hinzufügen Parameter und führen Sie es als root aus, es wird der Prozess angezeigt, der den Port geöffnet hat:

$ sudo netstat -antup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:59753           0.0.0.0:*               LISTEN      860/rpc.statd

Alles, was nicht als verwendet angezeigt wird, ist kostenlos, Benutzer (nicht privilegierte Konten) können jedoch nur Ports über 1023 öffnen.


Ich habe mir selbst eine kleine Liste zusammengestellt.

Einige meiner Favoriten sind:

netstat -tulpn
lsof -i -n -P

Eine gute und zuverlässige Möglichkeit, nach geöffneten Ports zu suchen, ist die Verwendung von ss (Ersatz für den veralteten netstat ), kann es in einem Skript verwendet werden, ohne dass erhöhte Berechtigungen erforderlich sind (z. B. sudo ).

Verwendung:Option -l für lauschende Ports Option -n um die DNS-Auflösung zu umgehen, und den Filter auf Quellport NN :src :NN (ersetzen Sie NN nach dem Port, den Sie überwachen möchten). Weitere Optionen finden Sie unter man ss

ss -ln src :NN

Beispiele:

[[email protected] ~]# ss -ln src :80
State       Recv-Q Send-Q       Local Address:Port   Peer Address:Port
LISTEN      0      128                      *:80                *:*
[[email protected] ~]# ss -ln src :81
State       Recv-Q Send-Q       Local Address:Port   Peer Address:Port

Und in einem Skript können wir mit grep testen, ob die Ausgabe den angeforderten Port enthält. Beispiel mit Port 80 in Verwendung (siehe oben):

myport=80
# count the number of occurrences of port $myport in output: 1= in use; 0 = not in use
result=$(ss -ln src :$myport | grep -Ec -e "\<$myport\>")
if [ "$result" -eq 1 ]; then
  echo "Port $myport is in use (result == $result) "
else
  echo "Port $myport is NOT in use (result == $result) "
fi

# output:
Port 80 is in use (result == 1)

Beispiel mit nicht verwendetem Port 81 (siehe oben)

myport=81
result=$(ss -ln src :$myport | grep -Ec -e "\<$myport\>")
if [ "$result" -eq 1 ]; then
  echo "Port $myport is in use (result == $result) "
else
  echo "Port $myport is NOT in use (result == $result) "
fi

# output:
Port 81 is NOT in use (result == 0)

Linux
  1. So überprüfen Sie, welche Apache-Module in Linux aktiviert/geladen sind

  2. Wie überprüfe ich PHP- und Apache-Module, die auf einem Linux installiert sind?

  3. Überprüfen Sie, welche Ports und Prozesse in Ubuntu ausgeführt werden

  4. Wie überprüfe ich die Zeitzone in Linux?

  5. Wie kann ich überprüfen, welche Terminaldefinitionen verfügbar sind?

So überprüfen Sie die Speichernutzung in Linux

So führen Sie einen Port-Scan unter Linux durch

So finden und schließen Sie offene Ports in Linux

So überprüfen Sie den freien Speicherplatz unter Linux [Terminal- und GUI-Methoden]

So überprüfen Sie den freien Speicherplatz unter Linux

Wie überprüfe ich offene Ports in Linux?