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

Перенаправить в локальную сеть без allow_localnet

Я хочу перенаправить входящий внешний трафик на службу, которая прослушивает 127.0.0.1. Перенаправление очень просто - просто:

iptables -t nat -A PREROUTING \
    -d local_ip --dport 80 \
    -j DNAT --to-destination 127.0.0.1:port

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

Как правильно переслать без route_localnet?

В верный способ справиться с этим - заставить приложение прослушивать правильный интерфейс и / или IP-адрес, а не 127.0.0.1, и использовать iptables только для разрешения трафика, а не для использования странных трюков NAT.