Jak ze skryptu bash mogę szybko dowiedzieć się, czy port 445
jest otwarty / nasłuchuje na serwerze.
Wypróbowałem kilka opcji, ale chcę czegoś szybkiego:
1. lsof -i :445
(Zajmuje sekundy)
2. netstat -an |grep 445 |grep LISTEN
(Zajmuje sekundy)
3. telnet
(Nie zwraca)
4. nmap
, netcat
Nie są dostępne na serwerze
Miło będzie wiedzieć o sposobie, który nie wylicza najpierw, a potem greps.
netstat -lnt
(zi -t
bez -a
) ograniczy wyjście tylko do nasłuchiwania połączeń TCP. Może trochę przyspieszyć. Możesz dodać -4
dla IPv4 tylko wtedy, gdy nie potrzebujesz IPv6.
netstat -an | grep PORTNUMBER | grep -i listen
Jeśli dane wyjściowe są puste, port nie jest używany.
lsof
jest dla ciebie powolny, ale zwykle jest to najlepsze z wymienionych rozwiązań. Twoje netstat
rozwiązanie nie jest zbyt niezawodne (możesz zgadywać za każdym razem, gdy go używasz grep
; w każdym razie zwraca wartość prawda, jeśli ktoś słucha np. 4450). telnet
i netcat
faktycznie próbujemy utworzyć połączenie, które nie zawsze jest tym, czego chcesz.