Я бы хотел перенаправить входящий внешний трафик на службу, которая прослушивает на 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-трюки.
.