Wie kann ich anhand eines Bash-Skripts schnell herausfinden, ob ein Port 445
auf einem Server geöffnet ist / lauscht.
Ich habe ein paar Optionen ausprobiert, aber ich möchte etwas schnell:
1. lsof -i :445
(Dauert Sekunden)
2. netstat -an |grep 445 |grep LISTEN
(Dauert Sekunden)
3. telnet
(es gibt nicht)
4. nmap
, netcat
sind auf dem Server nicht verfügbar
Es wird schön sein, einen Weg zu kennen, der nicht zuerst aufzählt und danach greift.
netstat -lnt
(mit -t
und ohne -a
) beschränkt die Ausgabe nur auf abhörende TCP-Verbindungen. Es kann sich etwas beschleunigen. Sie können -4
IPv4 nur hinzufügen, wenn Sie IPv6 nicht benötigen.
netstat -an | grep PORTNUMBER | grep -i listen
Wenn die Ausgabe leer ist, wird der Port nicht verwendet.
lsof
es für Sie langsam ist, aber normalerweise ist es die beste der von Ihnen aufgelisteten Lösungen. Ihre netstat
Lösung ist nicht sehr zuverlässig (Sie können sie bei jeder Verwendung erraten grep
; sie gibt ohnehin true zurück, wenn jemand z. B. 4450 zuhört). telnet
und netcat
tatsächlich versuchen, eine Verbindung herzustellen, die möglicherweise nicht immer das ist, was Sie wollen.