Ich kann eingehenden TCP-Verkehr von IoT-Geräten, die einen Port erreichen, mit socat an einen anderen Zielserver weiterleiten, indem ich diesen Befehl verwende
socat TCP-LISTEN:5050,reuseaddr,fork TCP:some-random-host-in-another-network.com:5035
Woirgendein-zufälliger-Host-in-einem-anderen-Netzwerk.comist die IP des Zielservers. Das einzige, was ich ändern möchte, ist, dass der Zielserver den Datenverkehr vom Gateway-Server sieht, nicht von der IP der eigentlichen IoT-Geräte.
Wenn man bedenkt, dass IP-Tabellen dies auf Kernelebene handhaben, wie gehe ich damit um? Ich habe bereits versucht, die folgenden Befehle zu verwenden, aber es funktioniert nicht mit IPtables. Ich hoste eine Ubuntu-Instanz auf EC2 mit Port 5050, der für eingehende Nachrichten über Sicherheitsgruppen und das Abrufen von Paketen über TCPdump zugelassen ist.
iptables -t nat -A PREROUTING -p tcp --dport 5050 -j DNAT --to-destination some-random-host-in-another-network.com:5035
iptables -t nat -A POSTROUTING -d some-random-host-in-another-network.com -p tcp --dport 5035 -j MASQUERADE
Bitte helfen Sie mir, wie iptables eingestellt werden kann, um mehrere Verbindungen auf dem Server zuzulassen und die Daten an den Zielserver zu übertragen, indem nur die vom Zielserver als Instanz-/Gateway-Server gesehene IP geändert wird.