feat(autotest): --list-all mode; fix GAME placeholders; fix bin refs; docs: new workflow
This commit is contained in:
545
README.md
545
README.md
@@ -2,63 +2,39 @@
|
||||
|
||||
Linux-аналог популярного репозитория [Flowseal/zapret-discord-youtube](https://github.com/Flowseal/zapret-discord-youtube) для обхода DPI (Deep Packet Inspection).
|
||||
|
||||
**Ключевая фича:** `sync_from_upstream.sh` — автоматическое слежение за оригинальным Windows-репозиторием. При обновлении Flowseal скрипт сам скачает новые списки доменов, `hosts` и авто-конвертирует новые `.bat` стратегии в Linux-формат. Подробнее в разделе **Синхронизация upstream**.
|
||||
**Ключевая фича:** `sync_from_upstream.sh` — автоматическое слежение за оригинальным Windows-репозиторием. При обновлении Flowseal скрипт сам скачает новые списки доменов, `hosts` и авто-конвертирует новые `.bat` стратегии в Linux-формат.
|
||||
|
||||
---
|
||||
|
||||
## Важно для пользователей из России
|
||||
|
||||
GitHub заблокирован в РФ. Установщик **автоматически использует** прокси/зеркала, но рекомендуется:
|
||||
|
||||
1. **Если есть VPN/прокси** — самый простой способ:
|
||||
```bash
|
||||
# Вариант A: системный прокси
|
||||
export HTTPS_PROXY=socks5://127.0.0.1:1080
|
||||
sudo ./install.sh
|
||||
|
||||
# Вариант B: proxychains
|
||||
proxychains ./install.sh
|
||||
```
|
||||
|
||||
2. **Если нет VPN на целевой машине** — подготовьте офлайн-пакет:
|
||||
```bash
|
||||
# На машине С интернетом (с VPN):
|
||||
cd /opt/zapret
|
||||
proxychains ./prepare_offline_bundle.sh
|
||||
|
||||
# Перенесите zapret-discord-youtube-linux-bundle.tar.gz
|
||||
# на целевую машину, распакуйте и:
|
||||
sudo ./install.sh --offline
|
||||
```
|
||||
|
||||
3. **Если установка падает на скачивании**:
|
||||
- Проверьте `.env.example` → создайте `.env` с `GITHUB_PROXY=...`
|
||||
- Или передайте прокси через переменную окружения
|
||||
|
||||
Подробнее: раздел **Offline / РФ** внизу.
|
||||
|
||||
---
|
||||
|
||||
## Быстрый старт
|
||||
## Быстрый старт (рекомендуемый workflow)
|
||||
|
||||
```bash
|
||||
# 1. Установка git (один раз)
|
||||
sudo apt install git # Ubuntu/Debian
|
||||
sudo pacman -S git # Arch/Manjaro
|
||||
sudo dnf install git # Fedora
|
||||
|
||||
# 2. Клонирование (БЕЗ sudo — создаёт файлы от текущего пользователя)
|
||||
# 1. Клонирование
|
||||
cd /opt
|
||||
git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
|
||||
cd zapret
|
||||
|
||||
# 3. Установка (одна команда — всё сделает)
|
||||
sudo ./install.sh
|
||||
# 2. Запуск меню управления
|
||||
sudo ./service.sh
|
||||
```
|
||||
|
||||
После `install.sh` сервис запущен и будет автозапускаться.
|
||||
В открывшемся меню:
|
||||
1. **Нажмите `11` (Run Tests)** — скрипт автоматически проверит все стратегии (general, ALT, ALT2, ALT3...) против YouTube и Discord и покажет **список ВСЕХ рабочих**.
|
||||
2. После тестов нажмите `1` (Install Service) и **выберите номер** понравившейся стратегии из списка.
|
||||
3. Сервис установлен и будет автозапускаться при загрузке.
|
||||
|
||||
> **Важно:** Все скрипты (`install.sh`, `setup.sh`, `general*.sh`, `service.sh`, `autotest.sh`, `update.sh`) должны запускаться **от root** (через `sudo`). Сами скрипты проверяют это автоматически.
|
||||
```
|
||||
:: TOOLS
|
||||
10. Run Diagnostics
|
||||
11. Run Tests (find ALL working strategies) ← СНАЧАЛА ЭТО
|
||||
|
||||
:: SERVICE
|
||||
1. Install Service ← ПОТОМ ЭТО
|
||||
2. Remove Services
|
||||
3. Check Status
|
||||
```
|
||||
|
||||
> **Важно:** Все скрипты (`install.sh`, `setup.sh`, `general*.sh`, `service.sh`, `autotest.sh`, `update.sh`) должны запускаться **от root** (через `sudo`).
|
||||
|
||||
---
|
||||
|
||||
@@ -73,7 +49,8 @@ sudo apt install -y git curl make gcc iptables nftables libnetfilter-queue-dev
|
||||
cd /opt
|
||||
git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
|
||||
cd zapret
|
||||
sudo ./install.sh
|
||||
sudo ./service.sh
|
||||
# → 11 для тестов, затем 1 для установки
|
||||
```
|
||||
|
||||
### Arch Linux / Manjaro / EndeavourOS / Garuda / Artix
|
||||
@@ -84,7 +61,7 @@ sudo pacman -Syu --noconfirm git curl make gcc iptables nftables libnetfilter_qu
|
||||
cd /opt
|
||||
git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
|
||||
cd zapret
|
||||
sudo ./install.sh
|
||||
sudo ./service.sh
|
||||
```
|
||||
|
||||
### Fedora / RHEL / CentOS / AlmaLinux / Rocky Linux
|
||||
@@ -95,7 +72,7 @@ sudo dnf install -y git curl make gcc iptables nftables libnetfilter_queue-devel
|
||||
cd /opt
|
||||
git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
|
||||
cd zapret
|
||||
sudo ./install.sh
|
||||
sudo ./service.sh
|
||||
```
|
||||
|
||||
### Alpine Linux
|
||||
@@ -106,7 +83,7 @@ sudo apk add --no-cache git curl make gcc iptables nftables libnetfilter_queue-d
|
||||
cd /opt
|
||||
git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
|
||||
cd zapret
|
||||
sudo ./install.sh
|
||||
sudo ./service.sh
|
||||
```
|
||||
|
||||
### Gentoo / Funtoo
|
||||
@@ -117,7 +94,7 @@ sudo emerge --ask dev-vcs/git net-misc/curl sys-devel/gcc sys-devel/make net-fir
|
||||
cd /opt
|
||||
git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
|
||||
cd zapret
|
||||
sudo ./install.sh
|
||||
sudo ./service.sh
|
||||
```
|
||||
|
||||
### openSUSE / SUSE
|
||||
@@ -128,7 +105,7 @@ sudo zypper install -y git curl make gcc iptables nftables libnetfilter_queue-de
|
||||
cd /opt
|
||||
git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
|
||||
cd zapret
|
||||
sudo ./install.sh
|
||||
sudo ./service.sh
|
||||
```
|
||||
|
||||
### Void Linux
|
||||
@@ -139,7 +116,7 @@ sudo xbps-install -Sy git curl make gcc iptables nftables libnetfilter_queue-dev
|
||||
cd /opt
|
||||
git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
|
||||
cd zapret
|
||||
sudo ./install.sh
|
||||
sudo ./service.sh
|
||||
```
|
||||
|
||||
### NixOS
|
||||
@@ -150,30 +127,111 @@ nix-shell -p git curl gnumake gcc iptables nftables libnetfilter_queue
|
||||
cd /opt
|
||||
git clone https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux.git zapret
|
||||
cd zapret
|
||||
sudo ./install.sh
|
||||
sudo ./service.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Что делает `./install.sh` (шаг за шагом)
|
||||
## Альтернативный способ: install.sh (полный автоустановщик)
|
||||
|
||||
1. **Синхронизация upstream** (`sync_from_upstream.sh`)
|
||||
- Клонирует оригинальный `Flowseal/zapret-discord-youtube`
|
||||
- Мержит свежие `lists/*.txt` (Discord, YouTube, GitHub, Telegram, Steam)
|
||||
- Обновляет `.service/hosts` (статичные IP для GitHub/Telegram)
|
||||
- При необходимости конвертирует новые `.bat` стратегии в `strategies/*.conf`
|
||||
Если `service.sh` кажется сложным, можно запустить всё одной командой:
|
||||
|
||||
2. **Установка зависимостей** (`setup.sh`) — по дистрибутиву
|
||||
```bash
|
||||
sudo ./install.sh
|
||||
```
|
||||
|
||||
3. **Сборка `nfqws`** (`install_nfqws.sh`) — git clone bol-van/zapret, make, fake .bin пакеты
|
||||
Он автоматически:
|
||||
1. Соберёт nfqws
|
||||
2. Запустит тесты
|
||||
3. Установит **первую** рабочую стратегию в systemd
|
||||
|
||||
4. **Автотест** (`autotest.sh --auto`) — перебирает стратегии, находит рабочую, ставит в systemd
|
||||
После этого сервис будет работать сразу и автозапускаться при загрузке.
|
||||
|
||||
---
|
||||
|
||||
## Структура проекта (модульная архитектура)
|
||||
## service.sh — меню управления
|
||||
|
||||
```text
|
||||
```
|
||||
ZAPRET SERVICE MANAGER v1.9.8c-linux
|
||||
----------------------------------------
|
||||
|
||||
:: SERVICE
|
||||
1. Install Service ← выбор и установка стратегии
|
||||
2. Remove Services ← удаление сервиса + остановка
|
||||
3. Check Status ← проверка nfqws и firewall
|
||||
|
||||
:: SETTINGS
|
||||
4. Game Filter [disabled]
|
||||
5. IPSet Filter [none]
|
||||
6. Auto-Update Check [disabled]
|
||||
|
||||
:: UPDATES
|
||||
7. Update IPSet List
|
||||
8. Update Hosts File
|
||||
9. Check for Updates
|
||||
|
||||
:: TOOLS
|
||||
10. Run Diagnostics
|
||||
11. Run Tests (find ALL working strategies) ← тестирует все и показывает рабочие
|
||||
```
|
||||
|
||||
**Workflow:**
|
||||
1. `sudo ./service.sh` → `11` → ждёте завершения тестов → видите список рабочих стратегий
|
||||
2. `1` → вводите номер нужной стратегии → сервис установлен
|
||||
3. `3` → проверяете, что сервис запущен
|
||||
4. Открываете браузер: `youtube.com`, `discord.com`
|
||||
|
||||
**Если стратегия перестала работать:**
|
||||
```bash
|
||||
sudo ./service.sh
|
||||
# 2 — Remove Services (очистить)
|
||||
# 11 — Run Tests (перетестировать)
|
||||
# 1 — Install Service (выбрать другую рабочую)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Стратегии
|
||||
|
||||
| Стратегия | Описание |
|
||||
|-----------|----------|
|
||||
| `general` | Standard multisplit |
|
||||
| `ALT` | Fake fakedsplit + ts fooling |
|
||||
| `ALT2` | Multisplit pos=2 |
|
||||
| `ALT3` | Hostfakesplit (Google/ya.ru) |
|
||||
| `ALT4` | Fake multisplit + badseq |
|
||||
| `ALT5` | **NOT RECOMMENDED** syndata multidisorder |
|
||||
| `ALT6` | Uniform split-seqovl=681 |
|
||||
| `ALT7` | Multisplit + syndata |
|
||||
| `ALT8` | Fake + badseq-increment=2 |
|
||||
| `ALT9` | Hostfakesplit (ozon.ru) |
|
||||
| `ALT10` | Fake + ts fooling |
|
||||
| `ALT11` | Fake multisplit + max_ru pattern |
|
||||
| `FAKE_TLS_AUTO` | FAKE TLS multidisorder |
|
||||
| `FAKE_TLS_AUTO_ALT` | FAKE TLS fakedsplit |
|
||||
| `FAKE_TLS_AUTO_ALT2` | FAKE TLS multisplit badseq |
|
||||
| `FAKE_TLS_AUTO_ALT3` | FAKE TLS + 4pda pattern |
|
||||
| `SIMPLE_FAKE` | Simple fake |
|
||||
| `SIMPLE_FAKE_ALT` | Simple fakedsplit |
|
||||
| `SIMPLE_FAKE_ALT2` | Simple hostfakesplit |
|
||||
|
||||
**Ручной тест всех стратегий:**
|
||||
```bash
|
||||
sudo ./autotest.sh # интерактивно: тестит все и показывает рабочие
|
||||
sudo ./autotest.sh --auto # автомат: найдёт и сразу установит первую рабочую
|
||||
```
|
||||
|
||||
**Ручной запуск конкретной стратегии (без systemd):**
|
||||
```bash
|
||||
sudo ./run_strategy.sh ALT3
|
||||
# Ctrl+C — остановить
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Структура проекта
|
||||
|
||||
```
|
||||
.
|
||||
├── bin/ # nfqws + fake .bin (собирается)
|
||||
├── lib/
|
||||
@@ -186,51 +244,18 @@ sudo ./install.sh
|
||||
│ └── ipset-exclude.txt # Локальные подсети
|
||||
├── strategies/ # Модульные стратегии (.conf)
|
||||
│ └── general.conf # Конфиг стратегии (RULE1=... RULE2=...)
|
||||
│ # Другие .conf появляются автоматически через sync_from_upstream.sh
|
||||
├── utils/
|
||||
│ ├── test_zapret.sh # curl-тесты
|
||||
│ └── targets.txt # Цели
|
||||
├── systemd/ # Юниты и таймеры
|
||||
├── .service/
|
||||
│ ├── version.txt # Версия (x.y.z-linux)
|
||||
│ ├── hosts # Статичные IP (GitHub, Telegram)
|
||||
│ ├── version.txt # Версия
|
||||
│ ├── hosts # Статичные IP
|
||||
│ └── installed_strategy # Какая стратегия в systemd
|
||||
├── general*.sh # Обёртки → run_strategy.sh
|
||||
├── run_strategy.sh # Движок: читает .conf, подставляет %BIN%/%LISTS%, запускает nfqws
|
||||
├── sync_from_upstream.sh # Авто-мердж с Windows-репон
|
||||
├── autotest.sh # Автоподбор рабочей стратегии
|
||||
├── install.sh # Полный установщик (setup + build + autotest + systemd)
|
||||
├── service.sh # Меню управления (аналог service.bat)
|
||||
├── setup.sh # Зависимости по дистрибутиву
|
||||
├── install_nfqws.sh # Сборка nfqws из bol-van/zapret
|
||||
├── ensure_wrappers.sh # Создаёт general_*.sh из strategies/*.conf
|
||||
└── update.sh # Полный pipeline: sync → build → test → install
|
||||
```
|
||||
.
|
||||
├── bin/ # nfqws + fake .bin (собирается)
|
||||
├── lib/
|
||||
│ └── functions.sh # Общие: firewall, цвета, cleanup
|
||||
├── lists/ # Списки доменов и IP
|
||||
│ ├── list-general.txt # Discord, YouTube, GitHub, Telegram, Steam
|
||||
│ ├── list-google.txt # Google/YouTube
|
||||
│ ├── list-exclude.txt # Исключения (банки, госуслуги)
|
||||
│ ├── ipset-all.txt # IP-диапазоны
|
||||
│ └── ipset-exclude.txt # Локальные подсети
|
||||
├── strategies/ # Новое: модульные стратегии
|
||||
│ └── general.conf # Конфиг стратегии (RULE1=... RULE2=...)
|
||||
│ # Другие .conf появляются автоматически через sync_from_upstream.sh
|
||||
├── utils/
|
||||
│ ├── test_zapret.sh # curl-тесты
|
||||
│ └── targets.txt # Цели
|
||||
├── systemd/ # Юниты и таймеры
|
||||
├── .service/
|
||||
│ ├── version.txt # Версия (x.y.z-linux)
|
||||
│ ├── hosts # Статичные IP (GitHub, Telegram)
|
||||
│ └── installed_strategy # Какая стратегия в systemd
|
||||
├── general*.sh # Обёртки → run_strategy.sh
|
||||
├── run_strategy.sh # Движок: читает .conf, подставляет %BIN%/%LISTS%, запускает nfqws
|
||||
├── sync_from_upstream.sh # Авто-мердж с Windows-репон
|
||||
├── autotest.sh # Автоподбор рабочей стратегии
|
||||
├── autotest.sh # Автоподбор рабочей стратегии (все или первая)
|
||||
├── install.sh # Полный установщик (setup + build + autotest + systemd)
|
||||
├── service.sh # Меню управления (аналог service.bat)
|
||||
├── setup.sh # Зависимости по дистрибутиву
|
||||
@@ -239,322 +264,90 @@ sudo ./install.sh
|
||||
└── update.sh # Полный pipeline: sync → build → test → install
|
||||
```
|
||||
|
||||
**Ключевой момент:** стратегии больше не зашиты в код. Они вынесены в `strategies/*.conf` — текстовые файлы, которые автоматически конвертируются из `.bat` при синхронизации.
|
||||
|
||||
---
|
||||
|
||||
## Модульные стратегии (strategies/*.conf)
|
||||
## Важно для пользователей из России
|
||||
|
||||
Вместо 20 скриптов с дублирующимся кодом — **один движок** + **конфигурационные файлы**.
|
||||
GitHub заблокирован в РФ. Установщик **автоматически использует** прокси/зеркала, но рекомендуется:
|
||||
|
||||
Пример `strategies/general.conf`:
|
||||
```
|
||||
# Strategy: general
|
||||
RULE1=--filter-udp=443 --hostlist="%LISTS%/list-general.txt" ... --dpi-desync=fake ...
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun ...
|
||||
RULE3=--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media ...
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%/ipset-all.txt" ...
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%/ipset-all.txt" ...
|
||||
```
|
||||
|
||||
Переменные (подставляются на лету через sed, без envsubst):
|
||||
- `%BIN%` → `bin/`
|
||||
- `%LISTS%` → `lists/`
|
||||
- `%GAME_TCP%` / `%GAME_UDP%` → `1024:65535` (или пусто)
|
||||
|
||||
**Если Flowseal выпускает новую `general (ALT12).bat`:**
|
||||
1. **Если есть VPN/прокси:**
|
||||
```bash
|
||||
sudo ./sync_from_upstream.sh # авто-конвертирует в strategies/ALT12.conf + general_ALT12.sh
|
||||
export HTTPS_PROXY=socks5://127.0.0.1:1080
|
||||
sudo ./install.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Стратегии (general*.sh)
|
||||
|
||||
| Файл | Стратегия | Описание |
|
||||
|------|-----------|----------|
|
||||
| `general.sh` | `general` | Standard multisplit (рекомендуется пробовать первой) |
|
||||
| `general_ALT.sh` | `ALT` | Fake fakedsplit + ts fooling |
|
||||
| `general_ALT2.sh` | `ALT2` | Multisplit pos=2 |
|
||||
| `general_ALT3.sh` | `ALT3` | Hostfakesplit (Google/ya.ru) |
|
||||
| `general_ALT4.sh` | `ALT4` | Fake multisplit + badseq |
|
||||
| `general_ALT5.sh` | `ALT5` | **NOT RECOMMENDED** syndata multidisorder |
|
||||
| `general_ALT6.sh` | `ALT6` | Uniform split-seqovl=681 |
|
||||
| `general_ALT7.sh` | `ALT7` | Multisplit + syndata |
|
||||
| `general_ALT8.sh` | `ALT8` | Fake + badseq-increment=2 |
|
||||
| `general_ALT9.sh` | `ALT9` | Hostfakesplit (ozon.ru) |
|
||||
| `general_ALT10.sh` | `ALT10` | Fake + ts fooling |
|
||||
| `general_ALT11.sh` | `ALT11` | Fake multisplit + max_ru pattern |
|
||||
| `general_FAKE_TLS_AUTO.sh` | `FAKE_TLS_AUTO` | FAKE TLS multidisorder |
|
||||
| `general_FAKE_TLS_AUTO_ALT.sh` | `FAKE_TLS_AUTO_ALT` | FAKE TLS fakedsplit |
|
||||
| `general_FAKE_TLS_AUTO_ALT2.sh` | `FAKE_TLS_AUTO_ALT2` | FAKE TLS multisplit badseq |
|
||||
| `general_FAKE_TLS_AUTO_ALT3.sh` | `FAKE_TLS_AUTO_ALT3` | FAKE TLS + 4pda pattern |
|
||||
| `general_SIMPLE_FAKE.sh` | `SIMPLE_FAKE` | Simple fake |
|
||||
| `general_SIMPLE_FAKE_ALT.sh` | `SIMPLE_FAKE_ALT` | Simple fakedsplit |
|
||||
| `general_SIMPLE_FAKE_ALT2.sh` | `SIMPLE_FAKE_ALT2` | Simple hostfakesplit |
|
||||
|
||||
**Подбор рабочей:**
|
||||
2. **Если нет VPN на целевой машине** — подготовьте офлайн-пакет:
|
||||
```bash
|
||||
sudo ./autotest.sh # интерактивно: тестит, пока не найдёт
|
||||
sudo ./autotest.sh --auto # автомат: найдёт и сразу установит в systemd
|
||||
# На машине С интернетом (с VPN):
|
||||
cd /opt/zapret
|
||||
proxychains ./prepare_offline_bundle.sh
|
||||
|
||||
# Перенесите zapret-discord-youtube-linux-bundle.tar.gz
|
||||
# на целевую машину, распакуйте и:
|
||||
sudo ./install.sh --offline
|
||||
```
|
||||
|
||||
3. **Если установка падает на скачивании:**
|
||||
- Проверьте `.env.example` → создайте `.env` с `GITHUB_PROXY=...`
|
||||
|
||||
---
|
||||
|
||||
## service.sh — меню управления
|
||||
|
||||
Аналог `service.bat` из Windows-версии:
|
||||
|
||||
```
|
||||
:: SERVICE
|
||||
1. Install Service — выбор стратегии + systemd unit
|
||||
2. Remove Services — удаление unit + остановка nfqws
|
||||
3. Check Status — проверка nfqws и firewall rules
|
||||
|
||||
:: SETTINGS
|
||||
4. Game Filter — вкл/выкл обход портов >1024
|
||||
5. IPSet Filter — none / loaded / any
|
||||
6. Auto-Update Check — вкл/выкл автообновление
|
||||
|
||||
:: UPDATES
|
||||
7. Update IPSet List — обновить список IP
|
||||
8. Update Hosts File — показать hosts и предложить добавить в /etc/hosts
|
||||
9. Check for Updates — проверить версию (внутренняя)
|
||||
|
||||
:: TOOLS
|
||||
10. Run Diagnostics — зависимости, ядерный модуль, DNS
|
||||
11. Run Tests — curl-проверка Discord/YouTube
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## update.sh — автообновление (pipeline)
|
||||
## update.sh — автообновление
|
||||
|
||||
```bash
|
||||
# Полный pipeline: sync upstream → rebuild → test → install
|
||||
sudo ./update.sh # интерактивно
|
||||
sudo ./update.sh --auto # для cron: тихий режим, только если upstream изменился
|
||||
sudo ./update.sh --auto # для cron: тихий режим
|
||||
sudo ./update.sh --full-auto # форсировать пересборку + перетестирование
|
||||
sudo ./update.sh --help # справка
|
||||
```
|
||||
|
||||
**Когда использовать `--full-auto`:**
|
||||
- После обновления дистрибутива/ядра (может сломать бинарный совместимость `nfqws`)
|
||||
- Если `nfqws` падает с segfault (пересборка с безопасными флагами)
|
||||
- Если установка новой стратегии не работает
|
||||
|
||||
**Что делает при обновлении Flowseal:**
|
||||
```
|
||||
Step 0: sync_from_upstream.sh
|
||||
→ скачивает новые lists, hosts, версию
|
||||
→ если Flowseal выпустил новый .bat — авто-конвертирует в .conf + .sh
|
||||
|
||||
Step 1: Rebuild nfqws
|
||||
→ пересобирает из исходников
|
||||
|
||||
Step 2: Auto-test
|
||||
→ перетестирует все стратегии (включая новые)
|
||||
|
||||
Step 3: Install to systemd
|
||||
→ ставит лучшую рабочую в автостарт
|
||||
```
|
||||
- После обновления дистрибутива/ядра
|
||||
- Если `nfqws` падает с segfault
|
||||
- Если текущая стратегия перестала работать
|
||||
|
||||
---
|
||||
|
||||
## Синхронизация upstream (`sync_from_upstream.sh`)
|
||||
|
||||
Отдельный скрипт для ручного мержа с оригиналом. Не требует пересборки nfqws.
|
||||
## Troubleshooting
|
||||
|
||||
**nfqws падает с segfault:**
|
||||
```bash
|
||||
sudo ./sync_from_upstream.sh
|
||||
# Вывод:
|
||||
# [OK] lists/list-general.txt (новые домены GitHub/Telegram)
|
||||
# [OK] .service/hosts (новые статичные IP)
|
||||
# [NEW] Detected upstream strategy: general (ALT12).bat → ALT12.conf
|
||||
# [OK] REBUILD NEEDED: run ./update.sh
|
||||
sudo ./update.sh --full-auto
|
||||
# Пересобирает с -O0 (без оптимизаций)
|
||||
```
|
||||
|
||||
Если видите `REBUILD NEEDED` (exit 2) — запускайте `sudo ./update.sh` или `sudo ./install.sh`.
|
||||
|
||||
**systemd таймер для ежедневного автообновления:**
|
||||
```bash
|
||||
sudo cp systemd/zapret-update.timer /etc/systemd/system/
|
||||
sudo cp systemd/zapret-update.service /etc/systemd/system/
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable --now zapret-update.timer
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Security — hosts для заблокированных ресурсов
|
||||
|
||||
Проект включает `.service/hosts` со статичными IP, чтобы обойти DNS-блокировки:
|
||||
|
||||
- **GitHub**: `raw.githubusercontent.com`, `avatars.githubusercontent.com`, `gist.github.com`
|
||||
- **Telegram**: `t.me`, `telegram.org`, `web.telegram.org`, `api.telegram.org`
|
||||
- **Discord media**: голосовые каналы
|
||||
|
||||
Добавить в `/etc/hosts`:
|
||||
**Стратегия перестала работать:**
|
||||
```bash
|
||||
sudo ./service.sh
|
||||
# → 8. Update Hosts File
|
||||
# 2 — Remove Services
|
||||
# 11 — Run Tests (перетестировать все)
|
||||
# 1 — Install Service (выбрать другую)
|
||||
```
|
||||
|
||||
Или вручную:
|
||||
**Discord не работает, хотя YouTube работает:**
|
||||
```bash
|
||||
cat .service/hosts | sudo tee -a /etc/hosts
|
||||
# Добавьте домены в пользовательский список
|
||||
echo "discord.gg" >> lists/list-general-user.txt
|
||||
sudo systemctl restart zapret
|
||||
```
|
||||
|
||||
Рекомендуется также включить **Secure DNS** (DoH/DoT):
|
||||
- Chrome: `chrome://settings/security` → Secure DNS
|
||||
- Firefox: `about:preferences#privacy` → DNS-over-HTTPS
|
||||
- systemd-resolved: `resolvectl dns eth0 1.1.1.1`
|
||||
|
||||
---
|
||||
|
||||
## Ручное управление (если автоматика не подошла)
|
||||
**Steam не запускается:**
|
||||
- Включите Game Filter: `sudo ./service.sh` → `4`
|
||||
- Или добавьте порты Steam в `lists/list-general-user.txt`
|
||||
|
||||
**YouTube работает, но страница грузится медленно:**
|
||||
```bash
|
||||
cd /opt/zapret
|
||||
|
||||
# Запуск конкретной стратегии
|
||||
sudo ./general.sh # если не работает — Ctrl+C
|
||||
sudo ./general_ALT.sh # пробуем следующую
|
||||
# ... и так до 20 стратегий
|
||||
|
||||
# Меню
|
||||
sudo ./service.sh
|
||||
|
||||
# Обновление (sync + rebuild + test + install)
|
||||
sudo ./update.sh
|
||||
sudo ./update.sh --full-auto
|
||||
```
|
||||
|
||||
### Если autotest показывает "nfqws did not start" / ошибка 0000
|
||||
|
||||
Это значит `nfqws` не удалось запуститься. Самые частые причины:
|
||||
|
||||
1. **Не хватает root-прав** — запускайте ВСЕ скрипты через `sudo`
|
||||
2. **Отсутствуют fake .bin файлы** — пересоберите: `sudo ./install_nfqws.sh`
|
||||
3. **nfnetlink_queue не загружен** — `sudo modprobe nfnetlink_queue`
|
||||
4. **iptables/nftables конфликт** — `sudo ./service.sh → 2. Remove Services`, затем `sudo ./general.sh`
|
||||
5. **nfqws падает с segfault** — пересоберите с безопасными флагами: `sudo ./update.sh --full-auto`
|
||||
- Скрипт автоматически выключит `-flto=auto` и `--gc-sections`, которые вызывают крах на некоторых системах
|
||||
|
||||
### Если curl-тесты падают, но nfqws запущен
|
||||
|
||||
1. Включите **Secure DNS** (DoH/DoT) — провайдер блокирует по DNS
|
||||
2. Добавьте `.service/hosts` в `/etc/hosts` (`sudo ./service.sh → 8`)
|
||||
3. Попробуйте стратегии вручную — у разных провайдеров работают разные
|
||||
|
||||
---
|
||||
|
||||
## Требования
|
||||
|
||||
- Linux с `iptables` или `nftables`
|
||||
- Ядерный модуль `nfnetlink_queue` (загрузится автоматически)
|
||||
- `git`, `make`, `gcc`, `curl`
|
||||
- **Root-доступ** — все скрипты (`install.sh`, `setup.sh`, `general*.sh`, `service.sh`, `autotest.sh`, `update.sh`) проверяют это автоматически и показывают `sudo $0`, если запущены без прав
|
||||
|
||||
---
|
||||
|
||||
## Работа в России / Offline-режим
|
||||
|
||||
### Почему нужен прокси или offline-бандл
|
||||
|
||||
- `github.com` заблокирован в РФ
|
||||
- Оригинальный репозиторий лежит на GitHub (Flowseal/zapret-discord-youtube)
|
||||
- Исходники `nfqws` тоже на GitHub (bol-van/zapret)
|
||||
- Наш проект на **Gitea**, поэтому клонирование работает, но внутренние скачивания (lists, hosts, bol-van/zapret) — используют GitHub
|
||||
|
||||
### Вариант 1: Установка с VPN/прокси (рекомендуется)
|
||||
|
||||
```bash
|
||||
# Системный прокси
|
||||
export HTTPS_PROXY=socks5://127.0.0.1:1080
|
||||
export HTTP_PROXY=socks5://127.0.0.1:1080
|
||||
sudo ./install.sh
|
||||
|
||||
# Или proxychains
|
||||
proxychains ./install.sh
|
||||
```
|
||||
|
||||
Также можно настроить `~/.bashrc`:
|
||||
```bash
|
||||
echo 'export HTTPS_PROXY=socks5://127.0.0.1:1080' >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
```
|
||||
|
||||
### Вариант 2: Offline-бандл (без интернета на целевой машине)
|
||||
|
||||
На машине **с интернетом** (например, у друга, или с VPN на работе):
|
||||
|
||||
```bash
|
||||
cd /opt/zapret
|
||||
proxychains ./prepare_offline_bundle.sh
|
||||
```
|
||||
|
||||
Получите файл: `zapret-discord-youtube-linux-bundle.tar.gz`
|
||||
|
||||
На машине **без интернета**:
|
||||
```bash
|
||||
cd /opt
|
||||
sudo tar -xzf zapret-discord-youtube-linux-bundle.tar.gz
|
||||
cd zapret-bundle-*/installed-scripts
|
||||
sudo ./install.sh --offline
|
||||
```
|
||||
|
||||
Бандл содержит:
|
||||
- Исходники `bol-van/zapret` (для сборки nfqws)
|
||||
- `lists/*.txt` (свежие домены)
|
||||
- `.service/hosts` (статичные IP)
|
||||
- Все скрипты и стратегии
|
||||
|
||||
### Вариант 3: Установка на Windows и перенос в Linux
|
||||
|
||||
1. Скачать репозиторий на Windows (где VPN работает)
|
||||
2. Перенести на Linux через флешку/сеть
|
||||
3. На Linux запустить `sudo ./install.sh --offline`
|
||||
|
||||
### Если GitHub заблокирован — поведение скриптов
|
||||
|
||||
| Скрипт | Поведение при отсутствии интернета |
|
||||
|--------|-----------------------------------|
|
||||
| `install.sh` | Предупреждает, спрашивает, можно запустить `--offline` |
|
||||
| `sync_from_upstream.sh` | Переключается в offline-режим, использует `.bundle/` |
|
||||
| `update.sh` | Если sync не удался — сообщает и выходит |
|
||||
| `install_nfqws.sh` | Предлагает proxychains, `--offline`, или `prepare_offline_bundle.sh` |
|
||||
|
||||
### Настройка прокси через .env
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
nano .env
|
||||
```
|
||||
|
||||
```
|
||||
GITHUB_PROXY=socks5://127.0.0.1:1080
|
||||
```
|
||||
|
||||
Скрипты автоматически прочитают `.env` при запуске.
|
||||
|
||||
### Обновление при заблокированном GitHub
|
||||
|
||||
```bash
|
||||
# С VPN/proxy на целевой машине:
|
||||
sudo ./update.sh --full-auto
|
||||
|
||||
# Или через proxychains:
|
||||
proxychains ./update.sh --full-auto
|
||||
# 6 — Auto-Update Check → вкл
|
||||
# 9 — Check for Updates → обновить стратегии
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Лицензия
|
||||
## Автор и лицензия
|
||||
|
||||
Linux-адаптация: [Stitch505](https://giteas.stitch505.su/Stitch505)
|
||||
Оригинальные стратегии: [Flowseal](https://github.com/Flowseal/zapret-discord-youtube)
|
||||
Движок nfqws: [bol-van/zapret](https://github.com/bol-van/zapret)
|
||||
|
||||
MIT License.
|
||||
|
||||
**Авторы:**
|
||||
- [bol-van](https://github.com/bol-van) — оригинальный zapret
|
||||
- [Flowseal](https://github.com/Flowseal) — Windows-обёртка и стратегии
|
||||
- Linux-адаптация — [Gitea](https://giteas.stitch505.su/Stitch505/zapret-discord-youtube-linux)
|
||||
|
||||
261
autotest.sh
261
autotest.sh
@@ -1,62 +1,35 @@
|
||||
#!/bin/bash
|
||||
# autotest.sh - Automatic strategy tester v2
|
||||
# Iterates through all strategies, checks connectivity, suggests installation
|
||||
# autotest.sh - Automatic strategy tester v3
|
||||
# Modes: --auto, --list-all, interactive
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/lib/functions.sh"
|
||||
|
||||
# Test targets (must be accessible when bypass works)
|
||||
TEST_URLS=(
|
||||
"https://www.youtube.com|YouTube"
|
||||
"https://discord.com|Discord"
|
||||
"https://discordapp.com|DiscordApp"
|
||||
)
|
||||
|
||||
# Strategy order (most common first)
|
||||
STRATEGIES=(
|
||||
general
|
||||
ALT
|
||||
ALT2
|
||||
ALT3
|
||||
ALT4
|
||||
ALT6
|
||||
ALT7
|
||||
ALT8
|
||||
ALT9
|
||||
ALT10
|
||||
ALT11
|
||||
FAKE_TLS_AUTO
|
||||
FAKE_TLS_AUTO_ALT
|
||||
FAKE_TLS_AUTO_ALT2
|
||||
FAKE_TLS_AUTO_ALT3
|
||||
SIMPLE_FAKE
|
||||
SIMPLE_FAKE_ALT
|
||||
SIMPLE_FAKE_ALT2
|
||||
ALT5 # NOT RECOMMENDED, last
|
||||
general ALT ALT2 ALT3 ALT4 ALT6 ALT7 ALT8 ALT9 ALT10 ALT11
|
||||
FAKE_TLS_AUTO FAKE_TLS_AUTO_ALT FAKE_TLS_AUTO_ALT2 FAKE_TLS_AUTO_ALT3
|
||||
SIMPLE_FAKE SIMPLE_FAKE_ALT SIMPLE_FAKE_ALT2 ALT5
|
||||
)
|
||||
|
||||
# Test a single URL
|
||||
test_url() {
|
||||
local url="$1"
|
||||
local timeout=8
|
||||
local code
|
||||
local url="$1" timeout=8 code
|
||||
code=$(curl -o /dev/null -s -w "%{http_code}" --max-time "$timeout" -L "$url" 2>/dev/null)
|
||||
if [[ "$code" == "200" ]] || [[ "$code" == "301" ]] || [[ "$code" == "302" ]] || [[ "$code" == "307" ]]; then
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
[[ "$code" == "200" || "$code" == "301" || "$code" == "302" || "$code" == "307" ]]
|
||||
}
|
||||
|
||||
# Test all targets for a strategy
|
||||
test_strategy() {
|
||||
local passed=0
|
||||
local total=${#TEST_URLS[@]}
|
||||
|
||||
local passed=0 total=${#TEST_URLS[@]}
|
||||
echo " [*] Testing connectivity..."
|
||||
for entry in "${TEST_URLS[@]}"; do
|
||||
IFS='|' read -r url name <<< "$entry"
|
||||
IFS="|" read -r url name <<< "$entry"
|
||||
if test_url "$url"; then
|
||||
echo " $(print_green "[OK]") $name"
|
||||
((passed++))
|
||||
@@ -64,48 +37,30 @@ test_strategy() {
|
||||
echo " $(print_red "[FAIL]") $name"
|
||||
fi
|
||||
done
|
||||
|
||||
echo " [*] Result: $passed/$total passed"
|
||||
if [[ "$passed" -eq "$total" ]]; then
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
[[ "$passed" -eq "$total" ]]
|
||||
}
|
||||
|
||||
# Run a strategy with timeout
|
||||
run_strategy_test() {
|
||||
local strategy="$1"
|
||||
local strategy_path="$SCRIPT_DIR/run_strategy.sh"
|
||||
local strategy_name="$strategy"
|
||||
|
||||
local strategy="$1" strategy_path="$SCRIPT_DIR/run_strategy.sh"
|
||||
echo ""
|
||||
echo "=============================================="
|
||||
echo " Testing: $strategy_name"
|
||||
echo " Testing: $strategy"
|
||||
echo " $(describe_strategy "$SCRIPT_DIR/general_${strategy}.sh")"
|
||||
echo "=============================================="
|
||||
|
||||
# Check if strategy config exists
|
||||
if [[ ! -f "$SCRIPT_DIR/strategies/${strategy}.conf" ]]; then
|
||||
print_yellow " [!] Strategy config not found, skipping..."
|
||||
return 1
|
||||
fi
|
||||
[[ -f "$SCRIPT_DIR/strategies/${strategy}.conf" ]] || { print_yellow " [!] Config not found, skipping..."; return 1; }
|
||||
|
||||
# Ensure clean firewall state before starting
|
||||
cleanup_firewall >/dev/null 2>&1 || true
|
||||
sleep 1
|
||||
|
||||
# Start strategy in background (run_strategy.sh handles its own cleanup on signals)
|
||||
echo " [*] Starting $strategy_name..."
|
||||
echo " [*] Starting $strategy..."
|
||||
"$strategy_path" "$strategy" >/dev/null 2>&1 &
|
||||
local strategy_pid=$!
|
||||
|
||||
# Wait for nfqws to initialize
|
||||
sleep 3
|
||||
|
||||
# Check if nfqws actually started (not just the wrapper)
|
||||
if ! pgrep -f "nfqws.*qnum=$NFQUEUE_NUM" >/dev/null 2>&1; then
|
||||
print_yellow " [!] nfqws did not start for $strategy_name, skipping..."
|
||||
# Kill wrapper if still alive
|
||||
print_yellow " [!] nfqws did not start for $strategy, skipping..."
|
||||
kill "$strategy_pid" 2>/dev/null || true
|
||||
wait "$strategy_pid" 2>/dev/null || true
|
||||
cleanup_firewall >/dev/null 2>&1 || true
|
||||
@@ -113,104 +68,32 @@ run_strategy_test() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Run connectivity tests
|
||||
local success=0
|
||||
if test_strategy; then
|
||||
success=1
|
||||
fi
|
||||
test_strategy && success=1
|
||||
|
||||
# Stop strategy
|
||||
echo " [*] Stopping $strategy_name..."
|
||||
# Send SIGTERM to wrapper — it will cleanup firewall + nfqws via trap
|
||||
echo " [*] Stopping $strategy..."
|
||||
kill -TERM "$strategy_pid" 2>/dev/null || true
|
||||
# Give trap time to fire and cleanup
|
||||
sleep 2
|
||||
# Ensure nfqws is gone
|
||||
pkill -f "nfqws.*qnum=$NFQUEUE_NUM" 2>/dev/null || true
|
||||
wait "$strategy_pid" 2>/dev/null || true
|
||||
cleanup_firewall >/dev/null 2>&1 || true
|
||||
sleep 1
|
||||
|
||||
if [[ "$success" -eq 1 ]]; then
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
[[ "$success" -eq 1 ]]
|
||||
}
|
||||
|
||||
# Main autotest logic
|
||||
main() {
|
||||
local auto_install="${1:-}"
|
||||
|
||||
echo ""
|
||||
echo "=============================================="
|
||||
echo " Zapret Auto-Test v$LOCAL_VERSION"
|
||||
echo " Will test ${#STRATEGIES[@]} strategies"
|
||||
echo "=============================================="
|
||||
echo ""
|
||||
|
||||
# Check prerequisites
|
||||
if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then
|
||||
print_red "[!] This script must be run as root (or with sudo)"
|
||||
echo " sudo ./autotest.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
check_nfqws || {
|
||||
echo ""
|
||||
echo "[*] nfqws not found. Building first..."
|
||||
bash "$SCRIPT_DIR/install_nfqws.sh"
|
||||
}
|
||||
|
||||
echo "[*] Test targets:"
|
||||
for entry in "${TEST_URLS[@]}"; do
|
||||
IFS='|' read -r url name <<< "$entry"
|
||||
echo " - $name ($url)"
|
||||
done
|
||||
echo ""
|
||||
|
||||
if [[ "$auto_install" != "--auto" ]]; then
|
||||
read -rp "Press Enter to start testing... or Ctrl+C to cancel"
|
||||
fi
|
||||
|
||||
# Ensure clean state
|
||||
cleanup_firewall >/dev/null 2>&1 || true
|
||||
sleep 1
|
||||
|
||||
local working_strategy=""
|
||||
local working_desc=""
|
||||
|
||||
for strat in "${STRATEGIES[@]}"; do
|
||||
if run_strategy_test "$strat"; then
|
||||
working_strategy="$strat"
|
||||
working_desc="$(describe_strategy "$SCRIPT_DIR/general_${strat}.sh")"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "=============================================="
|
||||
if [[ -n "$working_strategy" ]]; then
|
||||
print_green " WORKING STRATEGY FOUND!"
|
||||
print_green " Strategy: $working_strategy"
|
||||
print_green " Desc: $working_desc"
|
||||
echo "=============================================="
|
||||
echo ""
|
||||
|
||||
if [[ "$auto_install" == "--auto" ]]; then
|
||||
echo "[*] Auto-installing to systemd..."
|
||||
# Write strategy marker directly
|
||||
install_strategy() {
|
||||
local strategy="$1"
|
||||
mkdir -p "$SCRIPT_DIR/.service"
|
||||
echo "$working_strategy" > "$SCRIPT_DIR/.service/installed_strategy"
|
||||
|
||||
local service_path="$SYSTEMD_DIR/zapret.service"
|
||||
cat > "$service_path" <<EOF
|
||||
echo "$strategy" > "$SCRIPT_DIR/.service/installed_strategy"
|
||||
cat > /etc/systemd/system/zapret.service <<EOS
|
||||
[Unit]
|
||||
Description=Zapret DPI bypass (strategy: $working_strategy)
|
||||
Description=Zapret DPI bypass (strategy: $strategy)
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=$SCRIPT_DIR/run_strategy.sh $working_strategy
|
||||
ExecStart=$SCRIPT_DIR/run_strategy.sh $strategy
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
StandardOutput=journal
|
||||
@@ -218,54 +101,94 @@ StandardError=journal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
cp "$service_path" /etc/systemd/system/zapret.service
|
||||
EOS
|
||||
systemctl daemon-reload
|
||||
systemctl enable zapret.service
|
||||
systemctl start zapret.service
|
||||
print_green "[OK] Installed and started!"
|
||||
echo ""
|
||||
systemctl status zapret --no-pager
|
||||
}
|
||||
|
||||
main() {
|
||||
local mode="${1:-interactive}"
|
||||
echo ""
|
||||
echo "=============================================="
|
||||
echo " Zapret Auto-Test v$LOCAL_VERSION"
|
||||
echo " Will test ${#STRATEGIES[@]} strategies"
|
||||
echo "=============================================="
|
||||
echo ""
|
||||
|
||||
[[ "${EUID:-$(id -u)}" -eq 0 ]] || { print_red "[!] Run as root"; exit 1; }
|
||||
|
||||
check_nfqws || { bash "$SCRIPT_DIR/install_nfqws.sh"; }
|
||||
|
||||
echo "[*] Test targets:"
|
||||
for entry in "${TEST_URLS[@]}"; do
|
||||
IFS="|" read -r url name <<< "$entry"
|
||||
echo " - $name ($url)"
|
||||
done
|
||||
echo ""
|
||||
|
||||
[[ "$mode" == "interactive" ]] && read -rp "Press Enter to start..."
|
||||
|
||||
cleanup_firewall >/dev/null 2>&1 || true
|
||||
sleep 1
|
||||
|
||||
local working_strategies=() working_descs=() first_working=""
|
||||
|
||||
for strat in "${STRATEGIES[@]}"; do
|
||||
if run_strategy_test "$strat"; then
|
||||
working_strategies+=("$strat")
|
||||
working_descs+=("$(describe_strategy "$SCRIPT_DIR/general_${strat}.sh")")
|
||||
[[ -z "$first_working" ]] && first_working="$strat"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "=============================================="
|
||||
if [[ ${#working_strategies[@]} -gt 0 ]]; then
|
||||
print_green " WORKING STRATEGIES FOUND: ${#working_strategies[@]}"
|
||||
echo "=============================================="
|
||||
echo ""
|
||||
local i=0
|
||||
for strat in "${working_strategies[@]}"; do
|
||||
echo " $(print_green "[$((i+1))]") $strat — ${working_descs[$i]}"
|
||||
((i++))
|
||||
done
|
||||
echo ""
|
||||
|
||||
if [[ "$mode" == "--auto" ]]; then
|
||||
install_strategy "$first_working"
|
||||
elif [[ "$mode" == "--list-all" ]]; then
|
||||
echo "[*] To install a strategy, run: sudo ./service.sh → 1. Install Service"
|
||||
echo " Or directly: sudo ./run_strategy.sh ALT3"
|
||||
else
|
||||
echo "[*] Next steps:"
|
||||
echo " 1. Test in browser: open youtube.com and discord.com"
|
||||
echo " 2. If everything works, install it:"
|
||||
echo " 1. Test in browser: youtube.com, discord.com"
|
||||
echo " 2. To install: sudo ./service.sh → 1. Install Service → Pick a strategy"
|
||||
echo ""
|
||||
echo " sudo ./service.sh"
|
||||
echo " → 1. Install Service"
|
||||
echo " → Choose: $working_strategy"
|
||||
echo ""
|
||||
read -rp "Install this strategy to systemd now? [Y/n]: " ans
|
||||
if [[ "${ans:-Y}" == [yY]* ]]; then
|
||||
bash "$SCRIPT_DIR/service.sh"
|
||||
fi
|
||||
read -rp "Install first working strategy ($first_working)? [Y/n]: " ans
|
||||
[[ "${ans:-Y}" == [yY]* ]] && install_strategy "$first_working"
|
||||
fi
|
||||
else
|
||||
print_red " NO WORKING STRATEGY FOUND"
|
||||
echo "=============================================="
|
||||
echo ""
|
||||
echo "[*] Suggestions:"
|
||||
echo " - Try adding custom domains to lists/list-general-user.txt"
|
||||
echo " - Check that Secure DNS is enabled"
|
||||
echo " - Try modifying strategy parameters manually in strategies/*.conf"
|
||||
echo " - Check diagnostics: sudo ./service.sh → 10. Run Diagnostics"
|
||||
echo " - Add custom domains to lists/list-general-user.txt"
|
||||
echo " - Check Secure DNS is enabled"
|
||||
echo " - Modify strategy parameters in strategies/*.conf"
|
||||
echo " - Run diagnostics: sudo ./service.sh → 10. Run Diagnostics"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "[*] Auto-test complete."
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Entry point
|
||||
case "${1:-interactive}" in
|
||||
--auto|-a)
|
||||
main --auto
|
||||
;;
|
||||
interactive|"")
|
||||
main interactive
|
||||
;;
|
||||
*)
|
||||
echo "Usage: sudo ./autotest.sh [--auto|-a]"
|
||||
exit 1
|
||||
;;
|
||||
--auto|-a) main --auto ;;
|
||||
--list-all|-l) main --list-all ;;
|
||||
interactive|"") main interactive ;;
|
||||
*) echo "Usage: sudo ./autotest.sh [--auto|-a] [--list-all|-l]"; exit 1 ;;
|
||||
esac
|
||||
|
||||
@@ -43,6 +43,14 @@ parse_conf_args() {
|
||||
|
||||
local rule_value="${line#*=}"
|
||||
|
||||
# Skip rule if game filter placeholders remain but filter is empty
|
||||
if [[ "$rule_value" == *'%GAME_TCP%'* ]] && [[ -z "${GameFilterTCP:-}" ]]; then
|
||||
continue
|
||||
fi
|
||||
if [[ "$rule_value" == *'%GAME_UDP%'* ]] && [[ -z "${GameFilterUDP:-}" ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Substitute variables using sed (no envsubst dependency)
|
||||
rule_value=$(echo "$rule_value" | sed \
|
||||
-e "s|%BIN%|$BIN_DIR/|g" \
|
||||
@@ -53,14 +61,6 @@ parse_conf_args() {
|
||||
# Remove surrounding quotes added by .bat conversion around path args
|
||||
rule_value=$(echo "$rule_value" | sed -E 's/="([^"]*)"/=\1/g')
|
||||
|
||||
# Skip rule if game filter placeholders remain but filter is empty
|
||||
if [[ "$rule_value" == *'%GAME_TCP%'* ]] && [[ -z "${GameFilterTCP:-}" ]]; then
|
||||
continue
|
||||
fi
|
||||
if [[ "$rule_value" == *'%GAME_UDP%'* ]] && [[ -z "${GameFilterUDP:-}" ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Parse into array
|
||||
local rule_arr=()
|
||||
read -ra rule_arr <<< "$rule_value"
|
||||
|
||||
48
service.sh
48
service.sh
@@ -67,7 +67,7 @@ show_menu() {
|
||||
echo ""
|
||||
echo " :: TOOLS"
|
||||
echo " 10. Run Diagnostics"
|
||||
echo " 11. Run Tests"
|
||||
echo " 11. Run Tests (find ALL working strategies)"
|
||||
echo ""
|
||||
echo " ----------------------------------------"
|
||||
echo " 0. Exit"
|
||||
@@ -126,7 +126,6 @@ service_install() {
|
||||
while IFS= read -r -d '' f; do
|
||||
local name
|
||||
name=$(basename "$f")
|
||||
# Only list strategy wrappers (general*.sh), skip service/utility scripts
|
||||
[[ "$name" == general*.sh ]] || continue
|
||||
files+=("$f")
|
||||
local desc
|
||||
@@ -155,16 +154,12 @@ service_install() {
|
||||
echo ""
|
||||
echo "[*] Installing strategy: $strategy_name"
|
||||
|
||||
# Stop any existing service (internal — no prompts)
|
||||
service_remove_internal > /dev/null 2>&1 || true
|
||||
|
||||
# Write strategy marker
|
||||
mkdir -p "$SCRIPT_DIR/.service"
|
||||
echo "$strategy_name" > "$SCRIPT_DIR/.service/installed_strategy"
|
||||
|
||||
# Create systemd service file
|
||||
local service_path="$SYSTEMD_DIR/zapret.service"
|
||||
cat > "$service_path" <<EOF
|
||||
cat > /etc/systemd/system/zapret.service <<EOF
|
||||
[Unit]
|
||||
Description=Zapret DPI bypass (strategy: $strategy_name)
|
||||
After=network.target
|
||||
@@ -181,9 +176,7 @@ StandardError=journal
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
# Install and enable
|
||||
if command -v systemctl >/dev/null 2>&1; then
|
||||
cp "$service_path" /etc/systemd/system/zapret.service
|
||||
systemctl daemon-reload
|
||||
systemctl enable zapret.service
|
||||
systemctl start zapret.service
|
||||
@@ -204,7 +197,6 @@ EOF
|
||||
# SERVICE REMOVE (internal — no prompts)
|
||||
# ============================================
|
||||
service_remove_internal() {
|
||||
# Stop systemd service
|
||||
if command -v systemctl >/dev/null 2>&1; then
|
||||
systemctl stop zapret.service 2>/dev/null || true
|
||||
systemctl disable zapret.service 2>/dev/null || true
|
||||
@@ -212,14 +204,11 @@ service_remove_internal() {
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
|
||||
# Kill nfqws
|
||||
pkill -f "nfqws.*qnum=$NFQUEUE_NUM" 2>/dev/null || true
|
||||
sleep 1
|
||||
|
||||
# Cleanup firewall
|
||||
cleanup_firewall
|
||||
|
||||
# Remove markers
|
||||
rm -f "$SCRIPT_DIR/.service/installed_strategy"
|
||||
}
|
||||
|
||||
@@ -245,7 +234,6 @@ service_status() {
|
||||
echo "[*] Service Status"
|
||||
echo ""
|
||||
|
||||
# Check systemd
|
||||
if command -v systemctl >/dev/null 2>&1; then
|
||||
if systemctl is-active zapret.service >/dev/null 2>&1; then
|
||||
print_green "zapret.service is RUNNING."
|
||||
@@ -254,14 +242,12 @@ service_status() {
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check nfqws process
|
||||
if pgrep -f "nfqws.*qnum=$NFQUEUE_NUM" >/dev/null 2>&1; then
|
||||
print_green "nfqws process is RUNNING."
|
||||
else
|
||||
print_red "nfqws process is NOT running."
|
||||
fi
|
||||
|
||||
# Check iptables/nftables rules
|
||||
if nft list table ip $NFT_TABLE >/dev/null 2>&1; then
|
||||
print_green "nftables rules are LOADED."
|
||||
elif iptables -t mangle -L -n 2>/dev/null | grep -q "NFQUEUE"; then
|
||||
@@ -270,7 +256,6 @@ service_status() {
|
||||
print_red "No firewall rules found."
|
||||
fi
|
||||
|
||||
# Show strategy
|
||||
local strat
|
||||
strat=$(get_strategy_name)
|
||||
echo ""
|
||||
@@ -382,7 +367,6 @@ hosts_update() {
|
||||
|
||||
read -rp "Append these entries to /etc/hosts? [y/N]: " ans
|
||||
if [[ "$ans" == [yY]* ]]; then
|
||||
# Backup /etc/hosts
|
||||
sudo cp /etc/hosts "/etc/hosts.backup.$(date +%s)"
|
||||
echo "" | sudo tee -a /etc/hosts > /dev/null
|
||||
echo "# --- zapret-discord-youtube-linux hosts ---" | sudo tee -a /etc/hosts > /dev/null
|
||||
@@ -455,12 +439,10 @@ service_diagnostics() {
|
||||
echo "[*] Running Diagnostics"
|
||||
echo ""
|
||||
|
||||
# Check root/sudo
|
||||
if [[ "$EUID" -ne 0 ]]; then
|
||||
print_yellow "[!] Not running as root. Some checks may fail."
|
||||
fi
|
||||
|
||||
# Check nfqws
|
||||
if [[ -x "$BIN_DIR/nfqws" ]]; then
|
||||
print_green "[OK] nfqws binary found"
|
||||
else
|
||||
@@ -468,7 +450,6 @@ service_diagnostics() {
|
||||
echo " Run: ./install_nfqws.sh"
|
||||
fi
|
||||
|
||||
# Check iptables/nftables
|
||||
if command -v iptables >/dev/null 2>&1; then
|
||||
print_green "[OK] iptables found"
|
||||
else
|
||||
@@ -481,7 +462,6 @@ service_diagnostics() {
|
||||
print_yellow "[WARN] nftables (nft) NOT found"
|
||||
fi
|
||||
|
||||
# Check kernel modules
|
||||
if lsmod | grep -q "nfnetlink_queue"; then
|
||||
print_green "[OK] nfnetlink_queue module loaded"
|
||||
else
|
||||
@@ -489,14 +469,12 @@ service_diagnostics() {
|
||||
echo " Try: sudo modprobe nfnetlink_queue"
|
||||
fi
|
||||
|
||||
# Check Secure DNS (systemd-resolved)
|
||||
if command -v resolvectl >/dev/null 2>&1; then
|
||||
echo ""
|
||||
echo "[*] DNS settings:"
|
||||
resolvectl status 2>/dev/null | head -n 20 || true
|
||||
fi
|
||||
|
||||
# Check for conflicting processes
|
||||
echo ""
|
||||
echo "[*] Checking for conflicting processes..."
|
||||
if pgrep -f "goodbye-dpi\|byedpi\|zapret-win" >/dev/null 2>&1; then
|
||||
@@ -505,7 +483,6 @@ service_diagnostics() {
|
||||
print_green "[OK] No conflicting processes found"
|
||||
fi
|
||||
|
||||
# Offer to clear Discord cache
|
||||
echo ""
|
||||
read -rp "Clear Discord cache? [y/N]: " ans
|
||||
if [[ "$ans" == [yY]* ]]; then
|
||||
@@ -523,23 +500,19 @@ service_diagnostics() {
|
||||
}
|
||||
|
||||
# ============================================
|
||||
# RUN TESTS
|
||||
# RUN TESTS (menu 11 — finds ALL working strategies)
|
||||
# ============================================
|
||||
run_tests() {
|
||||
echo ""
|
||||
echo "[*] Running Tests"
|
||||
echo "[*] Running strategy tests..."
|
||||
echo " This will test all strategies against YouTube + Discord."
|
||||
echo " At the end you'll see a list of ALL working strategies."
|
||||
echo ""
|
||||
echo " 1. Standard tests (check common sites)"
|
||||
echo " 2. DPI checkers (Cloudflare, Amazon, etc.)"
|
||||
read -rp " Press Enter to start or Ctrl+C to cancel..."
|
||||
|
||||
bash "$SCRIPT_DIR/autotest.sh" --list-all
|
||||
|
||||
echo ""
|
||||
read -rp " Select option (1-2): " choice
|
||||
|
||||
case "$choice" in
|
||||
1) bash "$UTILS_DIR/test_zapret.sh" standard ;;
|
||||
2) bash "$UTILS_DIR/test_zapret.sh" dpi ;;
|
||||
*) echo "Invalid choice" ;;
|
||||
esac
|
||||
|
||||
read -rp "Press Enter to continue..."
|
||||
}
|
||||
|
||||
@@ -547,7 +520,6 @@ run_tests() {
|
||||
# MAIN LOOP
|
||||
# ============================================
|
||||
main() {
|
||||
# Require root for service management
|
||||
if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then
|
||||
print_red "[!] This script must be run as root (or with sudo)"
|
||||
echo " sudo $0"
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,fakedsplit --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fakedsplit-pattern=0x00 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE4=--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake,fakedsplit --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fakedsplit-pattern=0x00 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,fakedsplit --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fakedsplit-pattern=0x00 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,fakedsplit --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fakedsplit-pattern=0x00 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,fakedsplit --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fakedsplit-pattern=0x00 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,fakedsplit --dpi-desync-repeats=6 --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4 --dpi-desync-fooling=ts --dpi-desync-fakedsplit-pattern=0x00 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n3
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,fakedsplit --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fakedsplit-pattern=0x00 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,fakedsplit --dpi-desync-repeats=6 --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4 --dpi-desync-fooling=ts --dpi-desync-fakedsplit-pattern=0x00 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n3
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=none
|
||||
RULE4=--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_4pda_to.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_4pda_to.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_4pda_to.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n2
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--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"
|
||||
RULE4=--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"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.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%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_max_ru.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.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_www_google_com.bin" --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.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%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_max_ru.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4 --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%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_max_ru.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n4
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.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_www_google_com.bin" --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4 --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_www_google_com.bin" --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n4
|
||||
|
||||
@@ -10,4 +10,4 @@ RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LIST
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=652 --dpi-desync-split-pos=2 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=multisplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-split-seqovl=652 --dpi-desync-split-pos=2 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n2
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,hostfakesplit --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-hostfakesplit-mod=host=www.google.com,altorder=1 --dpi-desync-fooling=ts
|
||||
RULE4=--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake,hostfakesplit --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-hostfakesplit-mod=host=www.google.com,altorder=1 --dpi-desync-fooling=ts
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,hostfakesplit --dpi-desync-fake-tls-mod=rnd,dupsid,sni=ya.ru --dpi-desync-hostfakesplit-mod=host=ya.ru,altorder=1 --dpi-desync-fooling=ts --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,hostfakesplit --dpi-desync-fake-tls-mod=rnd,dupsid,sni=ya.ru --dpi-desync-hostfakesplit-mod=host=ya.ru,altorder=1 --dpi-desync-fooling=ts --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,hostfakesplit --dpi-desync-fake-tls-mod=rnd,dupsid,sni=ya.ru --dpi-desync-hostfakesplit-mod=host=ya.ru,altorder=1 --dpi-desync-fooling=ts --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,hostfakesplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=ya.ru --dpi-desync-hostfakesplit-mod=host=ya.ru,altorder=1 --dpi-desync-fooling=ts --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n4
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,hostfakesplit --dpi-desync-fake-tls-mod=rnd,dupsid,sni=ya.ru --dpi-desync-hostfakesplit-mod=host=ya.ru,altorder=1 --dpi-desync-fooling=ts --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,hostfakesplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=ya.ru --dpi-desync-hostfakesplit-mod=host=ya.ru,altorder=1 --dpi-desync-fooling=ts --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n4
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=1000 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE4=--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=1000 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=1000 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=1000 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=1000 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=1000 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n2
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=1000 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-repeats=6 --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=1000 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2
|
||||
|
||||
@@ -7,4 +7,4 @@ RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync
|
||||
RULE3=--filter-l3=ipv4 --filter-tcp=80,443,2053,2083,2087,2096,8443 --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=syndata,multidisorder
|
||||
RULE4=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=syndata,multidisorder --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4
|
||||
RULE5=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE6=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=14 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n3
|
||||
RULE6=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=14 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n3
|
||||
|
||||
@@ -10,4 +10,4 @@ RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LIST
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=multisplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n2
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2
|
||||
|
||||
@@ -10,4 +10,4 @@ RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LIST
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=syndata
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=syndata --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n2
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake --dpi-desync-fake-tls-mod=none --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2
|
||||
RULE4=--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake --dpi-desync-fake-tls-mod=none --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-fake-tls-mod=none --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-fake-tls-mod=none --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-fake-tls-mod=none --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-fake-tls-mod=none --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n2
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-fake-tls-mod=none --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-fake-tls-mod=none --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2
|
||||
|
||||
@@ -10,4 +10,4 @@ RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LIST
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=hostfakesplit --dpi-desync-repeats=4 --dpi-desync-fooling=ts --dpi-desync-hostfakesplit-mod=host=ozon.ru
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=hostfakesplit --dpi-desync-repeats=4 --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-fooling=ts --dpi-desync-hostfakesplit-mod=host=ozon.ru
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n2
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00000000 --dpi-desync-fake-tls= ! --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com
|
||||
RULE4=--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00000000 --dpi-desync-fake-tls= ! --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00000000 --dpi-desync-fake-tls= ! --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00000000 --dpi-desync-fake-tls= ! --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00000000 --dpi-desync-fake-tls= ! --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multidisorder --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4 --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00000000 --dpi-desync-fake-tls= ! --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n2
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00000000 --dpi-desync-fake-tls= ! --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multidisorder --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4 --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00000000 --dpi-desync-fake-tls= ! --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake,fakedsplit --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-repeats=8 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com
|
||||
RULE4=--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake,fakedsplit --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-repeats=8 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,fakedsplit --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-repeats=8 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,fakedsplit --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-repeats=8 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,fakedsplit --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-repeats=8 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,fakedsplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-repeats=8 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n2
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,fakedsplit --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-repeats=8 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,fakedsplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-repeats=8 --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--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=badseq --dpi-desync-badseq-increment=10000000 --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com
|
||||
RULE4=--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=badseq --dpi-desync-badseq-increment=10000000 --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=10000000 --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=10000000 --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=10000000 --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=10000000 --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n2
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=10000000 --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=10000000 --dpi-desync-repeats=8 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--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-mod=rnd,dupsid,sni=www.google.com
|
||||
RULE4=--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-mod=rnd,dupsid,sni=www.google.com
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --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-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --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-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --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-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4 --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-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n3
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --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-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake,multisplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4 --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-mod=rnd,dupsid,sni=www.google.com --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n3
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE4=--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n3
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n4 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n3
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE4=--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n2
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-fooling=badseq --dpi-desync-badseq-increment=2 --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=10 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE4=--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_max_ru.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_max_ru.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n5 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_max_ru.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_max_ru.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n3
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n5 --dpi-desync-fooling=ts --dpi-desync-fake-tls="%BIN%stun.bin" --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin" --dpi-desync-fake-http="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n3
|
||||
|
||||
@@ -6,8 +6,8 @@ RULE1=--filter-udp=443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%l
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-repeats=6
|
||||
RULE3=--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE4=--filter-tcp=443 --hostlist="%LISTS%list-google.txt" --ip-id=zero --dpi-desync=multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=568 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_4pda_to.bin"
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%list-general.txt" --hostlist="%LISTS%list-general-user.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=568 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin"
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=568 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_4pda_to.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=multisplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-split-seqovl=568 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_4pda_to.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n2
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%ipset-all.txt" --hostlist-exclude="%LISTS%list-exclude.txt" --hostlist-exclude="%LISTS%list-exclude-user.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=568 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=multisplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-split-seqovl=568 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%tls_clienthello_www_google_com.bin"
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%ipset-all.txt" --ipset-exclude="%LISTS%ipset-exclude.txt" --ipset-exclude="%LISTS%ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%quic_initial_www_google_com.bin" --dpi-desync-cutoff=n2
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
[Unit]
|
||||
Description=Zapret DPI bypass
|
||||
Description=Zapret DPI bypass (strategy: ALT3)
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/local/bin/zapret-start.sh
|
||||
ExecStart=/opt/zapret/run_strategy.sh ALT3
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
StandardOutput=journal
|
||||
|
||||
Reference in New Issue
Block a user