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

Linux-Befehl erhält unbenutzten Port

netstat -lat gibt die vollständige Liste von Zuhören und etabliert Häfen.

Wenn sich ein Port in keinem dieser Zustände befindet, existiert er für das System nicht, sodass Sie keinen Befehl finden werden, der die Liste der nicht verwendeten Ports anzeigt.

Denken Sie daran, dass es 65535 Ports gibt, also alles, was nicht auf netstat -lat ist ist ein ungenutzter Port.

Das folgende Bash-Skript führt einen einfachen Scan von tcp durch Ports und lassen Sie wissen, welche offen sind und die geschlossen sind :

#!/bin/bash
IP=$1
first_port=$2
last_port=$3
function scanner

{
for ((port=$first_port; port<=$last_port; port++))
        do
                (echo >/dev/tcp/$IP/$port)> /dev/null 2>&1 && echo $port open || echo "$port closed"
        done
}

scanner

Wenn Sie es als portscan.sh speichern dann muss es als ./portscan.sh IP first_port last_port ausgeführt werden , zum Beispiel:./portscan 127.0.0.1 20 135 scannt die lokale Ausrüstung von den Ports 20 bis 135


Ruby 2.x (Einzeiler):

ruby -e 'require "socket"; puts Addrinfo.tcp("", 0).bind {|s| s.local_address.ip_port }'

Auf meiner Maschine wurde gerade Folgendes gedruckt:

42644

Ein nachfolgender Aufruf gedruckt:

36168

Diese Technik bewirkt, dass der aktuelle Benutzer einen unbenutzten Port anfordert (an Port „0“ binden) und dann die vom Betriebssystem bereitgestellte Portnummer ausgibt. Und da der aktuelle Benutzer derjenige ist, der nachfragt, werden Ports unter 1024 nicht zurückgegeben (außer aktueller Benutzer =root).

Ehre, wem Ehre gebührt – diese Lösung stammt aus einem Kommentar von Franklin Yu auf unix.stackexchange.com:„Was ist der einfachste Weg, einen ungenutzten lokalen Port zu finden?“


Kurzes Bash-Skript, das zufällig eine Zahl zwischen 1025 und 60000 generiert und so lange wiederholt, bis diese Zahl nicht in der Liste der verwendeten Ports gefunden wird. Dies ist eine Quick-and-Dirty-Lösung, die größere Ports bevorzugt:

CHECK="do while"

while [[ ! -z $CHECK ]]; do
    PORT=$(( ( RANDOM % 60000 )  + 1025 ))
    CHECK=$(sudo netstat -ap | grep $PORT)
done

echo $PORT

Linux
  1. Linux-IP-Befehl

  2. Linux-cd-Befehl

  3. Überprüfen Sie die Portverwendung in Linux

  4. Linux-Befehl Tomcat-Prozess-ID nach Namen abrufen

  5. Auflisten ungenutzter SATA-Ports unter Linux

Bei Befehl unter Linux

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

Erhalten Sie Informationen über einen Befehl mit Type Command in Linux

Wie überprüfe ich offene Ports in Linux?

Öffnen eines Ports unter Linux

5 Methoden, um schnelle Hilfe zu Linux-Befehlen zu erhalten