Эти пакеты создаются на другом компьютере (отправителе) с помощью сценария Python и подключаются непосредственно к компьютеру Ubuntu (получателю) с помощью проводного соединения. Я проверил правильность пакетов (пересчитаны контрольные суммы и правильная структура).
Конфигурация и операционная система:
Ubuntu 24.04.
Ядро: 6.8.0-47-generic.
Правила, которые я создаю в Ubuntu:
sudo iptables -I INPUT 1 -i enp0s31f6 -p udp --dport 12345 -j LOG --log-prefix "Обнаружен UDP-пакет: "
sudo iptables -I INPUT 2 -i enp0s31f6 -p udp --dport 12345 -j NFQUEUE --queue-num 0
С помощью tcpdump я подтвердил, что UDP-пакеты через порт 12345 достигают сервера .
sudo tcpdump -i enp0s31f6 udp-порт 12345
Код: Выделить всё
tcpdump: listening on enp0s31f6, link-type EN10MB (Ethernet), snapshot length 262144 bytes
13:30:42.736329 IP (tos 0x0, ttl 64, id 2001, offset 0, flags [DF], proto UDP (17), length 40)
10.22.18.54.12345 > 192.168.1.10.12345: UDP, length 12
эхо «Привет, мир» | nc -u localhost 12345
Он работает правильно.
Чтобы проверить, что он работает, я смотрю, сколько пакеты прошли созданное правило. В случае с обратной связью у нас есть 1 пакет, указывающий, что он сработал, и каждый раз, когда я запускаю указанную выше команду, я вижу, что он увеличивается на 1.
В то время как enp0s31f6 правило ни на что не увеличивается, и журнал dmesg абсолютно ничего не показывает.
sudo iptables -L -v -n
Код: Выделить всё
Chain INPUT (policy ACCEPT 39989 packets, 129M bytes)
pkts bytes target prot opt in out source destination
0 0 NFQUEUE 17 -- enp0s31f6 * 0.0.0.0/0 0.0.0.0/0 udp dpt:12345 NFQUEUE num 0
1 40 NFQUEUE 17 -- lo * 0.0.0.0/0 0.0.0.0/0 udp dpt:12345 NFQUEUE num 0
Подробнее здесь: https://stackoverflow.com/questions/791 ... iptables-r