У меня есть следующие правила 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 ответ1

0

Попробуйте удалить вторую строку, содержащую правило SNAT. Это правило не нужно.

Кроме того, сколько сетевых карт у вас есть? Находятся ли две машины 192.168.0.2 и 192.168.0.1 в одной сети? Если это так, какой маршрут будет использовать машина 192.168.0.2 для пересылки пакетов, которые она получает через свой порт 8080 tcp? Как бы он направил этот пакет?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .