Gibt es einen Befehlszeilenbefehl oder eine andere Möglichkeit, um die belegten und freien Portnummern auf meinem Linux-Computer zu ermitteln und aufzulisten?
quelle
Gibt es einen Befehlszeilenbefehl oder eine andere Möglichkeit, um die belegten und freien Portnummern auf meinem Linux-Computer zu ermitteln und aufzulisten?
Der Befehl
netstat -antu
Zeigt alle verwendeten TCP- und UDP-Ports an. Die Ausgabe sieht ungefähr 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 Nummer nach dem Doppelpunkt im Feld Lokale Adresse zeigt den verwendeten Port an. Wenn der Status "LISTEN" ist, bedeutet dies, dass ein Port für eingehende Verbindungen verwendet wird. Wenn die IP-Adresse in diesem Local Address
Feld angegeben ist 0.0.0.0
, bedeutet dies, dass eingehende Verbindungen auf jeder IP-Adresse akzeptiert werden, die einer Schnittstelle zugewiesen ist.
Wenn gesagt localhost
oder 127.0.0.1
wäre es nur , um Verbindungen von Ihrem Computer zu akzeptieren.
Wenn Sie den -p
Parameter hinzufügen und als root ausführen, wird außerdem 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.
-antu
zu-tuna
IhrerIch habe selbst eine kleine Liste zusammengestellt .
Einige meiner Favoriten sind:
quelle
Eine gute und zuverlässige Möglichkeit, nach geöffneten Ports zu suchen, ist die Verwendung
ss
(Ersatz für die veraltetennetstat
). Sie kann in einem Skript verwendet werden, ohne dass erhöhte Berechtigungen erforderlich sind (z. B.sudo
).Verwendung: Option zum Überwachen von
-l
Ports, Option-n
zum Umgehen der DNS-Auflösung und Filter für QuellportNN
:src :NN
(NN
durch den zu überwachenden Port ersetzen ). Weitere Optionen finden Sie unterman ss
Beispiele:
Und in einem Skript können wir mit grep testen, ob die Ausgabe den von uns angeforderten Port enthält. Beispiel mit verwendetem Port 80 (siehe oben):
Beispiel mit nicht belegtem Port 81 (so)
quelle
Ein anderer Weg:
Wenn der Port frei ist, erhalten Sie eine Fehlermeldung. Wenn der Port verwendet wird, stellt Telnet eine Verbindung her.
(zu finden unter http://www.unix.com/unix-for-dummies-questions-and-answers/8456-how-know-whether-particular-port-number-free-not.html )
quelle