Я хотел бы спросить, что происходит внутри при перенаправлении с использованием Tproxy.
iptables -t mangle -A PREROUTING -p tcp --dport 443 -j TPROXY --tproxy-mark 1 --on-port 40001
Он находится PREROUTING
в таблице mangle iptables.
Насколько мне известно, решение о маршрутизации принимается после PREROUTING
цепочки.
При перенаправлении с использованием Tproxy, как указано выше.
Пакет через ip rule
& routing table
? Или он идет напрямую на локальный порт 40001?
решение1
У меня та же проблема.
Я хочу знать, что случилось, потому что я обнаружил, что если я использую TPROXY, таблица маршрутизации выглядит нерабочей.
Chain PREROUTING (policy ACCEPT 887 packets, 200K bytes)
pkts bytes target prot opt in out source destination
20M 4462M TPROXY_SRV_eth3.1 all -- * * 0.0.0.0/0 0.0.0.0/0
Chain TPROXY_SRV_eth3.1 (1 references)
pkts bytes target prot opt in out source destination
225 14048 TPROXY tcp -- eth3.1 * 0.0.0.0/0 172.168.2.0/24 tcp dpt:8000 TPROXY redirect 172.168.2.3:8000 mark 0x1/0x1
Таблица маршрутизации с fwmark 1 похожа
local default dev lo scope host
Правило IP:
0: from all lookup local
1: from all fwmark 0x1 lookup 1
10: from all fwmark 0x29 lookup 41
10: from all fwmark 0xc lookup test
32766: from all lookup main
32767: from all lookup default
Я обнаружил, что пакет не проходит через таблицу 1, потому что я не могу перехватить его с помощью tcpdump.
Кто-нибудь может мне помочь?