次のiptablesルールは、eth1から着信するすべてのインターネットトラフィックをlocalhost(ip 127.0.0.1のインターフェースlo)のポート3000にリダイレクトするために使用されます。
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3000
次に、loインターフェイスですべてのトラフィックを記録するようにtcpdumpが設定されます。
tcpdump -i lo -w output.dump
ただし、eth1を介してインターネットトラフィック(ポート80)を送信した後、このトラフィックはtcpdumpによって記録されません。
なぜそうなのかよくわかりません。誰かが光を当ててくれますか?ありがとう。
IPパケットの宛先をローカルホストのアドレスの1つに書き換えているため、アドレスが属しているインターフェイスを介してnotが(lo
あなたの場合)が、スタックによって直接処理されるだけです。したがって、ループバックインターフェイスでリッスンしてキャプチャすることはできません。物理的に存在するインターフェイスのアドレスを選択した場合、これは何の違いもありません。
会話をキャプチャする必要がある場合は、適切なフィルター式を使用することをお勧めします。の線に沿った何か
tcpdump -i lo -i eth1 Host 127.0.0.1 or port 3000
あなたがやりたいことをする必要があります。