У меня аналогичная проблема: Сохранить исходный IP-адрес после NAT
Мне нужно перенаправить пакеты на определенный порт с ip x.x.x.x на y.y.y.y. (Сервер x.x.x.x находится в другой стране за пределами локальной сети сервера x.x.x.x) Я использовал правила, упомянутые в вопросе выше, но клиентские пакеты, похоже, по-прежнему приходят с IP-адреса перенаправляющего сервера x.x.x.x, а не с IP-адреса клиента.
Вот правила, которые я использую + ufw firewall с открытым портом SSH и разрешенной пересылкой:
FORWARDER_IP=x.x.x.x &&
SERVER_IP=y.y.y.y &&
SERVICE_PORT=12345 &&
TRANSPORT=udp &&
iptables -t nat -A PREROUTING -p $TRANSPORT -d $FORWARDER_IP --dport $PORT -j DNAT --to $SERVER_IP &&
iptables -t nat -A POSTROUTING -p $TRANSPORT -d $SERVER_IP --dport $PORT -j SNAT --to $FORWARDER_IP &&
iptables -t nat -A POSTROUTING -p $TRANSPORT -s $SERVER_IP --dport $PORT -j SNAT --to $FORWARDER_IP
Есть идеи, в чем может быть моя проблема?
Это вообще возможно? Если нет, не могли бы вы порекомендовать мне другой способ сделать это?