ポート Y (UDP) でアプリケーション a を実行しています。アプリケーション A に影響を与えずにミラーを作成し、アプリケーション a でメッセージを受信し、さらに別のポート Y 上のアプリケーション B (同じホスト) でもメッセージを受信することは可能ですか?
私は試してみました
socat udp-listen:x,reuseaddr,fork udp:localhost:y
残念ながら、socat
ポート X でリスナーを起動しましたが、アプリケーション a はメッセージを受信しません。
また、Mangle を使用した解決策もいくつか読みましたが、私のバージョンiptables
ではサポートされていないようです。iptables
2 つの異なるプラットフォームで実行する必要があります。
- Ubuntu 20.04 と iptables v1.8.4 (レガシー)
- SLES12SP5(v1.4.21)
インターフェイスのサブネットで 2 番目の IP アドレスを使用できませんeth0
。
答え1
ああ、これならできるIPtablesで...
そのサイトから:
iptables -t mangle -A PREROUTING -p UDP --dport 162 -j TEE --gateway 127.0.0.2
iptables -t nat -A PREROUTING -d 127.0.0.2 -p UDP --dport 162 -j DNAT --to 127.0.0.1:1162
詳細はリンク先のサイトをご覧ください。