У меня есть приложение, которое прослушивает порт 20514:
$ sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 192.168.100.213:20514 0.0.0.0:* 3629/python3
Я вижу пакеты, входящие в мой компьютер с помощью tcpdump
$ sudo tcpdump -i enp0s25 -n -N udp port 20514
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s25, link-type EN10MB (Ethernet), capture size 262144 bytes
15:54:56.832307 IP 172.18.248.3.514 > 192.168.100.213.20514: SYSLOG user.critical, length: 111
iptables is (на данный момент ) позволяя все.Обратите внимание, что он не сообщает о пакетах, которые соответствуют правилу из 172.18.248.0/28, несмотря на то, что мы видели один выше. В любом приведении -P INPUT имеет значение ACCEPT
$ sudo iptables -L -v
Chain INPUT (policy ACCEPT 134 packets, 79373 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- any any 192.168.100.0/24 anywhere tcp dpt:ssh
4745 282K ACCEPT tcp -- any any 10.8.0.0/24 anywhere tcp dpt:ssh
0 0 ACCEPT all -- any any 172.18.248.0/28 anywhere
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 533 packets, 89933 bytes)
pkts bytes target prot opt in out source destination
Chain DOCKER (0 references)
pkts bytes target prot opt in out source destination
Chain DOCKER-ISOLATION-STAGE-1 (0 references)
pkts bytes target prot opt in out source destination
Chain DOCKER-ISOLATION-STAGE-2 (0 references)
pkts bytes target prot opt in out source destination
Chain DOCKER-USER (0 references)
pkts bytes target prot opt in out source destination
Chain LOGACCEPT (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- any any anywhere anywhere LOG level info prefix "INPUT:ACCEPT:"
0 0 ACCEPT all -- any any anywhere anywhere
Таким образом, кажется, что пакеты останавливаются после входа в интерфейс, но до того, как они достигнут межсетевого экрана.
Где еще я могу посмотреть, почему пакеты, входящие в мою машину, не достигают приложение?
Проблема оказалась тем Докером, делал интерфейсы с сетями, которые перекрыли исходный адрес пакетов.
Даже при том, что я убрал всего докера правил, сделанного в IPtables, я закончил тем, что имел необходимость изменить/etc/docker/daemon.json для запуска сетей в другом диапазоне IP. Я затем удалил все свои контейнеры и удалил все сети, которые создал Докер. Может быть менее разрушительный способ выполнить удаление сетевых интерфейсов докера, но я ни к чему не был привязан.
После этого пакеты проникали. Таким образом, это, казалось, было самими сетевыми интерфейсами, которые вмешивались.