Skip to content

Commit 1ade3ac

Browse files
committed
feat: zapret2 Desktop Supervisor & GUI (v1.0.5.2) with autostart and custom config builder
0 parents  commit 1ade3ac

115 files changed

Lines changed: 132513 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/build.yml‎

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Release Build
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
branches:
8+
- main
9+
- master
10+
workflow_dispatch:
11+
12+
jobs:
13+
build:
14+
name: Build Windows x86_64
15+
runs-on: windows-latest
16+
17+
steps:
18+
- name: Checkout repository
19+
uses: actions/checkout@v4
20+
21+
- name: Setup Node.js
22+
uses: actions/setup-node@v4
23+
with:
24+
node-version: 20
25+
cache: 'npm'
26+
27+
- name: Install Rust toolchain
28+
uses: dtolnay/rust-toolchain@stable
29+
with:
30+
targets: x86_64-pc-windows-msvc
31+
32+
- name: Install dependencies
33+
run: npm ci
34+
35+
- name: Build frontend
36+
run: npm run build
37+
38+
- name: Build Tauri supervisor release binary
39+
run: |
40+
cd src-tauri
41+
cargo build --release
42+
43+
- name: Package Release
44+
shell: pwsh
45+
run: |
46+
New-Item -ItemType Directory -Path ./release-pkg -Force
47+
Copy-Item src-tauri/target/release/zapret2-supervisor.exe ./release-pkg/zapret2.exe
48+
Copy-Item -Path ./bin -Destination ./release-pkg/bin -Recurse -Force
49+
Copy-Item -Path ./lists -Destination ./release-pkg/lists -Recurse -Force
50+
Compress-Archive -Path ./release-pkg/* -DestinationPath ./zapret2-windows-x86_64.zip
51+
52+
- name: Upload Artifact
53+
uses: actions/upload-artifact@v4
54+
with:
55+
name: zapret2-windows-x86_64
56+
path: ./zapret2-windows-x86_64.zip

‎.gitignore‎

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# ==============================================================================
2+
# zapret2 Desktop Supervisor & GUI - Git Ignore Specification
3+
# ==============================================================================
4+
5+
# Node / Frontend Build Outputs
6+
node_modules/
7+
dist/
8+
dist-ssr/
9+
*.local
10+
npm-debug.log*
11+
yarn-debug.log*
12+
yarn-error.log*
13+
pnpm-debug.log*
14+
15+
# Rust / Cargo Build Outputs
16+
src-tauri/target/
17+
**/target/
18+
**/*.rs.bk
19+
*.pdb
20+
21+
# Compiled and upstream binaries, drivers, and dynamic libraries
22+
*.exe
23+
*.dll
24+
*.sys
25+
*.obj
26+
*.lib
27+
*.a
28+
29+
30+
# Upstream Vendor Folders (Kept locally on development workstation)
31+
zapret-discord-youtube-main/
32+
zapret2 releases/
33+
zapret2-master/
34+
35+
# User Local Configuration & State
36+
configs/custom_profiles.json
37+
*.log
38+
*.tmp
39+
out.txt
40+
err.txt
41+
42+
# Workstation helper launcher scripts
43+
Запустить*.*
44+
update_zapret2.bat
45+
46+
# Editor & OS Metadata
47+
.vscode/
48+
.idea/
49+
*.sublime-project
50+
*.sublime-workspace
51+
.DS_Store
52+
Thumbs.db
53+
Desktop.ini

‎CONFIG_GUIDE.md‎

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
# 📖 Руководство по созданию и настройке конфигов zapret2 & winws
2+
3+
Это подробное руководство объясняет, как устроены конфигурации обхода DPI (ТСПУ РКН), что означает каждый параметр командной строки `winws` / `winws2`, и как легко создавать собственные эффективные профили в **zapret2 GUI**.
4+
5+
---
6+
7+
## ⚡ Оглавление
8+
1. [Как работает обход ТСПУ](#1-как-работает-обход-тспу)
9+
2. [Разбор параметров winws](#2-разбор-параметров-winws)
10+
3. [Разделитель `--new` (мульти-профили)](#3-разделитель---new-мульти-профили)
11+
4. [Готовые проверенные шаблоны](#4-готовые-проверенные-шаблоны)
12+
- [YouTube 4K 60FPS](#шаблон-1-youtube-4k-60fps)
13+
- [Discord Voice & STUN](#шаблон-2-discord-voice--stun)
14+
- [Блокировки сайтов (РКН)](#шаблон-3-блокировки-сайтов-ркн)
15+
- [Универсальный комбо-профиль](#шаблон-4-универсальный-комбо-профиль)
16+
5. [Как перенести конфиг из любого .bat файла](#5-как-перенести-конфиг-из-любого-bat-файла)
17+
18+
---
19+
20+
## 1. Как работает обход ТСПУ
21+
22+
Технические средства противодействия угрозам (ТСПУ) анализируют сетевые пакеты по сигнатурам (DPI — Deep Packet Inspection). В частности:
23+
- **HTTPS сайты и YouTube**: фильтр анализирует первый пакет TLS-рукопожатия — `ClientHello`, в котором открытым текстом передаётся имя запрашиваемого домена (SNI, Server Name Indication).
24+
- **YouTube 4K (HTTP/3 QUIC)**: работает по протоколу UDP на 443 порту. ТСПУ глушит или замедляет пакеты `QUIC Initial`.
25+
- **Discord Voice**: использует UDP-трафик на портах `50000-50100` и `19294-19344`.
26+
27+
### Главные методы обхода:
28+
1. **`fake` (Фальшивый пакет)**: перед реальным пакетом отправляется поддельный пакет с невалидным таймштампом (`ts`) или контрольной суммой (`badsum`). Фильтр ТСПУ видит фейк и «запоминает» его, а конечный сервер отбрасывает фейк и принимает ваши настоящие данные.
29+
2. **`multisplit` / `split2` (Разрезание пакета)**: реальный пакет разрезается на несколько кусочков так, чтобы доменное имя в SNI оказалось разорванным между двумя пакетами. Фильтр не может распознать домен в одном кусочке и пропускает соединение.
30+
3. **`seqovl` (Sequence Overlap)**: смещение номеров последовательности TCP. Номер последовательности фейка сдвигается на точное количество байт (`seqovl=681` для YouTube, `seqovl=664` для сайтов), из-за чего сигнатура блокировки в ТСПУ ломается на 100%.
31+
32+
---
33+
34+
## 2. Разбор параметров winws
35+
36+
| Параметр | Назначение | Пример использования |
37+
| :--- | :--- | :--- |
38+
| `--wf-tcp=...` | Порты, которые перехватывает драйвер WinDivert для TCP | `--wf-tcp=80,443,2053,2083,8443` |
39+
| `--wf-udp=...` | Порты, которые перехватывает WinDivert для UDP | `--wf-udp=443,19294-19344,50000-50100` |
40+
| `--filter-tcp=...` | Порты для конкретного правила внутри профиля | `--filter-tcp=443` |
41+
| `--filter-udp=...` | Порты UDP для конкретного правила | `--filter-udp=50000-50100` |
42+
| `--hostlist=...` | Путь к файлу со списком доменов | `--hostlist="lists/list-general.txt"` |
43+
| `--hostlist-exclude=...` | Список доменов-исключений (не фильтровать) | `--hostlist-exclude="lists/list-exclude.txt"` |
44+
| `--dpi-desync=...` | Методы десинхронизации (через запятую) | `--dpi-desync=fake,multisplit` |
45+
| `--dpi-desync-split-pos=...` | Позиция разрезания пакета (1 = после 1 байта) | `--dpi-desync-split-pos=1` |
46+
| `--dpi-desync-split-seqovl=...` | Смещение перекрытия TCP | `--dpi-desync-split-seqovl=681` |
47+
| `--dpi-desync-fooling=...` | Способ маскировки фейка (`ts`, `badsum`, `badseq`) | `--dpi-desync-fooling=ts` |
48+
| `--dpi-desync-repeats=...` | Количество повторов фейкового пакета | `--dpi-desync-repeats=8` |
49+
| `--dpi-desync-fake-tls=...` | Бинарный файл поддельного TLS ClientHello | `--dpi-desync-fake-tls="bin/tls_clienthello_www_google_com.bin"` |
50+
| `--dpi-desync-fake-quic=...` | Бинарный файл поддельного QUIC Initial | `--dpi-desync-fake-quic="bin/quic_initial_www_google_com.bin"` |
51+
| `--dpi-desync-fake-discord=...` | Бинарный файл поддельного UDP Discord | `--dpi-desync-fake-discord="bin/ACTIVE_DISCORD_UDP.bin"` |
52+
| `--new` | **Разделитель правил** (начинает новый блок фильтрации) | `--new` |
53+
54+
---
55+
56+
## 3. Разделитель `--new` (мульти-профили)
57+
58+
Параметр `--new` позволяет в одной команде настроить разный обход для разных сервисов!
59+
60+
Например:
61+
```
62+
[ПРАВИЛО 1: YouTube QUIC]
63+
--filter-udp=443 --dpi-desync=fake --dpi-desync-fake-quic="bin/quic_initial_www_google_com.bin"
64+
--new
65+
[ПРАВИЛО 2: Discord Голос]
66+
--filter-udp=50000-50100 --dpi-desync=fake --dpi-desync-fake-discord="bin/ACTIVE_DISCORD_UDP.bin"
67+
--new
68+
[ПРАВИЛО 3: YouTube 4K TCP]
69+
--filter-tcp=443 --hostlist="lists/list-google.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681
70+
--new
71+
[ПРАВИЛО 4: Сайты РКН]
72+
--filter-tcp=80,443 --hostlist="lists/list-general.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=664
73+
```
74+
75+
---
76+
77+
## 4. Готовые проверенные шаблоны
78+
79+
### Шаблон 1: YouTube 4K 60FPS
80+
Идеально для стабильного воспроизведения YouTube без буферизации на 1080p, 2K и 4K:
81+
```
82+
--wf-tcp=80,443 --wf-udp=443 --filter-udp=443 --hostlist="lists/list-general.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="bin/quic_initial_www_google_com.bin" --new --filter-tcp=443 --hostlist="lists/list-google.txt" --ip-id=zero --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="bin/tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls="bin/tls_clienthello_www_google_com.bin"
83+
```
84+
85+
### Шаблон 2: Discord Voice & STUN
86+
Восстанавливает подключение к голосовым комнатам, веб-камерам и демонстрации экрана:
87+
```
88+
--wf-tcp=2053,2083,2087,2096,8443 --wf-udp=19294-19344,50000-50100 --filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="bin/ACTIVE_DISCORD_UDP.bin" --dpi-desync-fake-stun="bin/ACTIVE_DISCORD_UDP.bin" --dpi-desync-repeats=6 --new --filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="bin/tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls="bin/tls_clienthello_www_google_com.bin"
89+
```
90+
91+
### Шаблон 3: Блокировки сайтов (РКН)
92+
Открывает заблокированные трекеры, библиотеки, форумы и ресурсы:
93+
```
94+
--wf-tcp=80,443 --filter-tcp=80,443 --hostlist="lists/list-general.txt" --hostlist-exclude="lists/list-exclude.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=664 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="bin/tls_clienthello_max_ru.bin" --dpi-desync-fake-tls="bin/stun2.bin" --dpi-desync-fake-tls="bin/tls_clienthello_max_ru.bin" --dpi-desync-fake-http="bin/tls_clienthello_max_ru.bin"
95+
```
96+
97+
### Шаблон 4: Универсальный комбо-профиль
98+
Комплексный профиль «всё в одном» для дома:
99+
```
100+
--wf-tcp=80,443,2053,2083,2087,2096,8443 --wf-udp=443,19294-19344,50000-50100 --filter-udp=443 --hostlist="lists/list-general.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="bin/quic_initial_www_google_com.bin" --new --filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="bin/ACTIVE_DISCORD_UDP.bin" --dpi-desync-fake-stun="bin/ACTIVE_DISCORD_UDP.bin" --dpi-desync-repeats=6 --new --filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="bin/tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls="bin/tls_clienthello_www_google_com.bin" --new --filter-tcp=443 --hostlist="lists/list-google.txt" --ip-id=zero --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="bin/tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls="bin/tls_clienthello_www_google_com.bin" --new --filter-tcp=80,443 --hostlist="lists/list-general.txt" --hostlist-exclude="lists/list-exclude.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=664 --dpi-desync-split-pos=1 --dpi-desync-fooling=ts --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="bin/tls_clienthello_max_ru.bin" --dpi-desync-fake-tls="bin/stun2.bin" --dpi-desync-fake-tls="bin/tls_clienthello_max_ru.bin" --dpi-desync-fake-http="bin/tls_clienthello_max_ru.bin"
101+
```
102+
103+
---
104+
105+
## 5. Как перенести конфиг из любого .bat файла
106+
107+
Если вы нашли рабочий `.bat` файл (например, из репозиториев Flowseal, GoodCheck или форумов):
108+
1. Откройте `.bat` файл в Блокноте.
109+
2. Найдите строку, начинающуюся с `start ... winws.exe ...`.
110+
3. Скопируйте всё, что идёт после `winws.exe` (или даже всю строку целиком со `start`).
111+
4. В **zapret2 GUI** нажмите **«+ Свой конфиг»**.
112+
5. Вставьте скопированный текст в поле **«Параметры запуска»**.
113+
6. Встроенный парсер zapret2 GUI **автоматически**:
114+
- Удалит префиксы `start`, `call`, `/min` и `winws.exe`.
115+
- Заменит переменные `%BIN%` и `%LISTS%` на актуальные пути.
116+
- Корректно обработает кавычки и пробелы.
117+
7. Нажмите кнопку **«Сохранить конфиг»** — ваш профиль готов к запуску в 1 клик!

‎LICENSE‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 zapret2-gui Contributors
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)