Sądząc po konkretnym wyjściu, Connection to Connection to 10.1.0.100 53 port [udp/domain] succeeded!
którego używasz openbsd-netcat.
Patrząc na kod tego testu, należy połączyć się z gniazdem UDP, tzn. Istnieje otwarte połączenie:
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 : "*");
problemy udptest około 3 zapisuje w otwartym gnieździe. Należy zauważyć, że nie działa to w przypadku IPv6 i kończy się niepowodzeniem po sprawdzeniu około 100 portów.
Tak więc, chociaż druga sugestia może być poprawna, nie sądzę, że dzieje się tak w tym konkretnym przypadku.
udptest
jest funkcja, której szukam i odpowiada na moje pytanie. Z podanego linku „* udptest () * Zrób kilka zapisów, aby sprawdzić, czy jest tam port UDP”W rzeczywistości tak nie jest. Możesz to sprawdzić, wykonując:
Tak więc z UDP nie jest to coś, co naprawdę można sprawdzić, chyba że dostarczy ci informacji.
źródło
Komunikat ICMP sygnalizuje, że port, nawet UDP, jest zamknięty. Jeśli więc host wyśle ten komunikat, można założyć, że port jest zamknięty.
https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Destination_unreachable
źródło
Mam inne zdanie:
Na tej podstawie możesz sprawdzić, czy połączenie między aib na tym porcie udp jest możliwe. Później możesz kontynuować sprawdzanie za pomocą tcpdump.
źródło
10.12.0.12
? Dlaczego jest używany na obu komputerach?