Ответы пользователя по тегу Linux
  • В чем ошибка настройки перенаправления в iptables?

    @hbfhqvl331
    Вот тут и тут написано как настроить DNAT.

    MASQUERADE не нужен т.к. это SNAT, а тут настраивается DNAT.

    Указывать -m state --state NEW нет смысла.
    Netfilter вроде и так реализует NAT через отслеживание соединений, т.е. он и так применяет правило из таблицы nat только к первому пакету соединения, а у остальных пакетов соединения ip-адреса и порты перезаписываются автоматически.
    Вот тут есть про это:
    At each of the points above, when a packet passes we look up what connection it is associated with. If it's a new connection, we look up the corresponding chain in the NAT table to see what to do with it. The answer it gives will apply to all future packets on that connection.

    Посмотреть текущие отслеживаемые соединения можно с помощью conntrack и cat /proc/net/ip_conntrack

    В общем, должно хватить такого:
    sudo sysctl net.ipv4.ip_forward=1
    sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport $PORT1 -j DNAT --to-destination $IP2:$PORT2

    У меня работает.

    Если никак не получается, можно использовать TRACE (описание ищите здесь) чтобы увидеть где именно в iptables пакеты не проходят.
    Ответ написан