#port 35001 -> x.x.x.247 (34197)
iptables -t nat -A PREROUTING -p udp -d x.x.x.247 --dport 34197 -j DNAT --to-destination x.x.x.246:35001
iptables -t nat -A POSTROUTING -p udp -s localhost --sport 35001 -j SNAT --to-source x.x.x.247:34197
iptables -t nat -A POSTROUTING -p udp -s x.x.x.246 --sport 35001 -j SNAT --to-source x.x.x.247:34197
#port 35000 -> x.x.x.246 (34197)
iptables -t nat -A PREROUTING -p udp -d x.x.x.246 --dport 34197 -j DNAT --to-destination x.x.x.246:35000
iptables -t nat -A POSTROUTING -p udp -s localhost --sport 35000 -j SNAT --to-source x.x.x.246:34197
iptables -t nat -A POSTROUTING -p udp -s x.x.x.246 --sport 35000 -j SNAT --to-source x.x.x.246:34197
Когда я пытаюсь использовать эту конфигурацию, все еще можно (например) получать пакеты на удаленном хосте, которые указывают, что они пришли с порта 35001 на сервере. Как я могу преобразовать пакеты, чтобы все пакеты, исходящие с порта 35001, переводились на новый IP-адрес и порт?
Ответил на свой вопрос: мне нужно было использовать -j REDIRECT вместо -j DNAT