44 lines
1.8 KiB
Markdown
44 lines
1.8 KiB
Markdown
# VPN Proxy
|
||
|
||
Один компактный VPN-клиент в двух режимах:
|
||
|
||
- `gateway` — отдельная Linux-машина принимает трафик устройств как системный Gateway или Local HTTP/SOCKS5 Proxy;
|
||
- `client` — локальный proxy-клиент для macOS.
|
||
|
||
В обоих режимах пользователь добавляет подписку, выбирает сервер и включает VPN на одном экране.
|
||
|
||
## Gateway
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
docker compose -f docker-compose.gateway.yml up -d --build
|
||
```
|
||
|
||
Интерфейс: `http://<gateway-ip>:3456`.
|
||
|
||
После подключения экран показывает:
|
||
|
||
- `Gateway` — адрес, который можно назначить устройству как основной шлюз;
|
||
- `Local Proxy` — один адрес на порту `8080`, доступный как `HTTP` и `SOCKS5`.
|
||
|
||
Когда VPN включён, публичный трафик Gateway и Local Proxy идёт через выбранный sing-box outbound. Когда VPN выключен, TProxy-перехват снимается и Gateway продолжает работать напрямую через kernel forwarding/NAT без прохода через sing-box.
|
||
|
||
Proxy по умолчанию разрешён только из приватных сетей. Диапазоны задаются через `PROXY_ALLOWED_CIDRS`.
|
||
|
||
## macOS client
|
||
|
||
```bash
|
||
./scripts/install-macos-client.sh
|
||
```
|
||
|
||
По умолчанию интерфейс доступен на `http://127.0.0.1:3456`, локальный HTTP/SOCKS5 proxy — на `127.0.0.1:8082`.
|
||
|
||
## Проверка
|
||
|
||
```bash
|
||
npm test
|
||
npm run build
|
||
docker compose -f docker-compose.gateway.yml config
|
||
docker compose -f docker-compose.client.yml config
|
||
```
|