Я создаю устройство tun с помощью ip tuntap add dev tun0 mode tun
, затем хочу установить отметку для всех пакетов, приходящих из tun0 с помощью iptables -t mangle -A OUTPUT -o tun0 -j MARK --set-mark 1
. Но когда я проверяю совпавшие правила с помощью iptables -t mangle -nvL
, не совпало ни одного пакета. Может кто-нибудь помочь мне с этим?
На самом деле я пробовал другие фильтры и ничего не получил. Это как-то связано с конфигурацией tun0?
решение1
-o tun0
являетсявыходФильтр устройств, поэтому ваше правило mangle соответствует пакетам, которые покидают систему через tun0
. Чтобы пометить пакеты, которые приходят из tun0
, используйте -i tun0
, и, возможно, лучше сделать это в PREROUTING
цепочке.
Также обратите внимание, что маркировка пакетов не применяется автоматически к ответным пакетам; это правило будет маркировать только пакеты одного однонаправленного потока (двунаправленное соединение имеет два потока). Для маркировки ответных пакетов используйтеметка соединениямодуль. Если вам нужны метки пакетов, например, для маршрутизации политик, вы можете скопировать метку соединения в метку пакета, для этого есть специальное действие.