Some checks failed
Published content check / validate (push) Failing after 5s
Каждая публикуемая заметка получила callout-шапку со ссылкой на свою страницу wiki.zapret.moe (на самой вики она вырезается транформером RemoveMirrorCallout, видна только на зеркале Obsidian Publish и в Forgejo) и SEO-поле description — 1–2 предложения для meta description обоих сайтов. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
59 lines
No EOL
2.9 KiB
Markdown
59 lines
No EOL
2.9 KiB
Markdown
---
|
||
date:
|
||
tags:
|
||
link:
|
||
aliases:
|
||
img:
|
||
description: "Raw-фильтры WinDivert в Zapret: --wf-raw-part и --wf-raw, отбор пакетов по портам и подсетям через диапазоны ip.DstAddr, примеры для /24 и /16."
|
||
---
|
||
|
||
> [!mirror] Резервное зеркало
|
||
> Актуальная версия этой страницы — на основной вики: [wiki.zapret.moe/Zapret/--wf-raw-part](https://wiki.zapret.moe/Zapret/--wf-raw-part)
|
||
|
||
# Внутренние фильтры WinDivert
|
||
В `zapret\windivert.filter\*.txt` лежат WinDivert raw-фильтры — они отбирают пакеты по L3/L4 (ip/ipv6, tcp/udp, порты, inbound/outbound) и иногда по «сигнатурам» в payload. Доменного имени в IP‑пакетах нет, поэтому напрямую “по домену” в WinDivert‑фильтре обычно не фильтруют.
|
||
|
||
*Не путать их со встроенными [[filter|фильтрами]] Zapret!*
|
||
|
||
Домены: делаются на уровне winws/winws2 через [[hostlist|--hostlist]] / [[hostlist#**`--hostlist-domains`** - Фиксированный список доменов|--hostlist-domains]].
|
||
|
||
IP/подсети: можно фильтровать и в WinDivert‑фильтре (ip.DstAddr, ip.SrcAddr, ipv6.DstAddr, ipv6.SrcAddr), и (часто удобнее) через --ipset.
|
||
|
||
--wf-raw-part в запрете (и --wf-raw) используют обычный язык фильтров WinDivert — это и есть “raw фильтр”.
|
||
|
||
Подсети делать можно, но обычно через диапазон адресов, т.к. в WinDivert нет побитовых операций (маской “& 255.255.255.0” не сделать).
|
||
|
||
Пример raw-part (исходящие на 80/443 TCP и 443 UDP, только в одну подсеть /24):
|
||
```
|
||
outbound and ip and
|
||
(
|
||
(tcp and (tcp.DstPort == 80 or tcp.DstPort == 443)) or
|
||
(udp and udp.DstPort == 443)
|
||
) and
|
||
(ip.DstAddr >= 93.184.216.0 and ip.DstAddr <= 93.184.216.255)
|
||
```
|
||
Несколько подсетей — просто or:
|
||
```
|
||
outbound and ip and tcp and (tcp.DstPort == 443) and
|
||
(
|
||
(ip.DstAddr >= 93.184.216.0 and ip.DstAddr <= 93.184.216.255) or
|
||
(ip.DstAddr >= 151.101.0.0 and ip.DstAddr <= 151.101.255.255)
|
||
)
|
||
```
|
||
|
||
Шпаргалка по диапазонам:
|
||
```
|
||
A.B.C.0/24 -> >= A.B.C.0 и <= A.B.C.255
|
||
A.B.0.0/16 -> >= A.B.0.0 и <= A.B.255.255
|
||
```
|
||
|
||
пример как у LAN: `172.16.0.0/12 -> 172.16.0.0...172.31.255.255`
|
||
|
||
## Зачем это нужно?
|
||
Благодаря фильтрам можно добиться идеальной производительности даже если вы активно раздаете торренты
|
||
|
||
![[Pasted image 20260213230109.png]]
|
||
|
||
Без фильтров иногда программе бывает тяжело
|
||
|
||
![[Pasted image 20260213230115.png]] |