Para isso, você realmente precisará de um programa que ouça essas portas, o que quer que seja que ele faça com os dados recebidos (provavelmente faça um eco ou descarte-o).
Você poderia usar o netcat como um "servidor" muito simples para escutar em qualquer porta que você especificasse, entretanto você precisaria de uma instância de netcat por porta, o que pode ser bastante custoso se você quiser cobrir todas as 2 ^ 16 portas possíveis:
netcat -lp <port> </dev/null >/dev/null 2>&1
Isso iniciaria um netcat para escutar no <port>
especificado, o que descartaria todo o tráfego de entrada - mas nunca encerra a conexão por si só. Adicione o sinalizador -z
ao comando para finalizar instantaneamente quaisquer conexões. Dê uma olhada em netcat --help
ou info netcat
para mais opções.
Uma possível alternativa seria um programa C simples, que iria iterar sobre todas as portas que você quer cobrir, abrir um socket de escuta nele e fazer o que quiser com elas assim que a conexão chegar; no entanto, como não estou em programação de soquetes agora, não posso fornecer um exemplo mais específico ou código-fonte. Se você estiver interessado nesta solução, veja as páginas de manual socket
, bind
, listen
, accept
etc. na seção 2, elas já têm alguns exemplos que você pode usar.