35 lines
2.0 KiB
Markdown
35 lines
2.0 KiB
Markdown
# VPN Proxy Gateway
|
||
|
||
Новая версия проекта начинается с `gateway`-режима: контейнер поднимается в `network_mode: host`, применяет TProxy-правила на хосте и запускает `sing-box` как прозрачный gateway для устройств в локальной сети.
|
||
|
||
## Что уже заложено
|
||
|
||
- Web UI на Vite + React.
|
||
- Один простой Node control-server вместо отдельного backend framework.
|
||
- Парсинг subscription URL: JSON config, base64 список, plain-text VLESS links.
|
||
- Routing lists управляются из UI: можно отправлять отдельные домены/CIDR/порты в `direct`, `vpn` или `block`.
|
||
- Генерация `sing-box` config для gateway:
|
||
- `tproxy` inbound на `7895`;
|
||
- `mixed` inbound на `8080`;
|
||
- private IP ranges напрямую;
|
||
- RU rule sets напрямую;
|
||
- остальное через выбранный outbound.
|
||
- Docker entrypoint с idempotent TProxy setup/cleanup.
|
||
|
||
## Быстрый старт
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
docker compose -f docker-compose.gateway.yml up -d --build
|
||
```
|
||
|
||
UI будет доступен на хосте по `http://<gateway-host>:3456`.
|
||
|
||
## Важные ограничения v0.1
|
||
|
||
- IPv4 TProxy first. IPv6 routing будет отдельным этапом.
|
||
- DNS-перехват пока не включен. Для корректного gateway-сценария лучше выдать клиентам DNS через роутер/DHCP.
|
||
- Контейнер должен запускаться с `network_mode: host`, `NET_ADMIN`, `NET_RAW`.
|
||
- `_archive/` игнорируется git, потому что там лежит старая реализация и runtime state.
|
||
- Gateway не видит process name на клиентском ПК, поэтому правила для игр задаются через домены, suffix, IP CIDR и порты.
|