O Nmap faz o possível para encontrar a velocidade na qual pode encontrar com precisão o estado (aberto, fechado ou filtrado) de cada porta. O sistema de cronometragem é complexo e possui alguns piores cenários que podem levar a varreduras muito lentas. Um desses casos é quando o destino é a redefinição de conexão TCP (RST) limitadora de taxa, que são as respostas que o Nmap recebe quando uma porta é fechada. A maioria das portas em um sistema geralmente é fechada e, para economizar recursos ou, talvez, impedir as tentativas de varredura, o SO do destino pode escolher apenas emitir um RST uma vez por segundo.
Quando o Nmap detecta a limitação de taxa de RST, ele deve desacelerar seus testes para corresponder a essa taxa, caso contrário, uma porta que está fechada pode ser marcada como "filtrada" porque nenhuma resposta foi recebida, consistente com o tráfego descartando essa porta. Esse comportamento de desaceleração ocorre gradualmente, portanto, as primeiras poucas portas não são tão afetadas quanto as posteriores. Além disso, afeta somente portas fechadas, portanto, as portas comumente usadas entre 1 e 1000 têm menor probabilidade de contribuir para a lentidão.
Há uma solução alternativa para esse problema, mas ela apresenta uma perda de precisão. Se você não se importa em saber a diferença entre portas filtradas e portas fechadas, você pode usar a opção --defeat-rst-ratelimit
para não deixar que os RSTs com taxa limitada afetem o tempo do Nmap. O Nmap continuará enviando a uma taxa apropriada para a rede, detectando pacotes descartados e reduzindo a velocidade quando necessário, mas ficando perfeitamente feliz em marcar as portas fechadas como filtradas. O conjunto de portas abertas deve ser exatamente o mesmo, que é tudo o que a maioria das pessoas deseja. Na verdade, você pode até adicionar --open
para evitar informações de impressão sobre portas fechadas e filtradas.