---
date: 2026-04-24
type: project
tags: [dttb, vpn, clients, happ, amneziavpn, reality]
---

# VPN-клиенты — Реестр выданных доступов

Учёт людей, которым выдан клиентский VPN (Happ / AmneziaVPN). Отдельно от [[netbird-inventory]] (инфра) и [[vps-swtest]] (WG-хаб объектов Знаменского).

## Серверы-выходы

| Сервер | IP / FQDN | Тип | Клиент | Инструкция |
|--------|-----------|-----|--------|------------|
| Finland 5870 | `78.17.4.225:9443` | VLESS Reality + XTLS Vision | Happ | [[../../snippets/happ-vpn-client-instruction]] |
| Finland 5870 (AmneziaWG) | `78.17.4.225` | AmneziaWG (если поднят) | AmneziaVPN | [[../../snippets/amnezia-vpn-client-instruction]] |
| Finland HOSTKEY | `202.71.12.186:9443` | VLESS Reality + XTLS Vision | Happ | `ssh -J root@100.70.92.138 root@202.71.12.186` (`finland5870.com`, см. [[finland-hostkey-vps]]) |

Подробности по Finland после инцидента: [[../../decisions/2026-04-24-finland-vps-malware-cleanup]]. SSH только по ключу.

## Клиенты

> Заполнять при каждой выдаче. Один клиент = одна строка; если человек пользуется на нескольких устройствах по одному UUID — перечислить через запятую. Если устройствам нужны разные UUID — отдельные строки с одним именем.

| # | Имя | Контакт | Устройства | Клиент-приложение | Сервер | UUID / ключ | Выдан | Истекает | Отозван | Заметки |
|---|-----|---------|------------|-------------------|--------|-------------|-------|----------|---------|---------|
| 1 | Ярослав | _уточнить_ | _уточнить_ | AmneziaVPN | Finland (AmneziaWG, предполож.) | `vpn://AAAIYXjanV…VC9O` — полный ключ в [[../../snippets/clients/yaroslav-amnezia-setup]] | 2026-04-24 | — | — | персональная инструкция [[../../snippets/clients/yaroslav-amnezia-setup]] |
| 1 | Ярослав | _уточнить_ | _уточнить_ | Happ | Finland HOSTKEY | UUID `c22b6e34-ceca-4977-97a0-2b1e6b4035a7` — полная ссылка в [[../../snippets/clients/yaroslav-happ-setup]] | 2026-04-29 | — | — | альтернативный канал к AmneziaVPN |
| 2 | Сергей (Знаменское) | _уточнить_ | _уточнить_ | Happ | Finland 5870 | UUID `4798936b-3df6-4e6f-8418-02d8cc9ba553` — полная ссылка в [[../../snippets/clients/sergey-znamenskoye-happ-setup]] | 2026-04-29 | — | — | управляющий объектами Знаменского, см. [[vps-swtest]] |

Шаблон строки — в [[../../templates/vpn-client]].

## Процедуры

### Выдать клиенту

1. Сгенерировать/взять UUID клиента (для Reality можно использовать общий, если устройство доверенное; для разделения — свой UUID на каждого).
2. Сформировать ссылку:
   - **Happ (VLESS Reality)** — `vless://…`, можно + QR-картинка (см. assets в `snippets/assets/`)
   - **AmneziaVPN** — `vpn://…`, **QR не использовать** (конфиг слишком длинный → нечитаемый QR). Только ссылка через буфер обмена или `.vpn` файл.
3. Сделать персональный файл-инструкцию в `snippets/clients/<имя>-<тип>-setup.md` с готовым текстом-для-мессенджера (см. пример [[../../snippets/clients/yaroslav-amnezia-setup]]).
4. Отправить готовый текст. Универсальные шаблоны: [[../../snippets/happ-vpn-client-instruction]] / [[../../snippets/amnezia-vpn-client-instruction]].
5. Записать строку в таблицу выше: имя, контакт, устройства, дата, UUID.
6. При необходимости приложить [[../../snippets/apple-id-us-on-russia]] — если у клиента российский App Store без Happ/AmneziaVPN.

### Отозвать клиента

**Reality (XRay/Sing-box):**
- SSH на сервер → конфиг `/usr/local/etc/xray/config.json` или amnezia-xray контейнера
- Убрать UUID из `inbounds[].settings.clients[]`
- `systemctl reload xray` или `docker restart amnezia-xray`
- Отметить в таблице «Отозван: YYYY-MM-DD»

**AmneziaWG / WireGuard:**
- Убрать `[Peer]` блок из `wg0.conf`
- `wg syncconf wg0 <(wg-quick strip wg0)` — атомарно, без обрыва остальных
- Записать отзыв в таблицу

### Ротация ключей

- Раз в ~6 мес или при подозрении на утечку — новый UUID всем активным клиентам
- Массовую рассылку отправлять одним сообщением со ссылкой на новую версию инструкции
- Старый UUID удалить с сервера после подтверждения перехода (неделя окна)

### При потере QR клиентом

- QR-картинка — в `snippets/assets/vpn-<сервер>-YYYYMMDD.png`. Переотправить.
- Если QR сгенерирован только в голове — пересобрать из `vless://` строки через `qrencode -o file.png 'vless://…'`.

## Roadmap / Что ещё

- [ ] Завести второй резервный сервер-выход (не Finland) — сейчас единая точка отказа
- [ ] Скрипт `vpn-clients-health.sh` — дёргает активные UUID на сервере и сверяет с таблицей (находит осиротевшие/забытые)
- [ ] Telegram-уведомление когда новый клиент заходит впервые (вместо ручного подтверждения)
- [ ] Рассмотреть biling, если часть клиентов станет коммерческой — пока все бесплатно для родни/знакомых
- [ ] Ограничение по устройствам на UUID (в XRay это настраивается через `level`) — для чужих людей имеет смысл

## Ссылки

- [[../../snippets/happ-vpn-client-instruction]] — готовый текст для отправки (Happ, Finland Reality)
- [[../../snippets/amnezia-vpn-client-instruction]] — готовый текст для отправки (AmneziaVPN)
- [[../../snippets/apple-id-us-on-russia]] — если у клиента RU App Store без VPN-приложений
- [[../../decisions/2026-04-24-finland-vps-malware-cleanup]] — инцидент, режим доступа к серверу
- [[netbird-inventory]] — инвентарь Netbird-пиров (не путать)
