zapret2-mcp 0.7.5 → 0.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.7.9](https://github.com/rcd27/zapret2-mcp/compare/v0.7.8...v0.7.9) (2026-04-02)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **ci-cd:** [@latest](https://github.com/latest) -> [@11](https://github.com/11) в npm ([57347de](https://github.com/rcd27/zapret2-mcp/commit/57347de840f76bdd2578d414961a2e1bc86c5328))
9
+
10
+ ## [0.7.8](https://github.com/rcd27/zapret2-mcp/compare/v0.7.7...v0.7.8) (2026-04-02)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **ci-cd:** вернул registry ([db7f031](https://github.com/rcd27/zapret2-mcp/commit/db7f031f1c694f8c5c9549de915938921be53e59))
16
+
17
+ ## [0.7.7](https://github.com/rcd27/zapret2-mcp/compare/v0.7.6...v0.7.7) (2026-04-02)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **ci-cd:** убран npm install, чтобы при релизе github-action не валился ([ed2b089](https://github.com/rcd27/zapret2-mcp/commit/ed2b08909d45a264ac08ed3a660a57f8ba54e307))
23
+
24
+ ## [0.7.6](https://github.com/rcd27/zapret2-mcp/compare/v0.7.5...v0.7.6) (2026-04-02)
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * **multiple:** фикс ряда статей согласно аудиту ([34511e4](https://github.com/rcd27/zapret2-mcp/commit/34511e4157a2e66f0fcf31e5c3c8a2b2858c2fe4))
30
+
3
31
  ## [0.7.5](https://github.com/rcd27/zapret2-mcp/compare/v0.7.4...v0.7.5) (2026-04-01)
4
32
 
5
33
 
@@ -4,7 +4,7 @@ zapret2-version: v0.9.4.5
4
4
  tags: community, strategies, circular, production, youtube, examples, multidisorder, multisplit, hostfakesplit, syndata, hostfakesplit, seqovl-pattern, googlevideo, three-stream
5
5
  source: community
6
6
  created: 2026-03-29
7
- updated: 2026-03-30
7
+ updated: 2026-04-02
8
8
  ---
9
9
 
10
10
  # Community-стратегии (production-примеры)
@@ -23,7 +23,7 @@ updated: 2026-03-30
23
23
  ```
24
24
  --out-range=-s34228
25
25
  --payload=tls_client_hello
26
- --in-range=-s5556 --lua-desync=circular:fails=3:maxtime=60
26
+ --in-range=-s5556 --lua-desync=circular:fails=3:time=60
27
27
  --in-range=x
28
28
  --lua-desync=<action>:strategy=1
29
29
  --lua-desync=<action>:strategy=2
@@ -35,7 +35,7 @@ updated: 2026-03-30
35
35
 
36
36
  - `--out-range=-s34228` — обрабатывать исходящие пакеты в пределах ~25 TCP-пакетов
37
37
  - `--in-range=-s5556` — обрабатывать входящие до ~5 TCP-пакетов (для circular-детекции сбоев)
38
- - `--lua-desync=circular:fails=3:maxtime=60` — переключение стратегии после 3 неудач или 60 секунд
38
+ - `--lua-desync=circular:fails=3:time=60` — переключение стратегии после 3 неудач; счётчик сбрасывается если последний сбой был более 60 секунд назад
39
39
  - `--in-range=x` — отключить обработку входящих для desync-действий (только для circular-мониторинга)
40
40
  - `:final` — маркер последней стратегии в цепочке circular
41
41
 
@@ -46,12 +46,12 @@ updated: 2026-03-30
46
46
  ```
47
47
  --out-range=-s34228
48
48
  --payload=tls_client_hello
49
- --in-range=-s5556 --lua-desync=circular:fails=3:maxtime=60
49
+ --in-range=-s5556 --lua-desync=circular:fails=3:time=60
50
50
  --in-range=x
51
51
  --lua-desync=multidisorder:pos=1,sniext+1,host+1,midsld-2,midsld,midsld+2,endhost-1:strategy=1
52
- --lua-desync=fake:blob=fake_default_tls:badsum:tls_mod=sni=rzd.ru:repeat=8:strategy=1
52
+ --lua-desync=fake:blob=fake_default_tls:badsum:tls_mod=sni=rzd.ru:repeats=8:strategy=1
53
53
  --lua-desync=multidisorder:pos=1,sniext+1,host+1,midsld-2,midsld,midsld+2,endhost-1:strategy=2
54
- --lua-desync=fake:blob=blob_tls_clienthello_www_google_com:optional:tcp_seq=-10000:tcp_ack=-66000:badsum:tls_mod=rnd,dupsid,sni=rzd.ru:repeat=4:strategy=2:final
54
+ --lua-desync=fake:blob=fake_default_tls:optional:tcp_seq=-10000:tcp_ack=-66000:badsum:tls_mod=rnd,dupsid,sni=rzd.ru:repeats=4:strategy=2:final
55
55
  ```
56
56
 
57
57
  Как работает:
@@ -68,7 +68,7 @@ updated: 2026-03-30
68
68
  ```
69
69
  --out-range=-s34228
70
70
  --payload=tls_client_hello
71
- --in-range=-s5556 --lua-desync=circular:fails=3:maxtime=90
71
+ --in-range=-s5556 --lua-desync=circular:fails=3:time=90
72
72
  --in-range=x
73
73
  --lua-desync=fake:blob=fake_default_tls:tcp_seq=1000000:repeats=1:strategy=1
74
74
  --lua-desync=multisplit:pos=2:strategy=1
@@ -91,7 +91,7 @@ updated: 2026-03-30
91
91
  ```
92
92
  --out-range=-s34228
93
93
  --payload=tls_client_hello
94
- --in-range=-s5556 --lua-desync=circular:fails=3:maxtime=60
94
+ --in-range=-s5556 --lua-desync=circular:fails=3:time=60
95
95
  --in-range=x
96
96
  --lua-desync=fake:blob=fake_default_tls:ip_ttl=2:repeats=1 --payload=empty --out-range=s1<d1 --lua-desync=pktmod:ip_ttl=1:strategy=1
97
97
  --lua-desync=fake:blob=fake_default_tls:ip_ttl=3:repeats=1 --payload=empty --out-range=s1<d1 --lua-desync=pktmod:ip_ttl=1:strategy=2
@@ -121,7 +121,7 @@ Circular перебирает TTL от 2 до 8, затем fallback на badsum
121
121
 
122
122
  ```
123
123
  --payload=tls_client_hello
124
- --lua-desync=fake:blob=blob_tls_clienthello_escapefromtarkov_com:badsum:tcp_ts=-600000:repeats=6
124
+ --lua-desync=fake:blob=fake_default_tls:badsum:tcp_ts=-600000:repeats=6
125
125
  --lua-desync=multidisorder:pos=1,sniext+1,host+1,midsld-2,midsld,midsld+2,endhost-1
126
126
  ```
127
127
 
@@ -153,7 +153,7 @@ Community-практика: YouTube требует **трёх отдельных
153
153
  --payload=tls_client_hello
154
154
  --hostlist-domains=googlevideo.com
155
155
  --out-range=-s34228
156
- --lua-desync=fake:blob=blob_tls_clienthello_www_google_com:badsum:tls_mod=rnd,dupsid,sni=rzd.ru:repeats=4
156
+ --lua-desync=fake:blob=fake_default_tls:badsum:tls_mod=rnd,dupsid,sni=rzd.ru:repeats=4
157
157
  --lua-desync=multidisorder:pos=1,sniext+1,host+1,midsld-2,midsld,midsld+2,endhost-1
158
158
 
159
159
  --new
@@ -174,20 +174,11 @@ Community-практика: YouTube требует **трёх отдельных
174
174
 
175
175
  ```
176
176
  --payload=tls_client_hello
177
- --lua-desync=syndata:blob=blob_syn_packet
177
+ --lua-desync=syndata:blob=fake_default_tls
178
178
  --lua-desync=multisplit:pos=1,sld+1,endsld-2:seqovl=1
179
179
  ```
180
180
 
181
- Часто комбинируется с дублированием пакетов для надёжности:
182
-
183
- ```
184
- --payload=tls_client_hello
185
- --lua-desync=syndata:blob=blob_syn_packet
186
- --lua-desync=multisplit:pos=1,sld+1,endsld-2:seqovl=1:dup=2:dup_cutoff=3
187
- ```
188
-
189
- Используется для googlevideo.com CDN, где стандартные fake-стратегии не проходят. Blob `syn_packet.bin` содержит
190
- специально сформированный SYN payload.
181
+ Используется для googlevideo.com CDN, где стандартные fake-стратегии не проходят.
191
182
 
192
183
  ## Стратегия: hostfakesplit с российскими SNI
193
184
 
@@ -212,7 +203,7 @@ hostfakesplit подставляет в fake-часть split-а домен "б
212
203
 
213
204
  ```
214
205
  --payload=tls_client_hello
215
- --in-range=-s5556 --lua-desync=circular:fails=3:maxtime=60
206
+ --in-range=-s5556 --lua-desync=circular:fails=3:time=60
216
207
  --in-range=x
217
208
  --lua-desync=hostfakesplit:host=rzd.ru:midhost=host-2:seqovl=sniext+3:badsum:strategy=1
218
209
  --lua-desync=hostfakesplit:host=ozon.ru:repeats=4:badsum:strategy=2:final
@@ -225,14 +216,10 @@ overlap "нормальный" российский ClientHello и пропус
225
216
 
226
217
  ```
227
218
  --payload=tls_client_hello
228
- --lua-desync=fakeddisorder:pos=10,midsld:seqovl=336:seqovl_pattern=blob_tls_clienthello_gosuslugi_ru:badsum
219
+ --lua-desync=fakeddisorder:pos=10,midsld:seqovl=336:seqovl_pattern=fake_default_tls:badsum
229
220
  ```
230
221
 
231
- Эффективные blobs для seqovl-pattern:
232
-
233
- - `blob_tls_clienthello_gosuslugi_ru` — Госуслуги
234
- - `blob_tls_clienthello_www_google_com` — Google
235
- - `blob_tls_clienthello_activated` — активационные серверы
222
+ Для seqovl-pattern используются стандартные blob'ы (`fake_default_tls`) или кастомные, загруженные из файла через `name:@path.bin`. Кастомные blob'ы с ClientHello от российских сайтов создаются через захват трафика — в стандартной поставке zapret2 их нет.
236
223
 
237
224
  Большие значения seqovl (336, 654, 681, 726) нужны для DPI, который анализирует паттерны в TCP window. Малые значения (
238
225
  1-2) — для статических DPI, которые не отслеживают TCP-состояние.
@@ -243,7 +230,7 @@ overlap "нормальный" российский ClientHello и пропус
243
230
 
244
231
  ```
245
232
  --payload=tls_client_hello
246
- --lua-desync=fake:blob=0x0F0F0F0F:tls_mod=rnd,dupsid,sni=fonts.google.com:badseq:repeats=4
233
+ --lua-desync=fake:blob=0x0F0F0F0F:tls_mod=rnd,dupsid,sni=fonts.google.com:badsum:repeats=4
247
234
  --lua-desync=multidisorder:pos=7,sld+1
248
235
  ```
249
236
 
@@ -254,10 +241,10 @@ overlap "нормальный" российский ClientHello и пропус
254
241
  - `sni=<domain>` — подмена SNI в fake на указанный домен
255
242
  - Комбинация `rnd,dupsid,sni=...` — максимальная маскировка
256
243
 
257
- Специфичные значения `badseq-increment`:
244
+ Специфичные значения `tcp_seq`:
258
245
 
259
- - `0` — нулевой increment (пакет выглядит валидным для DPI, но отбрасывается сервером по другим причинам)
260
- - `2` — минимальный сдвиг
246
+ - `0` — нулевой сдвиг (пакет выглядит валидным для DPI, но отбрасывается сервером по другим fooling-причинам)
247
+ - `1000000` — стандартный сдвиг
261
248
  - `10000000` — огромный сдвиг, гарантированно вне TCP window
262
249
 
263
250
  Параметр `ip_id=zero` — обнуление IP Identification field. Обманывает DPI, которые используют IP ID для трекинга потока.
@@ -4,7 +4,7 @@ zapret2-version: v0.9.4.5
4
4
  tags: fake, rst, rstack, syndata, fooling, md5sig, badsum, autottl, ttl, ip6, extension headers, tcp_ts_up, tcp_nop_del, ip_id, ipfrag2, synhide, hex-pattern, syn_packet
5
5
  source: deepwiki/bol-van/zapret2, official-docs, community
6
6
  created: 2026-03-25
7
- updated: 2026-03-30
7
+ updated: 2026-04-02
8
8
  revision: 4
9
9
  ---
10
10
 
@@ -19,33 +19,35 @@ revision: 4
19
19
 
20
20
  Отправляет fake-пакет перед реальным. DPI обрабатывает fake и «теряет» реальные данные.
21
21
 
22
- ### rst / rstack
22
+ ### rst
23
23
 
24
24
  Отправляет fake RST, чтобы DPI считал соединение закрытым и прекратил инспекцию.
25
25
 
26
+ Параметр `rstack` — отправить RST+ACK вместо RST:
27
+
28
+ ```
29
+ --lua-desync=rst:rstack
30
+ ```
31
+
26
32
  ### syndata
27
33
 
28
34
  Отправляет данные в SYN-пакете (нестандартное поведение). Сбивает некоторые DPI, которые не ожидают payload в SYN и
29
35
  теряют контекст отслеживания соединения.
30
36
 
31
- Blob `syn_packet.bin` содержит специально сформированный SYN payload. Community-практика — комбинировать syndata с
32
- multisplit для googlevideo.com CDN:
37
+ Community-практика — комбинировать syndata с multisplit для googlevideo.com CDN:
33
38
 
34
39
  ```
35
- --lua-desync=syndata:blob=blob_syn_packet
36
- --lua-desync=multisplit:pos=1,sld+1,endsld-2:seqovl=1:dup=2:dup_cutoff=3
40
+ --lua-desync=syndata:blob=fake_default_tls
41
+ --lua-desync=multisplit:pos=1,sld+1,endsld-2:seqovl=1
37
42
  ```
38
43
 
39
- Дублирование пакетов (`dup=2`) повышает надёжность: если первая копия потерялась или была заблокирована DPI, вторая
40
- пройдёт.
41
-
42
44
  ### fakeddisorder
43
45
 
44
46
  Комбинация fake + disorder в одном действии. Отправляет fake-пакет и переупорядочивает сегменты:
45
47
 
46
48
  ```
47
49
  --lua-desync=fakeddisorder:pos=method+2:tcp_md5
48
- --lua-desync=fakeddisorder:pos=10,midsld:seqovl=336:seqovl_pattern=blob_tls_clienthello_www_google_com:badsum
50
+ --lua-desync=fakeddisorder:pos=10,midsld:seqovl=336:seqovl_pattern=fake_default_tls:badsum
49
51
  ```
50
52
 
51
53
  ### tls_client_hello_clone
@@ -91,38 +93,29 @@ Split с fake на уровне hostname. Позволяет указать ко
91
93
 
92
94
  ## Параметры fake-пакетов
93
95
 
94
- ```
95
- --dpi-desync-fake-tls=<file> # кастомный fake TLS ClientHello
96
- --dpi-desync-fake-http=<file> # кастомный fake HTTP-запрос
97
- ```
98
-
99
- Lua-формат:
96
+ В nfqws2 fake-пакеты задаются через blob-систему в lua-desync:
100
97
 
101
98
  ```
102
99
  --lua-desync=fake:blob=fake_default_tls:tcp_md5
103
100
  --lua-desync=fake:blob=fake_default_http:tcp_md5:tcp_seq=-10000
104
101
  ```
105
102
 
103
+ Стандартные blob'ы: `fake_default_tls` (Firefox ClientHello, SNI=www.microsoft.com), `fake_default_http` (GET www.iana.org), `fake_default_quic` (0x40 + 619×0x00). Кастомные blob'ы загружаются из файлов: `name:@path/to/file.bin`.
104
+
106
105
  ### Inline hex-паттерны вместо blob-файлов
107
106
 
108
107
  Вместо загрузки .bin файла можно указать hex-паттерн прямо в командной строке. Компактнее и не зависит от наличия файлов
109
108
  на диске:
110
109
 
111
110
  ```
112
- --lua-desync=fake:blob=0x0F0F0F0F:badseq:repeats=4
111
+ --lua-desync=fake:blob=0x0F0F0F0F:badsum:repeats=4
113
112
  --lua-desync=fake:blob=0x0F0F0E0F:tls_mod=rnd,dupsid:tcp_md5
114
- --lua-desync=fake:blob=0x00000000:badseq:repeats=11
113
+ --lua-desync=fake:blob=0x00000000:badsum:repeats=11
115
114
  ```
116
115
 
117
116
  Community-практика: hex-паттерны `0x0F0F0F0F` и `0x0F0F0E0F` часто используются как compact fake. Паттерн `0x00000000` —
118
117
  нулевые байты, минимальный fake для brute-force подхода с высоким repeats.
119
118
 
120
- Специальный маркер `!` — пустой/инвертированный fake:
121
-
122
- ```
123
- --lua-desync=fake:blob=!:badseq
124
- ```
125
-
126
119
  Параметры fake в Lua:
127
120
 
128
121
  - `blob=<payload>` — binary payload для fake
@@ -138,19 +131,18 @@ Community-практика: hex-паттерны `0x0F0F0F0F` и `0x0F0F0E0F` ч
138
131
 
139
132
  Fake-пакеты ОБЯЗАНЫ быть отброшены сервером, но обработаны DPI. Fooling обеспечивает это.
140
133
 
141
- ### md5sig
134
+ ### tcp_md5
142
135
 
143
136
  ```
144
- --dpi-desync-fooling=md5sig
137
+ --lua-desync=fake:blob=fake_default_tls:tcp_md5
145
138
  ```
146
139
 
147
- Добавляет фальшивую TCP MD5 signature. Сервер на Linux отбрасывает пакеты с неверной MD5. **Самый надёжный метод** для
148
- Linux-серверов.
140
+ Добавляет фальшивую TCP MD5 signature (Option 19). По умолчанию — 16 случайных байт. Сервер на Linux отбрасывает пакеты с неверной MD5. **Самый надёжный метод** для Linux-серверов.
149
141
 
150
142
  ### badsum
151
143
 
152
144
  ```
153
- --dpi-desync-fooling=badsum
145
+ --lua-desync=fake:blob=fake_default_tls:badsum
154
146
  ```
155
147
 
156
148
  Портит TCP checksum. NIC сервера отбрасывает пакеты с плохой checksum. **НЕ работает**, если у сервера отключён checksum
@@ -159,15 +151,15 @@ offload.
159
151
  ### ip_autottl
160
152
 
161
153
  ```
162
- --dpi-desync-fooling=ip_autottl
154
+ --lua-desync=fake:blob=fake_default_tls:ip_autottl
163
155
  ```
164
156
 
165
- Автоматически подбирает TTL так, чтобы fake «умер» до сервера, но прошёл через DPI. **Лучший TTL-метод** — адаптивный.
157
+ Автоматически подбирает TTL так, чтобы fake «умер» до сервера, но прошёл через DPI. Формат: `ip_autottl=delta,min-max`. **Лучший TTL-метод** — адаптивный.
166
158
 
167
159
  ### ip_ttl=N
168
160
 
169
161
  ```
170
- --dpi-desync-fooling=ip_ttl=N
162
+ --lua-desync=fake:blob=fake_default_tls:ip_ttl=3
171
163
  ```
172
164
 
173
165
  Фиксированный TTL для fakes. **Хрупкий** — зависит от количества хопов до DPI и сервера. Может сломаться при смене
@@ -175,18 +167,14 @@ offload.
175
167
 
176
168
  ### tcp_ts
177
169
 
178
- ```
179
- --dpi-desync-fooling=tcp_ts
180
- ```
181
-
182
- Сдвигает TCP timestamp далеко в прошлое. Сервер отбрасывает устаревшие timestamps.
170
+ Сдвигает TCP timestamp. Сервер отбрасывает устаревшие timestamps.
183
171
 
184
172
  ### Комбинации
185
173
 
186
- Можно комбинировать несколько методов:
174
+ Можно комбинировать несколько методов в одном инстансе:
187
175
 
188
176
  ```
189
- --dpi-desync-fooling=md5sig,badsum
177
+ --lua-desync=fake:blob=fake_default_tls:tcp_md5:badsum
190
178
  ```
191
179
 
192
180
  ## Расширенные fooling-параметры (Lua)
@@ -226,7 +214,7 @@ offload.
226
214
  | `tcp_ts=delta` | Модификация TCP Timestamp option |
227
215
  | `tcp_ts_up` | Переместить Timestamp option в начало списка опций (обходит DPI, которые проверяют timestamp только если он первый) |
228
216
  | `tcp_nop_del` | Удалить NOP-padding (0x01) из TCP options, освобождая место в 40-байтном пространстве |
229
- | `tcp_md5[=hexdata]` | Добавить TCP MD5 Signature (Option 19). По умолчанию — 16 нулевых байт |
217
+ | `tcp_md5[=hexdata]` | Добавить TCP MD5 Signature (Option 19). По умолчанию — 16 случайных байт |
230
218
 
231
219
  ### Checksum и фрагментация
232
220
 
@@ -238,15 +226,15 @@ offload.
238
226
 
239
227
  ## Когда использовать
240
228
 
241
- - **fake + md5sig** — основная комбинация. Работает против большинства stateful DPI.
242
- - **fake + badsum** — альтернатива md5sig. Не всегда работает.
243
- - **fake + ip_autottl** — если md5sig/badsum не помогают. Адаптивный TTL.
229
+ - **fake + tcp_md5** — основная комбинация. Работает против большинства stateful DPI.
230
+ - **fake + badsum** — альтернатива tcp_md5. Не всегда работает.
231
+ - **fake + ip_autottl** — если tcp_md5/badsum не помогают. Адаптивный TTL.
244
232
  - **Избегать ip_ttl=N** — хрупкий, ломается при смене маршрутизации.
245
- - **rst/rstack** — для DPI, который отслеживает состояние TCP-сессий.
233
+ - **rst** (с `rstack` при необходимости) — для DPI, который отслеживает состояние TCP-сессий.
246
234
 
247
235
  ## Типичная ошибка
248
236
 
249
237
  Если fakes доходят до сервера (неправильный fooling), соединение ломается:
250
238
 
251
239
  - Симптомы: connection reset, TLS handshake failure
252
- - Решение: сменить fooling метод (md5sig → badsum → ip_autottl)
240
+ - Решение: сменить fooling метод (tcp_md5 → badsum → ip_autottl)
@@ -4,7 +4,7 @@ zapret2-version: v0.9.4.5
4
4
  tags: lua, scripting, lua-desync, zapret-lib, zapret-antidpi, zapret-auto, zapret-obfs, obfuscation, wireguard, ippxor, udp2icmp, synhide
5
5
  source: deepwiki/bol-van/zapret2, official-docs
6
6
  created: 2026-03-28
7
- updated: 2026-03-28
7
+ updated: 2026-04-02
8
8
  ---
9
9
 
10
10
  # Lua Scripting System
@@ -34,7 +34,7 @@ C-демон (nfqws2/dvtws2/winws2):
34
34
  ### zapret-lib.lua (утилиты)
35
35
 
36
36
  Фундаментальные функции:
37
- - **Dissection**: `dissect_tls`, `dissect_http`, `dissect_url` — разбор протоколов
37
+ - **Dissection**: `http_dissect_req`, `http_dissect_reply`, `dissect_url`, `tls_client_hello_mod` — разбор протоколов
38
38
  - **Реконструкция**: `rawsend_dissect_segmented`, `ipfrag2` — отправка модифицированных пакетов
39
39
  - **Модификация**: `apply_fooling` — применение fooling-параметров (TTL, checksums, etc.)
40
40
 
@@ -4,7 +4,7 @@ zapret2-version: v0.9.4.5
4
4
  tags: circular-strategy, rotation, resilience, multi-strategy, profiles, autohostlist
5
5
  source: official-docs
6
6
  created: 2026-03-25
7
- updated: 2026-03-29
7
+ updated: 2026-04-02
8
8
  ---
9
9
 
10
10
  # Оркестрация стратегий
@@ -16,15 +16,14 @@ Circular — автоматическая ротация между нескол
16
16
  ### Lua-формат
17
17
 
18
18
  ```
19
- --lua-desync=circular:fails=2:maxtime=60
19
+ --lua-desync=circular:fails=3:time=60
20
20
  ```
21
21
 
22
22
  Параметры:
23
- - `fails=N` — порог неудач для смены стратегии (по умолчанию 2)
24
- - `maxtime=N` — временное окно в секундах (по умолчанию 60)
25
- - `time=N` — альтернативное имя для `maxtime`
26
- - `retrans=N` — количество ретрансмиссий до считывания неудачи
27
- - `nld=N` — количество записей в NLD (network latency detection)
23
+ - `fails=N` — порог неудач для смены стратегии (по умолчанию 3)
24
+ - `time=N` — если последний сбой был раньше N секунд назад, счётчик сбрасывается (по умолчанию 60)
25
+ - `retrans=N` — количество ретрансмиссий до считывания неудачи (параметр failure detector)
26
+ - `nld=N` — количество записей NLD для hostkey генератора
28
27
 
29
28
  **Важно:** параметры circular должны быть без пробелов между стратегиями.
30
29
 
@@ -43,7 +42,7 @@ Circular — автоматическая ротация между нескол
43
42
  Каждый `--lua-desync` может быть привязан к конкретной стратегии ротации через `strategy=N`:
44
43
 
45
44
  ```
46
- --lua-desync=circular:fails=2:maxtime=60
45
+ --lua-desync=circular:fails=3:time=60
47
46
  --lua-desync=fake:blob=0x0F0F0F0F:tcp_seq=-10000:tcp_ack=-66000:badsum:strategy=1
48
47
  --lua-desync=multisplit:pos=2,sld:seqovl=620:strategy=1
49
48
  --lua-desync=fake:blob=0x00000000:tcp_ack=-66000:strategy=2
@@ -62,7 +61,7 @@ nfqws2 \
62
61
  --filter-tcp=443 \
63
62
  --filter-l7=tls \
64
63
  --out-range=-s34228 \
65
- --in-range=-s5556 --lua-desync=circular:fails=2:maxtime=60 \
64
+ --in-range=-s5556 --lua-desync=circular:fails=3:time=60 \
66
65
  --in-range=x \
67
66
  --payload=tls_client_hello \
68
67
  --lua-desync=fake:blob=0x0F0F0F0F:tcp_seq=-10000:tcp_ack=-66000:badsum:strategy=1 \
@@ -72,17 +71,6 @@ nfqws2 \
72
71
  --lua-desync=multisplit:pos=1:seqovl=681:ip_id=zero:strategy=3
73
72
  ```
74
73
 
75
- ### Предустановленные circular-конфигурации
76
-
77
- Пакет zapret2 включает предустановленные наборы:
78
-
79
- | Стратегия | Статус | Circular | Назначение |
80
- |---|---|---|---|
81
- | **youtube** | Включена по умолчанию | 14 вариантов | Оптимизирована для YouTube, Google Video |
82
- | **default** | Отключена | 8 вариантов | Универсальная для других сайтов |
83
-
84
- Стратегия `youtube` работает со списком `zapret_hosts_youtube.txt`. Стратегия `default` может быть активирована для обхода блокировок других ресурсов и использует список `zapret_hosts_user.txt` с исключениями из `zapret_hosts_user_exclude.txt`.
85
-
86
74
  ### Range-параметры в circular
87
75
 
88
76
  - `--out-range=-s34228` — обрабатывать исходящие пакеты до ~25 TCP-пакетов (по TCP sequence). Достаточно для полного TLS ClientHello включая большие (YouTube)
@@ -4,7 +4,7 @@ zapret2-version: v0.9.4.5
4
4
  tags: telegram, mtproto, ip-block, dpi, bypass, vpn, strategies
5
5
  source: community
6
6
  created: 2026-03-28
7
- updated: 2026-03-28
7
+ updated: 2026-04-02
8
8
  ---
9
9
 
10
10
  # Telegram и zapret2: границы возможного
@@ -136,7 +136,7 @@ ping -c 3 149.154.167.50
136
136
  # Если timeout → IP заблокирован → нужен VPN
137
137
 
138
138
  # Проверить через blockcheckw (если доступен)
139
- blockcheckw status -d web.telegram.org
139
+ echo "web.telegram.org" > /tmp/tg.txt && blockcheckw status --domain-list /tmp/tg.txt
140
140
  # "IP blocked" → VPN
141
141
  # "DPI blocked" → zapret2 может помочь
142
142
 
@@ -4,7 +4,7 @@ zapret2-version: v0.9.4.5
4
4
  tags: troubleshooting, diagnosis, problems, fixes
5
5
  source: official-docs
6
6
  created: 2026-03-25
7
- updated: 2026-03-29
7
+ updated: 2026-04-02
8
8
  ---
9
9
 
10
10
  # Диагностика проблем zapret2
@@ -28,7 +28,9 @@ updated: 2026-03-29
28
28
 
29
29
  Быстрая проверка через blockcheckw:
30
30
  ```bash
31
- blockcheckw status -d example.com
31
+ # создать файл с доменами для проверки
32
+ echo "example.com" > /tmp/check.txt
33
+ blockcheckw status --domain-list /tmp/check.txt
32
34
  ```
33
35
  Если "IP blocked" → VPN.
34
36
 
@@ -37,9 +39,9 @@ blockcheckw status -d example.com
37
39
  **Симптомы:** Connection reset, TLS handshake failure.
38
40
  **Причина:** Fake-пакеты доходят до сервера и ломают соединение.
39
41
  **Решение:** Сменить fooling метод:
40
- 1. `md5sig` → самый надёжный на Linux-серверах
42
+ 1. `tcp_md5` → самый надёжный на Linux-серверах
41
43
  2. `badsum` → альтернатива (не работает если checksum offload выключен)
42
- 3. `ip_autottl` → адаптивный TTL
44
+ 3. `ip_autottl` → адаптивный TTL (формат: `delta,min-max`)
43
45
  4. Не использовать фиксированный `ip_ttl` — хрупкий
44
46
 
45
47
  ### TTL-проблемы
@@ -54,7 +56,7 @@ blockcheckw status -d example.com
54
56
  **Решение:**
55
57
  1. Если перестала работать ночью — подождать 15-30 минут, возможна реконфигурация ТСПУ
56
58
  2. Запустить `blockcheckw scan` заново для поиска новой стратегии
57
- 3. Для resilience: использовать `--lua-desync=circular:fails=3:maxtime=60` с 3+ стратегиями в ротации
59
+ 3. Для resilience: использовать `--lua-desync=circular:fails=3:time=60` с 3+ стратегиями в ротации
58
60
 
59
61
  Подробнее о ночных реконфигурациях: `tspu/night-reconfig.md`
60
62
 
@@ -75,8 +77,8 @@ modprobe nfnetlink_queue
75
77
  pgrep -f nfqws2
76
78
 
77
79
  # Проверить правила firewall
78
- nft list ruleset | grep -c zapret # или:
79
- iptables -L -n | grep -c NFQUEUE
80
+ nft list table inet zapret2 # или:
81
+ iptables -L -n -t mangle | grep -c NFQUEUE
80
82
 
81
83
  # Проверить конфиг
82
84
  grep NFQWS2_ENABLE /opt/zapret2/config # должно быть =1
@@ -132,7 +134,7 @@ systemctl status zapret2 # systemd
132
134
  /opt/zapret2/init.d/sysv/zapret2 status # sysv
133
135
 
134
136
  # Правила firewall
135
- nft list ruleset | grep -i zapret
137
+ nft list table inet zapret2
136
138
  iptables -L -n -t mangle | grep NFQUEUE
137
139
 
138
140
  # Конфигурация
@@ -4,7 +4,7 @@ zapret2-version: v0.9.4.5
4
4
  tags: troubleshooting, ipv6, bypass, blockcheck, dual-stack, apple, android
5
5
  source: community
6
6
  created: 2026-03-28
7
- updated: 2026-03-28
7
+ updated: 2026-04-02
8
8
  ---
9
9
 
10
10
  # IPv6 ловушка: стратегия работает, а сайты — нет
@@ -28,7 +28,7 @@ updated: 2026-03-28
28
28
 
29
29
  ### blockcheck2 тестирует IPv4
30
30
 
31
- По умолчанию blockcheck2 ищет стратегии для **IPv4** (`IPVS=4`). Найденная стратегия применяется к IPv4-трафику. Но устройство отправляет запросы по **IPv6**, которые идут мимо nfqws2 → попадают под DPI без bypass.
31
+ По умолчанию blockcheck2 ищет стратегии для **IPv4** (`IPVS=4`). blockcheckw также работает только с IPv4 (резолвит только A-записи). Найденная стратегия применяется к IPv4-трафику. Но устройство отправляет запросы по **IPv6**, которые идут мимо nfqws2 → попадают под DPI без bypass.
32
32
 
33
33
  ### zapret2 и IPv6
34
34
 
@@ -120,7 +120,7 @@ IPVS=6 blockcheck2 ...
120
120
  /etc/init.d/zapret2 restart
121
121
  ```
122
122
 
123
- **Важно:** стратегия для IPv4 может не работать для IPv6 и наоборот. Нужно тестировать отдельно.
123
+ **Важно:** стратегия для IPv4 может не работать для IPv6 и наоборот. В zapret2 автоматическое применение TTL к IPv6 убрано — `ip_autottl` и `ip6_autottl` нужно указывать отдельно. Нужно тестировать IPv4 и IPv6 раздельно.
124
124
 
125
125
  ### Вариант 3: Отключить IPv6 только для проблемных устройств
126
126
 
@@ -154,7 +154,7 @@ uci commit dhcp
154
154
 
155
155
  Это заставит все устройства использовать только IPv4 для DNS-резолвинга, при этом IPv6-связность сохраняется для локальной сети.
156
156
 
157
- **Внимание:** ZeroBlock фиксил баг, когда AAAA-запросы ломали FakeIP DNS при выключенном IPv6. Если используете ZeroBlock + sing-box, проверьте что FakeIP rules матчат только `query_type=A`.
157
+ **Внимание:** при использовании FakeIP DNS (sing-box и аналоги) убедитесь, что FakeIP rules матчат только `query_type=A`, иначе AAAA-запросы могут ломать резолвинг.
158
158
 
159
159
  ## Чеклист: стратегия найдена, но не работает
160
160
 
@@ -4,7 +4,7 @@ zapret2-version: v0.9.4.5
4
4
  tags: troubleshooting, openwrt, flowoffload, podkop, zeroblock, nft, firewall, conflicts
5
5
  source: community
6
6
  created: 2026-03-28
7
- updated: 2026-03-28
7
+ updated: 2026-04-01
8
8
  ---
9
9
 
10
10
  # Конфликты zapret2 с другим ПО на OpenWrt
@@ -48,7 +48,7 @@ OpenWrt поддерживает **flow offloading** — ускорение ма
48
48
  FLOWOFFLOAD=software
49
49
  ```
50
50
 
51
- **Рекомендация**: `software` — компромисс между скоростью и совместимостью. zapret сам добавляет exemption rules для flow offload, чтобы пакеты на нужных портах проходили через NFQUEUE.
51
+ **Community-совет**: `software` — компромисс между скоростью и совместимостью. zapret2 при установке `software` или `hardware` создаёт цепочки exemption (`flow_offload_zapret`, `flow_offload_always`) в nftables, чтобы трафик на целевых портах проходил через NFQUEUE, а остальной — offloaded.
52
52
 
53
53
  #### Вариант 2: Отключить системный offload
54
54
 
@@ -66,15 +66,12 @@ uci commit firewall
66
66
 
67
67
  #### Вариант 3: Если zapret управляет offload сам
68
68
 
69
- Если `FLOWOFFLOAD=software` или `FLOWOFFLOAD=hardware` указаны в конфиге zapret, то zapret сам настраивает offload и добавляет exemption rules:
69
+ Если `FLOWOFFLOAD=software` или `FLOWOFFLOAD=hardware` указаны в конфиге zapret2, он создаёт цепочки nftables для управления offload:
70
+ - `flow_offload` — точка входа
71
+ - `flow_offload_zapret` — содержит `return` rules для трафика, который должен пройти через NFQUEUE (exemption от offload)
72
+ - `flow_offload_always` — всё остальное отправляется в `flow add @ft` (offloaded)
70
73
 
71
- ```
72
- # Пример exemption rule, который zapret добавляет в nftables:
73
- add rule inet zapret flow_offload mark and != 0 tcp dport {80,443} ct original packets 1-9
74
- ip daddr != @nozapret return comment "direct flow offloading exemption"
75
- ```
76
-
77
- Это правило говорит: "для пакетов на порты 80/443 в первых 1-9 пакетах соединения — НЕ делать offload, пропустить через обычный путь (и NFQUEUE)".
74
+ Таким образом трафик к целевым доменам/портам проходит обычный путь через nfqws2, а остальной трафик ускоряется через offload.
78
75
 
79
76
  ### Диагностика
80
77
 
@@ -112,18 +109,14 @@ Podkop — популярный инструмент точечной маршр
112
109
  ### Причина
113
110
 
114
111
  Zapret и Podkop оба создают nftables rules с mark-ами:
115
- - **Zapret**: `meta mark | 0x20000000`, `ct mark | 0x40000000`, queue to 200
112
+ - **Zapret2**: `DESYNC_MARK=0x40000000` (meta mark для предотвращения петель), `DESYNC_MARK_POSTNAT=0x20000000` (для postnat-схемы), queue to 200
116
113
  - **Podkop**: свои mangle/proxy rules для перенаправления в sing-box
117
114
 
118
115
  Эти правила пересекаются: трафик может сначала попасть в zapret queue, потом в podkop redirect (или наоборот), что приводит к непредсказуемому поведению.
119
116
 
120
- ### Официальная позиция Podkop
121
-
122
- > Одновременное использование Podkop с zapret или youtubeunblock вызывает сбои, так как нарушает работу схемы FakeIP. Документация не содержит инструкций по настройке сторонних DPI-утилит совместно с Podkop.
117
+ ### Совместимость с Podkop
123
118
 
124
- Ссылки:
125
- - Конфликты: https://podkop.net/docs/troubleshooting/
126
- - Диагностика FakeIP: https://podkop.net/docs/diagnostics/
119
+ Podkop и zapret2 могут работать одновременно при правильном разделении трафика. На практике конфликты чаще всего возникают когда оба инструмента пытаются обработать один и тот же трафик. Рекомендуется разделение по доменам (см. ниже).
127
120
 
128
121
  ### Варианты решения
129
122
 
@@ -159,23 +152,15 @@ config section 'exclusion'
159
152
  3. Если FakeIP работает и всё открывается — можно не трогать
160
153
  4. Если что-то не работает:
161
154
  - Остановить zapret: `/etc/init.d/zapret stop` (или `/etc/init.d/zapret2 stop`)
162
- - Перезапустить firewall: `fw4 restart`
155
+ - Перезапустить firewall: `/etc/init.d/firewall restart`
163
156
  - Проверить без zapret — если заработало, значит конфликт
164
157
  - Решать по варианту 1, 2 или 3
165
158
 
166
159
  ## ZeroBlock (Routerich): совместная работа
167
160
 
168
- ZeroBlock инструмент для Routerich-роутеров (OpenWrt-based), который включает sing-box маршрутизацию и умеет управлять zapret/zapret2.
161
+ > Информация о ZeroBlock получена из community-источников и не верифицирована по публичной документации.
169
162
 
170
- ### Особенности
171
-
172
- - ZeroBlock в версии 0.7.0+ имеет встроенную **диагностику zapret/zapret2**: показывает NFQWS_OPT и strategy-секции с hostlist
173
- - ZeroBlock может автоматически загружать секции конфигурации zapret2 с сервера
174
- - DPI Check в ZeroBlock включает YouTube Stream Check (проверка Innertube API + скачивание 5MB видео), который управляет стратегией `rr_youtube` в zapret2
175
-
176
- ### Рекомендация
177
-
178
- Связка ZeroBlock + zapret2 — штатная конфигурация на Routerich-роутерах. При использовании ZeroBlock следовать его документации по настройке zapret2, а не настраивать вручную.
163
+ ZeroBlock — инструмент для Routerich-роутеров (OpenWrt-based), который включает sing-box маршрутизацию и умеет управлять zapret/zapret2. Связка ZeroBlock + zapret2 — штатная конфигурация на Routerich-роутерах. При использовании ZeroBlock следовать его документации по настройке zapret2.
179
164
 
180
165
  ## Общие рекомендации
181
166
 
@@ -191,13 +176,13 @@ ls -la /etc/rc.d/ | grep -E 'zapret|podkop|sing-box|firewall'
191
176
 
192
177
  ```bash
193
178
  # Все правила zapret
194
- nft list ruleset | grep -i zapret
179
+ nft list ruleset | grep -i zapret2
195
180
 
196
181
  # Все правила с mark
197
182
  nft list ruleset | grep mark
198
183
 
199
184
  # Конкретная таблица zapret
200
- nft list table inet zapret
185
+ nft list table inet zapret2
201
186
  ```
202
187
 
203
188
  ### "Всё упало" — экстренное восстановление
@@ -209,7 +194,7 @@ nft list table inet zapret
209
194
  /etc/init.d/zapret disable
210
195
 
211
196
  # Перезапустить firewall
212
- fw4 restart
197
+ /etc/init.d/firewall restart
213
198
 
214
199
  # Проверить интернет
215
200
  ping -c 3 8.8.8.8
@@ -4,14 +4,14 @@ zapret2-version: v0.9.4.5
4
4
  tags: troubleshooting, quic, udp, youtube, performance, disable-quic, podkop, browser
5
5
  source: community
6
6
  created: 2026-03-28
7
- updated: 2026-03-28
7
+ updated: 2026-04-02
8
8
  ---
9
9
 
10
10
  # QUIC: главный незаметный враг YouTube на роутере
11
11
 
12
12
  ## Что такое QUIC и почему это проблема
13
13
 
14
- QUIC (HTTP/3) — протокол Google поверх UDP на порту 443. Современные браузеры, YouTube-приложения и другие Google-сервисы **предпочитают QUIC** вместо обычного HTTPS (TCP). Проблема в том, что:
14
+ QUIC (HTTP/3) — транспортный протокол поверх UDP на порту 443, стандартизированный IETF (RFC 9000). Широко используется Google, Cloudflare, Meta и другими. Современные браузеры и приложения **предпочитают QUIC** вместо обычного HTTPS (TCP). Проблема в том, что:
15
15
 
16
16
  1. **ТСПУ умеет блокировать/замедлять QUIC** отдельно от HTTPS
17
17
  2. **Стратегии zapret2 для TCP не работают для QUIC** — это совершенно другой протокол
@@ -23,7 +23,7 @@ QUIC (HTTP/3) — протокол Google поверх UDP на порту 443.
23
23
  - YouTube открывается, но видео бесконечно буферизуется или грузится в 480p
24
24
  - Сайты Google грузятся по 20 секунд
25
25
  - "На ПК работает, на телефоне нет" (разные приложения по-разному используют QUIC)
26
- - "В одном браузере работает, в другом нет" (Chrome включает QUIC по умолчанию, Firefox нет)
26
+ - "В одном браузере работает, в другом нет" (все основные браузеры включают QUIC по умолчанию, но поведение fallback различается)
27
27
  - Стратегия zapret2 для TCP работает (`curl` на роутере OK), но YouTube всё равно тормозит
28
28
 
29
29
  ### Почему это происходит
@@ -32,8 +32,8 @@ QUIC (HTTP/3) — протокол Google поверх UDP на порту 443.
32
32
  Без QUIC:
33
33
  Браузер → TCP:443 → nfqws2 обрабатывает → DPI обманут → YouTube работает
34
34
 
35
- С QUIC:
36
- Браузер → UDP:443 (QUIC) → nfqws2 НЕ обрабатывает (нет правил для UDP)
35
+ С QUIC (без UDP-секции в конфиге):
36
+ Браузер → UDP:443 (QUIC) → nfqws2 НЕ обрабатывает (нет секции --filter-udp в конфиге)
37
37
  → ТСПУ распознаёт QUIC → замедление/блокировка
38
38
  → YouTube тормозит
39
39
  ```
@@ -119,33 +119,30 @@ NFQWS2_OPT="
119
119
  ```
120
120
 
121
121
  Но QUIC bypass **сложнее** TCP bypass:
122
- - QUIC зашифрован с первого пакета — нельзя манипулировать SNI
122
+ - QUIC зашифрован с первого пакета — nfqws2 расшифровывает QUIC Initial для извлечения SNI, но манипулировать SNI бессмысленно (DPI тоже расшифровывает)
123
123
  - Основная стратегия — fake packets (отправить поддельный QUIC Initial)
124
124
  - Результат менее предсказуем чем для TCP
125
125
  - Не все ТСПУ одинаково обрабатывают QUIC
126
126
 
127
- ### 3. Custom script quic4all (community)
127
+ ### 3. Отдельная QUIC-секция в конфиге zapret2
128
128
 
129
- Отдельный скрипт для desync всех QUIC-пакетов:
129
+ В zapret2 QUIC-обработка добавляется как отдельная секция через `--new`:
130
130
 
131
- ```bash
132
- # Скрипт quic4all для zapret2 custom.d/
133
- NFQWS_OPT_DESYNC_QUIC="${NFQWS_OPT_DESYNC_QUIC:---payload quic_initial --blob=quic_3:@/opt/zapret2/files/fake/quic_3.bin --lua-desync=fake:blob=quic_3}"
134
-
135
- alloc_dnum DNUM_QUIC4ALL
136
- alloc_qnum QNUM_QUIC4ALL
137
-
138
- zapret_custom_daemons()
139
- {
140
- local opt="--qnum=$QNUM_QUIC4ALL $NFQWS_OPT_DESYNC_QUIC"
141
- do_nfqws $1 $DNUM_QUIC4ALL "$opt"
142
- }
143
- zapret_custom_firewall_nft()
144
- {
145
- local f="udp length >= 264 @ih,0,4 0xC @ih,8,32 0x00000001"
146
- nft_fw_nfqws_post "$f" "$f" $QNUM_QUIC4ALL
147
- }
148
131
  ```
132
+ NFQWS2_OPT="
133
+ --name=https
134
+ --filter-tcp=443 --filter-l7=tls
135
+ --payload=tls_client_hello
136
+ --lua-desync=multisplit:pos=10:seqovl=1
137
+ --new
138
+ --name=quic
139
+ --filter-udp=443 --filter-l7=quic
140
+ --payload=quic_initial
141
+ --lua-desync=fake:blob=fake_default_quic:repeats=11
142
+ "
143
+ ```
144
+
145
+ Доступные blob-ы для QUIC fake: `fake_default_quic`, `quic_initial_www_google_com`, `quic_initial_facebook_com` и др. Количество repeats критично — UDP не гарантирует доставку, для агрессивного DPI может потребоваться 8-11 повторений.
149
146
 
150
147
  ## Частые ошибки
151
148
 
@@ -172,7 +169,7 @@ SmartTV могут использовать свои DNS-серверы и QUIC,
172
169
  ## Чеклист: YouTube тормозит
173
170
 
174
171
  1. [ ] Проверить: `curl -m 5 -I https://www.youtube.com` на роутере — если OK, стратегия TCP работает
175
- 2. [ ] Проверить QUIC: `disable_quic` в podkop / `MODE_QUIC` в zapret
172
+ 2. [ ] Проверить QUIC: `disable_quic` в podkop / наличие секции `--filter-udp=443` в конфиге zapret2
176
173
  3. [ ] Если QUIC не отключён — отключить (самый быстрый фикс)
177
174
  4. [ ] Проверить Private DNS на Android-устройствах
178
175
  5. [ ] Проверить QUIC в браузере: `chrome://flags` → QUIC → Disabled
@@ -4,7 +4,7 @@ zapret2-version: v0.9.4.5
4
4
  tags: troubleshooting, smart-tv, youtube, tls, samsung, tizen, lg, webos, vidaa, platforms
5
5
  source: community
6
6
  created: 2026-03-28
7
- updated: 2026-04-01
7
+ updated: 2026-04-02
8
8
  ---
9
9
 
10
10
  # Smart TV и YouTube: почему стратегия работает на ПК, но не на телевизоре
@@ -95,7 +95,7 @@ VIDAA, WebOS и Tizen агрессивно кешируют приложение
95
95
  --out-range=-s34228
96
96
  --payload=tls_client_hello
97
97
  --lua-desync=multidisorder:pos=1,sniext+1,host+1,midsld-2,midsld,midsld+2,endhost-1
98
- --lua-desync=fake:blob=blob_tls_clienthello_www_google_com:optional:tcp_seq=-10000:tcp_ack=-66000:badsum:tls_mod=rnd,dupsid,sni=rzd.ru:repeat=4
98
+ --lua-desync=fake:blob=fake_default_tls:optional:tcp_seq=-10000:tcp_ack=-66000:badsum:tls_mod=rnd,dupsid,sni=rzd.ru:repeat=4
99
99
  ```
100
100
 
101
101
  Принцип работы:
@@ -115,7 +115,7 @@ NFQWS2_OPT="
115
115
  --payload=tls_client_hello
116
116
  --hostlist-domains=youtube.com,googlevideo.com,youtubei.googleapis.com
117
117
  --lua-desync=multidisorder:pos=1,sniext+1,host+1,midsld-2,midsld,midsld+2,endhost-1
118
- --lua-desync=fake:blob=blob_tls_clienthello_www_google_com:optional:tcp_seq=-10000:tcp_ack=-66000:badsum:tls_mod=rnd,dupsid,sni=rzd.ru:repeat=4
118
+ --lua-desync=fake:blob=fake_default_tls:optional:tcp_seq=-10000:tcp_ack=-66000:badsum:tls_mod=rnd,dupsid,sni=rzd.ru:repeat=4
119
119
  --new
120
120
  --name=other-https
121
121
  --filter-tcp=443 --filter-l7=tls
@@ -3,7 +3,7 @@ title: YouTube Opens But Video Does Not Load
3
3
  zapret2-version: v0.9.4.5
4
4
  tags: youtube, googlevideo, CDN, video, troubleshooting, badsum, aggressive, desktop, three-stream, quic
5
5
  created: 2026-03-29
6
- updated: 2026-03-30
6
+ updated: 2026-04-02
7
7
  source: community, deepwiki/bol-van/zapret2
8
8
  ---
9
9
 
@@ -63,17 +63,17 @@ nft add rule inet zapret2 postrouting_hook udp dport 443 drop
63
63
 
64
64
  ### 3. Проверить hostlist
65
65
 
66
- googlevideo.com должен быть в hostlist:
66
+ googlevideo.com должен быть в hostlist. Проверить через конфиг:
67
67
 
68
68
  ```bash
69
- grep -i googlevideo /opt/zapret2/zapret_hosts_user.txt
70
- ```
71
-
72
- Если нет — добавить:
69
+ # Если используется --hostlist-domains в NFQWS2_OPT:
70
+ grep -i googlevideo /opt/zapret2/config
73
71
 
72
+ # Если используется --hostlist с файлом:
73
+ grep -r googlevideo /opt/zapret2/ipset/
74
74
  ```
75
- googlevideo.com
76
- ```
75
+
76
+ Если нет — добавить `googlevideo.com` в hostlist или в `--hostlist-domains`.
77
77
 
78
78
  ## Решение: агрессивная стратегия для YouTube
79
79
 
@@ -85,7 +85,7 @@ googlevideo.com
85
85
  --out-range=-s34228
86
86
  --payload=tls_client_hello
87
87
  --lua-desync=multidisorder:pos=1,sniext+1,host+1,midsld-2,midsld,midsld+2,endhost-1
88
- --lua-desync=fake:blob=blob_tls_clienthello_www_google_com:optional:tcp_seq=-10000:tcp_ack=-66000:badsum:tls_mod=rnd,dupsid,sni=rzd.ru:repeat=4
88
+ --lua-desync=fake:blob=fake_default_tls:optional:tcp_seq=-10000:tcp_ack=-66000:badsum:tls_mod=rnd,dupsid,sni=rzd.ru:repeat=4
89
89
  ```
90
90
 
91
91
  **Что делает:**
@@ -99,27 +99,27 @@ googlevideo.com
99
99
 
100
100
  ### Вариант 2: circular-стратегия с автоматическим перебором
101
101
 
102
- zapret2 включает предсобранный профиль `youtube` с 14 вариантами стратегий в circular-ротации. Если одна стратегия не
103
- работает — автоматически переключается на следующую.
102
+ Можно настроить circular-оркестратор для автоматической ротации стратегий при отказе:
104
103
 
105
- Включение:
106
-
107
- ```bash
108
- # В config
109
- MODE=nfqws2
110
- NFQWS2_ENABLE=1
111
- # Использовать профиль youtube
112
104
  ```
105
+ --lua-desync=circular:fails=3:time=60
106
+ --lua-desync=multidisorder:pos=1,sniext+1,host+1,midsld:strategy=1
107
+ --lua-desync=fake:blob=fake_default_tls:badsum:strategy=1
108
+ --lua-desync=split2:pos=2:strategy=2
109
+ --lua-desync=fake:blob=fake_default_tls:tcp_md5:strategy=2
110
+ ```
111
+
112
+ Если стратегия 1 набирает 3 неудачи — переключается на стратегию 2 и т.д.
113
113
 
114
114
  ### Вариант 3: найти стратегию через blockcheckw
115
115
 
116
116
  Самый надёжный подход — просканировать что работает именно для вашего провайдера:
117
117
 
118
118
  ```bash
119
- blockcheckw scan --target youtube.com --target googlevideo.com -j 128
119
+ blockcheckw scan -d googlevideo.com -w 128
120
120
  ```
121
121
 
122
- Важно: сканировать именно `googlevideo.com`, а не только `youtube.com`.
122
+ Важно: сканировать именно `googlevideo.com`, а не только `youtube.com`. Флаг `-d` задаёт домен, `-w` — число параллельных воркеров.
123
123
 
124
124
  ## Почему badsum
125
125
 
@@ -128,7 +128,7 @@ blockcheckw scan --target youtube.com --target googlevideo.com -j 128
128
128
  | Метод | Механизм | Для googlevideo |
129
129
  |--------------|---------------------------------------------------|--------------------------------|
130
130
  | `badsum` | Испорченная TCP checksum, NIC сервера отбрасывает | Работает в большинстве случаев |
131
- | `md5sig` | Фальшивая TCP MD5 подпись, сервер отклоняет | Надёжнее на Linux-серверах |
131
+ | `tcp_md5` | Фальшивая TCP MD5 подпись, сервер отклоняет | Надёжнее на Linux-серверах |
132
132
  | `ip_autottl` | TTL = расстояние до DPI, пакет умирает до сервера | Зависит от топологии |
133
133
 
134
134
  `badsum` — наиболее распространённый выбор для YouTube CDN в community-стратегиях.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zapret2-mcp",
3
- "version": "0.7.5",
3
+ "version": "0.7.9",
4
4
  "description": "MCP knowledge server for zapret2 DPI bypass tool and blockcheckw strategy scanner",
5
5
  "license": "MIT",
6
6
  "author": "Stanislav Zemlyakov",