Files
harbor-net/README.md
Dmitriy Petrov 51312d51cd
All checks were successful
Build and Deploy Gateway / build-and-push (push) Successful in 13s
Build and Deploy Gateway / deploy (push) Successful in 1s
Add Harbor Gateway auto-detection for client routing
2026-07-11 15:02:33 +03:00

48 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Harbor
Один компактный VPN-продукт в двух режимах:
- **Harbor Gateway** — отдельная Linux-машина принимает трафик устройств как системный Gateway или Gateway HTTP/SOCKS5 Proxy;
- **Harbor Connect** — локальный proxy-клиент для macOS.
В обоих режимах пользователь добавляет подписку, выбирает сервер и включает VPN на одном экране.
## Gateway
```bash
cp .env.example .env
docker compose -f docker-compose.gateway.yml up -d --build
```
Интерфейс: `http://<gateway-ip>:3456`.
После подключения экран показывает:
- `Gateway` — адрес, который можно назначить устройству как основной шлюз;
- `Gateway Proxy` — один адрес на порту `8080`, доступный как `HTTP` и `SOCKS5`.
Когда VPN включён, публичный трафик Gateway и Gateway 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`.
Установщик также добавляет пользовательский LaunchAgent. Он раз в 5 секунд передаёт Connect текущий default gateway macOS. Если этот адрес отвечает как Harbor Gateway и подтверждает ту же подписку, Connect автоматически оставляет локальный proxy на `127.0.0.1`, но переключает его outbound на `direct`: дальнейший трафик обрабатывает системный Harbor Gateway. При смене сети или трёх ошибках проверки Connect возвращается к выбранному локальному VPN.
Автоопределение не требует выбора домашней Wi-Fi сети. На Connect и Gateway должна быть настроена ссылка с одним и тем же секретным token длиной не менее 24 символов; token используется только для проверки presence-ответа и не передаётся между устройствами.
## Проверка
```bash
npm test
npm run build
docker compose -f docker-compose.gateway.yml config
docker compose -f docker-compose.client.yml config
```