Com esses scripts, verifico se um host é resposta em uma determinada porta com o /dev/tcp interno do bash .
Eu posso usar o endereço IP ou domínios (hostnames).
Roteiro 1
#!/bin/bash
HOST_NAME="127.1"
HOST_PORT="80"
if ( (exec 3<>/dev/tcp/${HOST_NAME}/${HOST_PORT}) 2> /dev/null); then
echo -e "PORT: ${HOST_PORT} | ON"
else
echo -e "PORT: ${HOST_PORT} | OFF"
fi
exit;
Roteiro 2
#!/bin/bash
HOST_NAME="127.1"
for HOST_PORT in {1..1000}
do
if ( (exec 3<>/dev/tcp/${HOST_NAME}/${HOST_PORT}) 2> /dev/null); then
echo -e "PORT: ${HOST_PORT} | ON"
else
echo -e "PORT: ${HOST_PORT} | OFF"
fi
done
exit;
Roteiro 3
#!/bin/bash
HOST_NAME="127.1"
declare -A PORT_ON
for HOST_PORT in {1..65535}
do
if ( (exec 3<>/dev/tcp/${HOST_NAME}/${HOST_PORT}) 2> /dev/null); then
PORT_ON[${HOST_PORT}]="ON"
fi
done
for i in ${!PORT_ON[*]}
do
echo -e "$i : ${PORT_ON[$i]}"
done
exit;
Em alguns de nossos domínios locais e online, o Script 3 trava em algumas portas e leva mais tempo para pular para a próxima varredura de porta, por exemplo, em ssh (por causa de firewalls ou outros serviços). Como posso gerenciar isso que continua imediatamente e é possível acelerar o script, leva muito tempo, quando eu escaneio todas as 65535 portas an.
Minha distribuição GNU/Linux:
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
4.19.0-16-amd64
Meu /etc/apt/sources.list
deb http://security.debian.org/debian-security buster/updates main contrib
deb-src http://security.debian.org/debian-security buster/updates main contrib
deb http://deb.debian.org/debian/ buster-updates main contrib
deb-src http://deb.debian.org/debian/ buster-updates main contrib
Eu só posso instalar a partir deste repositório.
script bash, verifique a resposta da porta com o /dev/tcp interno do bash, atraso de tempo | trava | acelerar
como posso acelerar e encerrar o atraso de tempo?
execute isso com timeout eu coloco uma variável timer para verificar o tempo de execução parece que você não pode acelerar o script mais de 0.01 se este script for executado com 0.001 você só verá o resultado da variável timer mas nenhum outro resultado mesmo com 1, 0.1 ou 0.01 você sempre obterá o mesmo resultado que testei este script com o ubuntu 22.04 e configurei as portas para 10000