Обычно у меня есть эта команда для сопоставления локальных портов.
socat TCP4-LISTEN:80,fork,reuseaddr TCP4:127.0.0.1:8080
Поэтому всякий раз, когда клиент обращается к 80-му порту моей машины, на самом деле он обращается к порту 8080.
На самом деле это прокси.
Мне интересно, могу ли я использовать iptables вместо запуска прокси-сервера для достижения той же цели. Например, я попробовал следующую команду, которая не работает.
iptables -t nat -A PREROUTING -d <my-ip> -p tcp --dport 80 -j DNAT --to-destination :8080
ОБНОВИТЬ
Приведенная выше команда должна была сработать, но не сработала, потому что были другие iptables
правила, влияющие на него.
Таким образом, без других правил все следующие 3 команды работают.
iptables -t nat -A PREROUTING -d <my-ip> -p tcp --dport 80 -j DNAT --to-destination <my-ip>:8080
iptables -t nat -A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -d <мой-ip> -p tcp --dport 80 -j DNAT --to-destination <мой-ip>:8080
iptables -t nat -A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -d <мой-ip> -p tcp --dport 80 -j DNAT --назначение <my-ip>:8080
Спасибо @AlexD. Прочитав ваш ответ, я начал тест гораздо более тщательно и понял это. Также спасибо @Ginnungagap, ПЕРЕНАПРАВЛЕНИЕ
цель, которую вы мне показали, более проста и понятна.
Новый вопрос
Теперь у меня есть новый вопрос, основанный на результатах теста, который выглядит как СНАТ
или же МАСКАРАД
цель не нужна в моем случае, почему? я думал СНАТ
является обязательным для ДНКТ
правило.