Я могу пересылать входящий TCP-трафик с устройств IoT, поступающий на порт, на другой сервер назначения с помощью socat, используя эту команду
socat TCP-LISTEN:5050,reuseaddr,fork TCP:some-random-host-in-another-network.com:5035
гдекакой-то-случайный-хост-в-другой-сети.comэто IP-адрес сервера назначения. Единственное, что я хочу изменить, это чтобы сервер назначения видел трафик, поступающий с сервера шлюза, а не с IP-адреса реальных устройств IoT
Учитывая, что IP-таблицы обрабатывают это на уровне ядра, как мне это сделать? Я уже пробовал использовать команды ниже, но это не работает с IPtables. Я размещаю экземпляр Ubuntu на EC2 с портом 5050, разрешенным для входящих через группы безопасности и получения пакетов на tcpdump.
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
Пожалуйста, помогите мне, как настроить iptables, чтобы разрешить множественные подключения на сервере и передавать данные на целевой сервер, изменяя только IP-адрес, видимый целевым сервером как сервер экземпляра/шлюза.