A julgar pela saída específica, Connection to Connection to 10.1.0.100 53 port [udp/domain] succeeded!
você está usando o openbsd-netcat.
Olhando o código para o qual o teste é vinculado ao soquete UDP, ou seja, há uma conexão aberta:
if (vflag || zflag) {
/* For UDP, make sure we are connected. */
if (uflag) {
if (udptest(s) == -1) {
ret = 1;
continue;
}
}
/* Don't look up port if -n. */
if (nflag)
sv = NULL;
else {
sv = getservbyport(
ntohs(atoi(portlist[i])),
uflag ? "udp" : "tcp");
}
fprintf(stderr,
"Connection to %s %s port [%s/%s] "
"succeeded!\n", host, portlist[i],
uflag ? "udp" : "tcp",
sv ? sv->s_name : "*");
Problemas mais graves em torno de 3 gravações no soquete aberto. Observe que isso não funciona no IPv6 e falha após cerca de 100 portas verificadas.
Portanto, embora a outra sugestão possa ser válida, não acho que isso esteja acontecendo neste caso específico.
udptest
é a função que estou procurando e responde à minha pergunta. A partir do link que você forneceu "* udptest () * faça algumas gravações para ver se a porta UDP está lá" #De fato, não. Você pode verificar fazendo:
Portanto, com o UDP, não é algo que você possa realmente verificar, a menos que ele retorne informações.
fonte
Há uma mensagem ICMP para sinalizar que uma porta, mesmo uma UDP, está fechada. Portanto, se um host enviar essa mensagem, presume-se que a porta esteja fechada.
https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Destination_unreachable
fonte
Bem, eu tenho uma opinião diferente:
Portanto, com base nisso, você pode verificar se a conexão entre aeb nessa porta udp é possível. Posteriormente, você pode continuar verificando usando tcpdump.
fonte
10.12.0.12
? Por que é usado nos dois computadores?