Судя по конкретному выводу, Connection to Connection to 10.1.0.100 53 port [udp/domain] succeeded!
вы используете openbsd-netcat.
Глядя на код для этого теста является привязка к сокету UDP, то есть есть открытое соединение:
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 : "*");
udptest выдает около 3 записей в открытый сокет. Есть примечание, что это не работает для IPv6 и дает сбой после проверки около 100 портов.
Так что, хотя другое предложение может быть действительным, я не думаю, что это происходит в данном конкретном случае.
udptest
и функция, которую я ищу, и она отвечает на мой вопрос. По предоставленной вами ссылке «* udptest () * Сделайте несколько записей, чтобы увидеть, есть ли UDP-порт»На самом деле это не так. Вы можете проверить, выполнив:
Так что с UDP, это не то, что вы действительно можете проверить, если оно не вернет вам информацию.
источник
Существует сообщение ICMP, сигнализирующее, что порт, даже UDP, закрыт. Таким образом, если хост отправляет это сообщение, порт можно считать закрытым.
https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Destination_unreachable
источник
Ну у меня другое мнение
Исходя из этого, вы можете проверить, возможно ли соединение между a и b на этом порту udp. Позже вы можете продолжить проверку с помощью tcpdump.
источник
10.12.0.12
? Почему он используется на обоих компьютерах?