Я использую iptables (PREROUTING) для перенаправления всего трафика TCP на локальный порт.
Теперь я хочу перехватить эти пакеты с помощью программы на Си.Я перепробовал множество вариантов сокетов (UDP / TCP / ...), но не могу подключиться к localhost, используя порт, указанный в iptables.
Я вижу, что все пакеты перенаправляются, но как мне это сделать?захватить этот трафик?
Это мои правила (это Android, но не должно быть никаких различий ...):
Chain PREROUTING (policy ACCEPT 32 packets, 5675 bytes)
pkts bytes target prot opt in out source destination
FIX ME! implement getprotobynumber() bionic/libc/bionic/stubs.c:384
0 0 DNAT tcp -- any any anywhere anywhere tcp dpt:5512 to:192.168.1.107
Chain OUTPUT (policy ACCEPT 56 packets, 3433 bytes)
pkts bytes target prot opt in out source destination
FIX ME! implement getprotobynumber() bionic/libc/bionic/stubs.c:384
0 0 DNAT tcp -- any any anywhere anywhere tcp dpt:5512 to:127.0.0.1
Я уже пытался создать сокет TCP / UDP / RAW (Я также думал о «локальных» / UNIX-сокетах, но какой у него адрес?) И ServerSocket / DatagramServer - но я ничего не получил ...
Спасибо !!