iptables TPROXY получает удар, но не перенаправляет на порт

Я бегу Debian 8 с iptables,

У меня есть следующее правило:

iptables -t mangle -A PREROUTING -p tcp --dport 5000 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 4000

Я просто хочу перенаправить весь трафик с порта назначения 5000 на порт 4000.

Стандарт iptablesREDIRECT не может использоваться в моем случае, так как он изменяет пакет и изменяет исходный порт назначения.

Смотря на iptables -t mangle -nvL Я вижу, что правило сбито:

Chain PREROUTING (policy ACCEPT 5056 packets, 13M bytes)
 pkts bytes target     prot opt in     out     source               destination
   12   720 TPROXY     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:5000 TPROXY redirect 0.0.0.0:4000 mark
 0x1/0x1

Но мой сервис работает в порту 4000 не перехватывает пакеты

У меня простой NodeJS приложение слушает для всех TCP в порту 4000, который не получает никаких packets:

server.listen(4000, () => { console.log('listening on 4000'); });

Кроме того, работает wireshark на TCP порт 4000 на всех интерфейсах ничего не показывает.

1 ответ

Также необходимо настроить правило маршрутизации:

      # 1 is --tproxy-mark parameter in iptables command
ip rule add fwmark 1 lookup 100
ip route add local 0.0.0.0/0 dev lo table 100
Другие вопросы по тегам