Em um script bash, como posso descobrir rapidamente se uma porta 445
está aberta / escutando em um servidor.
Eu tentei algumas opções, mas quero algo rápido:
1. lsof -i :445
(Leva segundos)
2. netstat -an |grep 445 |grep LISTEN
(Leva segundos)
3. telnet
(não retorna)
4. nmap
, netcat
não está disponível no servidor
Será bom saber de uma maneira que não enumere primeiro e depois cumpra.
netstat -lnt
(com -t
e sem -a
) limitará a saída apenas às conexões TCP. Pode acelerar um pouco. Você pode adicionar -4
para o IPv4 apenas se não precisar do IPv6.
netstat -an | grep PORTNUMBER | grep -i listen
Se a saída estiver vazia, a porta não está em uso.
lsof
é lento para você, mas normalmente é a melhor das soluções que você listou. Sua netstat
solução não é muito confiável (você pode adivinhar sempre que usar grep
; de qualquer maneira, ela retornará verdadeira se alguém estiver ouvindo, por exemplo, 4450). telnet
e netcat
tente criar uma conexão, que nem sempre é o que você deseja.