Давай разберём команду по частям: iptables -t mangle -A PREROUTING -m set --match-set vpn_sites dst -j MARK --set-mark 42 1. iptables Это утилита для управления таблицами и правилами фильтрации/маркировки пакетов в Linux. 2. -t mangle -t указывает, с какой таблицей работать. Таблица mangle используется для изменения пакетов, например: маркировка, изменение TOS/TTL, CONNMARK и т.д. Другие таблицы: filter — фильтрация (INPUT, OUTPUT, FORWARD) nat — трансляция адресов (DNAT/SNAT) raw — обход соединений для трекинга security — для SELinux/маркировки безопасности 3. -A PREROUTING -A = append, т.е. добавить правило в конец цепочки. PREROUTING — цепочка, куда попадают пакеты сразу после поступления в интерфейс, до маршрутизации. 4. -m set --match-set vpn_sites dst -m set — подключение модуля set (ipset). --match-set vpn_sites dst — проверка, что адрес назначения (dst) пакета есть в ipset с именем vpn_sites. Т.е. правило срабатывает только для пакетов к адресам из этого списка. 5. -j MARK --set-mark 42 -j = jump, т.е. действие, которое выполняется, если условие совпало. MARK — цель (target), позволяет поставить метку пакету. --set-mark 42 — ставит числовую метку 42. Метки могут использоваться для policy routing (ip rule + ip route), iptables-коннекшен, QoS и др.