У меня два вопроса.

Вопрос 1: Мой компьютер с Debian имеет интерфейс eth3 с ip 192.168.57.28. Если кто-то пытается подключиться к 192.168.57.28:1234, как мне перенаправить запрос на другой компьютер: 192.168.57.25:80?

Вопрос 2: Если у моей машины Debian два интерфейса: eth3 с 192.168.57.28 и ppp0 с некоторым динамическим IP, и кто-то пытается подключиться через ppp0 через порт 1234, как мне перенаправить запрос на 192.168.57.25:80?

Я попробовал это:

iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination 192.168.57.25:80
echo 1 > /proc/sys/net/ipv4/ip_forward

Но это не работает.

1 ответ1

1

Хорошо, правило выглядит хорошо, но вы должны помнить, что пакеты, сгенерированные на этой машине, не проходят PREROUTING. Если указанная машина, на которой находятся рассматриваемые iptables, также должна перенаправлять свой собственный трафик таким же образом, вам нужно установить то же правило для OUTPUT. Смотрите iptables-extension DNAT, он действителен как в OUTPUT, так и в PREROUTING.

Еще один вопрос, который может оказаться под вопросом, - это фильтрация. Убедитесь, что вы также разрешаете указанному трафику проходить через машину в обоих направлениях.

В-третьих, вам также может понадобиться ЗАПРОСИТЬ трафик к этому месту назначения в POSTROUTING для маршрута домой.

Я не могу сказать, где пакеты потеряны, основываясь на имеющейся информации. Используйте tcpdump, чтобы увидеть, куда летят пакеты.

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