Назад | Перейти на главную страницу

Исключение для перенаправления iptables

Как сделать исключение, чтобы не перенаправлять на порт localhost:?

iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8000

Два варианта:

Вариант 1: исключить пункт назначения localhost из правила:

iptables -t nat -A OUTPUT -p tcp -m tcp ! -d 127.0.0.1 --dport 80 -j DNAT --to-destination 127.0.0.1:8000

Это быстрое и простое, эффективное, но ограниченное решение.

Вариант 2: Сделайте перед этим правило, которое не перенаправляет. Он сопоставит и завершит обработку этой цепочки, поэтому следующие правила не будут выполняться, включая ваш повторный запрос:

iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -d 127.0.0.1 -j ACCEPT
iptables -t nat -A OUTPUT -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8000

Этот вариант более общий и применим к случаю, когда у вас есть список исключений, которые вы не можете выразить вместе в одном правиле.

Можете уточнить, чем вы хотите заниматься? Если я не ошибаюсь, ваше правило действует только на localhost !?

Чтобы иметь "исключения", просто добавьте перед ним ту же строку и измените -j ACCEPT ну и конечно условие исключения.