
У меня есть следующие правила iptables на шлюзовой машине (192.168.0.1). Я хочу перенаправить порт 192.168.0.1:80 на 192.168.0.2:8080. Но мне нужно сохранить исходный IP-адрес источника, чтобы исходный сервер мог получить IP-адрес клиента. У меня есть следующие правила, но это изменяет исходный IP-адрес клиента.
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:8080
iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.2 --dport 8080 -j SNAT --to-source 192.168.0.1
Есть ли еще какие-то правила, которые можно использовать в этом сценарии?
решение1
Попробуйте удалить вторую строку, содержащую правило SNAT. Это правило не нужно.
Также сколько у вас сетевых карт? Находятся ли две машины 192.168.0.2 и 192.168.0.1 в одной сети? Если это так, то какой маршрут будет использовать машина 192.168.0.2 для пересылки пакетов, которые она получает на свой порт TCP 8080? Как она будет маршрутизировать этот пакет?