Рейтинг:0

Как сделать сопоставление локальных портов с помощью iptables

флаг in

Обычно у меня есть эта команда для сопоставления локальных портов.

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, ПЕРЕНАПРАВЛЕНИЕ цель, которую вы мне показали, более проста и понятна.

Новый вопрос

Теперь у меня есть новый вопрос, основанный на результатах теста, который выглядит как СНАТ или же МАСКАРАД цель не нужна в моем случае, почему? я думал СНАТ является обязательным для ДНКТ правило.

Рейтинг:1
флаг jp

Следующее должно работать

iptables -t nat -A PREROUTING -p tcp -d <ваш-ip> --dport 80 -j DNAT --to-destination <ваш-ip>:8080
Ginnungagap avatar
флаг gu
`-j REDIRECT --to-port 80` избавит вас от необходимости дублировать локальный IP-адрес.
Bruce avatar
флаг in
@Ginnungagap Я не знал о цели `REDIRECT`. Я узнал. Спасибо!
Bruce avatar
флаг in
@АлексД. Спасибо за ваш ответ. Оно работает. Однако на самом деле оригинальная командная строка iptables, опубликованная в моем вопросе, также работает. Это не сработало, потому что на это влияли другие правила iptables. Я собираюсь обновить свой вопрос, чтобы отразить результаты.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.