Quando trabalho em um ambiente distribuído, sempre costumo configurar algumas caixas para se comunicarem usando alguma camada de transporte (TCP ou UDP). Portanto, sempre houve a necessidade de verificar se esta ou aquela porta está aberta em alguma máquina , e como o ping
comando nada mais é do que uma Solicitação de eco em algum endereço IP, tive que procurar por uma solução simples, mas eficiente, e finalmente cruzei uma.
Compartilho aqui o script que faz a verificação usando a nc
( ferramenta netcat ), então você tem que ter certeza de que já está instalado na sua máquina.
Como:
Quando tiver certeza de que o netcat está pronto para uso, crie um script bash com código sublinhado (usando seu editor de texto favorito ou seguindo as instruções de linha de comando que irei usar agora):
Crie um script bash com o nome check_port.sh :
touch check_port.sh
Edite o script:
vim check_port.sh
Em seguida, copie / cole as linhas abaixo em:
#!/bin/bash
# portcheck tool
usage()
{
echo -e "n USAGE: ./${0##*/} [host|ip] [port] n"
exit
}
check_port()
{
local host=${1}
local port=${2}
if nc -w 5 -z ${host-ip} ${port} 2>/dev/null
then
echo -e "an => Port ${port} at ${host} is open"
else
echo -e "an => Port ${port} at ${host} is closed"
fi
}
[[ $# -ne 2 ]] && usage
check_port ${1} ${2}Torne o script executável:
chmod +x check_port.sh
Uso:
O script é tão simples quanto pode ser e você pode usá-lo apenas emitindo o nome do script (em seu caminho de diretório) seguido por um endereço IP e uma porta que você deseja verificar, por exemplo:
cd /path/to/check_port.sh
sh check_port.sh google.com 80
=> Port 80 at google.com.br is open
sh check_port.sh wisebrains.org 8080
=> Port 8080 at wisebrains.org is closed
Observação : você pode criar um link para o arquivo de script no diretório / usr / bin para que esteja disponível na variável PATH env e você pode usá-lo como um comando:
cd /usr/bin
sudo ln -s /path/to/check_port.sh portcheck
Agora você pode simplesmente usar o portcheck
comando de qualquer caminho:
portcheck google.com 80
=> Port 80 at google.com.br is open