iptables (PREROUTING) を使用して、すべての TCP トラフィックをローカル ポートにリダイレクトします。
ここで、C プログラムを使用してこれらのパケットをキャプチャしたいと考えています。さまざまなソケットのバリエーション (UDP / TCP / ...) を試しましたが、iptables で指定したポートを使用して localhost に接続できません。
すべてのパケットがリダイレクトされていることを確認できますが、このトラフィックをキャプチャするにはどうすればよいですか?
これらは私のルールです(その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 を作成しようとしましたが、何も受け取りませんでした...
ありがとう!!