Você pode usar o portquiz.net , que é exatamente o tipo de servidor que você está procurando. Por exemplo, seguir o script de shell faz o trabalho:
for x in 'seq 1 65535'; do
echo -ne "$x "
curl "http://portquiz.net:$x" \
--connect-timeout 1 \
-o /dev/null \
-q >/dev/null 2>&1 \
&& echo 'open' \
|| echo 'closed'
done | tee ports.lst
Note que isto irá funcionar por um longo tempo, então se você for impaciente, você pode paralelizar a tarefa usando o GNU parallel
.
Além disso, algumas portas em portquiz
parecem estar bloqueadas no final (até onde eu me lembro são portas para SSH e HTTPS), mas além de alguns casos especiais, todas as portas restantes devem estar abertas .