Добавлена general (ALT13 VPN).bat. Параметры обхода взяты из обычной ALT13. При запуске стратегия находит физические сетевые адаптеры и ограничивает перехват их индексами. Пакеты на TUN-интерфейсе не попадают в winws; вручную прописывать ifIdx не нужно.
Стратегию можно выбрать при установке службы через service.bat. Фильтр собирается самим winws через --wf-save, затем проверяется библиотекой WinDivert. Если подготовка не удалась, установка останавливается до удаления старой службы.
В начале добавлен профиль без desync для адресов из ipset-exclude-user.txt. Туда можно добавить IP VPN-сервера, если его внешний TLS-трафик на физическом адаптере совпадает с одним из профилей ALT13. Для подключения через виртуальный мост можно указать имена нужных адаптеров в utils/vpn-adapters.txt, по одному на строку. После смены физических адаптеров службу нужно переустановить, чтобы пересобрать фильтр.
Маршрутизацию стратегия не меняет. Чтобы YouTube и Discord шли напрямую, их нужно направить в DIRECT в VPN-клиенте. Исключение TUN само по себе не выводит эти соединения из туннеля. Поэтому это не универсальное решение «запустить bat и забыть» для любого VPN.
Проверены выбор адаптеров, режимы Game Filter, исключение TUN для IPv4/IPv6, аргументы службы и сохранение старой службы при ошибке. Команды изменения служб и реестра в тестах подменены. На Windows в GitHub Actions настоящий winws собрал фильтр и запустил WinDivert с фильтром false, без перехвата пакетов. Все проверки прошли.
PR пока в draft: для этой версии ещё нужна проверка с реальным VPN-туннелем. Дополнительных README и инструкций в изменениях нет.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/Flowseal/zapret-discord-youtube/pull/18078
**Author:** [@vincere-mori](https://github.com/vincere-mori)
**Created:** 10/12/2026
**Status:** 🔄 Open
**Base:** `main` ← **Head:** `alt13-vpn`
---
### 📝 Commits (4)
- [`f952ac2`](https://github.com/Flowseal/zapret-discord-youtube/commit/f952ac26641ce8ba163102bd6610aa95d36ebb29) add VPN-compatible ALT13 strategy
- [`6352cab`](https://github.com/Flowseal/zapret-discord-youtube/commit/6352cabbeeec26e067983474857145a4232969e1) wait for service menu before test input
- [`d5b352c`](https://github.com/Flowseal/zapret-discord-youtube/commit/d5b352c0ed53340f3b1533186f6d2a56f0e31ff7) fix service test input encoding
- [`078726a`](https://github.com/Flowseal/zapret-discord-youtube/commit/078726ac2b955943948359bc0ad59b163e398af6) send menu input after startup checks
### 📊 Changes
**10 files changed** (+764 additions, -2 deletions)
<details>
<summary>View changed files</summary>
➕ `.github/workflows/vpn-tests.yml` (+39 -0)
📝 `.gitignore` (+3 -1)
➕ `general (ALT13 VPN).bat` (+44 -0)
📝 `service.bat` (+20 -1)
➕ `tests/fixtures/alt13-all.filter.txt` (+14 -0)
➕ `tests/vpn-filter.ps1` (+139 -0)
➕ `tests/vpn-native.ps1` (+50 -0)
➕ `tests/vpn-packets.py` (+101 -0)
➕ `tests/vpn-service.ps1` (+177 -0)
➕ `utils/vpn-filter.ps1` (+177 -0)
</details>
### 📄 Description
Добавлена `general (ALT13 VPN).bat`. Параметры обхода взяты из обычной ALT13. При запуске стратегия находит физические сетевые адаптеры и ограничивает перехват их индексами. Пакеты на TUN-интерфейсе не попадают в winws; вручную прописывать ifIdx не нужно.
Стратегию можно выбрать при установке службы через `service.bat`. Фильтр собирается самим winws через `--wf-save`, затем проверяется библиотекой WinDivert. Если подготовка не удалась, установка останавливается до удаления старой службы.
В начале добавлен профиль без desync для адресов из `ipset-exclude-user.txt`. Туда можно добавить IP VPN-сервера, если его внешний TLS-трафик на физическом адаптере совпадает с одним из профилей ALT13. Для подключения через виртуальный мост можно указать имена нужных адаптеров в `utils/vpn-adapters.txt`, по одному на строку. После смены физических адаптеров службу нужно переустановить, чтобы пересобрать фильтр.
Маршрутизацию стратегия не меняет. Чтобы YouTube и Discord шли напрямую, их нужно направить в DIRECT в VPN-клиенте. Исключение TUN само по себе не выводит эти соединения из туннеля. Поэтому это не универсальное решение «запустить bat и забыть» для любого VPN.
Проверены выбор адаптеров, режимы Game Filter, исключение TUN для IPv4/IPv6, аргументы службы и сохранение старой службы при ошибке. Команды изменения служб и реестра в тестах подменены. На Windows в GitHub Actions настоящий winws собрал фильтр и запустил WinDivert с фильтром `false`, без перехвата пакетов. [Все проверки прошли](https://github.com/vincere-mori/zapret-discord-youtube/actions/runs/38285349468).
PR пока в draft: для этой версии ещё нужна проверка с реальным VPN-туннелем. Дополнительных README и инструкций в изменениях нет.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/Flowseal/zapret-discord-youtube/pull/18078
Author: @vincere-mori
Created: 10/12/2026
Status: 🔄 Open
Base:
main← Head:alt13-vpn📝 Commits (4)
f952ac2add VPN-compatible ALT13 strategy6352cabwait for service menu before test inputd5b352cfix service test input encoding078726asend menu input after startup checks📊 Changes
10 files changed (+764 additions, -2 deletions)
View changed files
➕
.github/workflows/vpn-tests.yml(+39 -0)📝
.gitignore(+3 -1)➕
general (ALT13 VPN).bat(+44 -0)📝
service.bat(+20 -1)➕
tests/fixtures/alt13-all.filter.txt(+14 -0)➕
tests/vpn-filter.ps1(+139 -0)➕
tests/vpn-native.ps1(+50 -0)➕
tests/vpn-packets.py(+101 -0)➕
tests/vpn-service.ps1(+177 -0)➕
utils/vpn-filter.ps1(+177 -0)📄 Description
Добавлена
general (ALT13 VPN).bat. Параметры обхода взяты из обычной ALT13. При запуске стратегия находит физические сетевые адаптеры и ограничивает перехват их индексами. Пакеты на TUN-интерфейсе не попадают в winws; вручную прописывать ifIdx не нужно.Стратегию можно выбрать при установке службы через
service.bat. Фильтр собирается самим winws через--wf-save, затем проверяется библиотекой WinDivert. Если подготовка не удалась, установка останавливается до удаления старой службы.В начале добавлен профиль без desync для адресов из
ipset-exclude-user.txt. Туда можно добавить IP VPN-сервера, если его внешний TLS-трафик на физическом адаптере совпадает с одним из профилей ALT13. Для подключения через виртуальный мост можно указать имена нужных адаптеров вutils/vpn-adapters.txt, по одному на строку. После смены физических адаптеров службу нужно переустановить, чтобы пересобрать фильтр.Маршрутизацию стратегия не меняет. Чтобы YouTube и Discord шли напрямую, их нужно направить в DIRECT в VPN-клиенте. Исключение TUN само по себе не выводит эти соединения из туннеля. Поэтому это не универсальное решение «запустить bat и забыть» для любого VPN.
Проверены выбор адаптеров, режимы Game Filter, исключение TUN для IPv4/IPv6, аргументы службы и сохранение старой службы при ошибке. Команды изменения служб и реестра в тестах подменены. На Windows в GitHub Actions настоящий winws собрал фильтр и запустил WinDivert с фильтром
false, без перехвата пакетов. Все проверки прошли.PR пока в draft: для этой версии ещё нужна проверка с реальным VPN-туннелем. Дополнительных README и инструкций в изменениях нет.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.