Einführung: Ich habe eine Bash-Funktion erstellt, mit der überprüft werden kann, ob ein Port verfügbar ist, und die bis zu einer bestimmten maximalen Portnummer um 1 erhöht wird, wenn false. Wenn beispielsweise Port 500 nicht verfügbar ist, wird die Verfügbarkeit von 501 bis 550 überprüft.
Ziel: Um diese Bash-Funktion zu testen, muss eine Reihe von Ports erstellt werden, die sich im Status LISTEN befinden.
Versuche: Unter Windows ist es möglich, einen LISTEN-Port mit diesen PowerShell-Befehlen zu erstellen :
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u> $listener = [System.Net.Sockets.TcpListener]1234
PS C:\Users\u> $listener.Start();
PS C:\Users\u> netstat -nat | grep 1234
TCP 0.0.0.0:1234 0.0.0.0:0 LISTENING InHost
PS C:\Users\u> $listener.Stop();
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u>
Auf dieser Grundlage habe ich versucht, über einen Befehl nachzudenken, der dasselbe auf CentOS ausführen kann, aber ich weiß nicht warum und habe mit Google begonnen, ohne eine Lösung zu finden, die dieses Problem löst.
Erwartete Antwort : Ich akzeptiere die Antwort mit einem Befehl, mit dem ein LISTEN-Port erstellt werden kann, und stimme ihr zu. Sobald der Befehl ausgeführt wurde, sollte der Port im LISTEN-Status bleiben, dh:
[user@host ~]$ ss -nat | grep 500
LISTEN 0 128 *:500 *:*
netstat -an --tcp | awk '/LISTEN/ {sub(".*:", "", $4); print $4}' | sort -nu
. Ein * BSD:netstat -an -f inet -p tcp | awk '/LISTEN/ {sub(".*\\.", "", $4); print $4}' | sort -nu
.