# Примеры использования

## Примеры VLESS URL

### VLESS с Reality

```
vless://uuid@server.com:443?security=reality&type=tcp&flow=xtls-rprx-vision&sni=example.com&fp=chrome&pbk=publickey&sid=shortid#ServerName
```

### VLESS с TLS

```
vless://uuid@server.com:443?security=tls&type=tcp&sni=example.com&fp=chrome#ServerName
```

### VLESS с WebSocket

```
vless://uuid@server.com:443?security=tls&type=ws&path=/path&host=example.com&sni=example.com#ServerName
```

### VLESS с gRPC

```
vless://uuid@server.com:443?security=tls&type=grpc&serviceName=ServiceName&mode=multi&sni=example.com#ServerName
```

### VLESS с HTTP/2

```
vless://uuid@server.com:443?security=tls&type=http&path=/path&host=example.com#ServerName
```

## Примеры подписок

### Добавление подписки

```
Имя подписки: MyVPN
URL подписки: https://example.com/sub/xxxxx
```

### Популярные VPN провайдеры

- AliusVPN
- V2rayN
- Shadowrocket
- Clash

## Примеры конфигурационных файлов

### configs.json

```json
{
  "wireguard": [],
  "vless": [
    {
      "name": "My Server",
      "url": "vless://uuid@server.com:443?security=reality&type=tcp&flow=xtls-rprx-vision&sni=example.com&fp=chrome&pbk=publickey&sid=shortid#MyServer",
      "protocol": "VLESS"
    },
    {
      "name": "[MyVPN] Server 1",
      "url": "vless://...",
      "protocol": "VLESS",
      "subscription": "MyVPN"
    }
  ]
}
```

### subscriptions.json

```json
{
  "subscriptions": [
    {
      "name": "MyVPN",
      "url": "https://example.com/sub/xxxxx"
    },
    {
      "name": "AnotherVPN",
      "url": "https://another.com/subscription"
    }
  ]
}
```

### state.json (подключено)

```json
{
  "connected": true,
  "config_name": "My Server",
  "config_type": "vless",
  "start_time": "2024-01-01T12:00:00Z",
  "interface": "xray",
  "process_pid": 12345,
  "log_file": "/path/to/logs/vless_traffic_20240101_120000.log"
}
```

### state.json (отключено)

```json
{
  "connected": false,
  "config_name": "",
  "config_type": "",
  "start_time": "",
  "interface": "",
  "process_pid": 0,
  "log_file": ""
}
```

## Примеры использования CLI

### Базовое использование

```bash
# Запуск клиента
./vpn-client

# Главное меню
# 1. VLESS
# 2. Управление подписками
# 3. Показать статус подключения
# 4. Отключиться от VPN
# 0. Выход
```

### Работа с VLESS

```bash
# В главном меню выберите 1 (VLESS)

# Меню VLESS
# 1. Список конфигураций - показать все конфиги
# 2. Добавить конфиг - добавить новый VLESS конфиг
# 3. Удалить конфиг - удалить существующий конфиг
# 4. Подключиться - подключиться к серверу
# 5. Тестировать конфиг (пинг) - проверить доступность сервера
# 0. Назад
```

### Работа с подписками

```bash
# В главном меню выберите 2 (Управление подписками)

# Меню подписок
# 1. Список подписок - показать все подписки
# 2. Добавить подписку - добавить новую подписку
# 3. Удалить подписку - удалить существующую подписку
# 4. Обновить конфиги из подписки - загрузить новые конфиги
# 5. Показать конфиги из подписки - показать конфиги конкретной подписки
# 6. Тестировать конфиги из подписки (пинг) - проверить все серверы
# 0. Назад
```

## Примеры сценариев

### Сценарий 1: Первое использование

```bash
# 1. Запустите клиент
./vpn-client

# 2. Добавьте подписку
# Выберите: 2 (Управление подписками)
# Выберите: 2 (Добавить подписку)
# Введите имя: MyVPN
# Введите URL: https://example.com/sub/xxxxx

# 3. Обновите конфиги
# Выберите: 4 (Обновить конфиги из подписки)
# Выберите номер подписки: 1

# 4. Протестируйте серверы
# Выберите: 6 (Тестировать конфиги из подписки)
# Выберите номер подписки: 1
# Дождитесь результатов

# 5. Подключитесь к лучшему серверу
# Выберите: 0 (Назад)
# Выберите: 1 (VLESS)
# Выберите: 4 (Подключиться)
# Выберите номер конфига с наименьшим пингом

# 6. Проверьте статус
# Выберите: 0 (Назад)
# Выберите: 3 (Показать статус подключения)
```

### Сценарий 2: Быстрое подключение

```bash
# Если у вас уже есть VLESS URL

# 1. Запустите клиент
./vpn-client

# 2. Добавьте конфиг
# Выберите: 1 (VLESS)
# Выберите: 2 (Добавить конфиг)
# Введите имя: Quick Server
# Вставьте VLESS URL

# 3. Подключитесь
# Выберите: 4 (Подключиться)
# Выберите: 1 (только что добавленный конфиг)

# 4. Готово!
```

### Сценарий 3: Поиск лучшего сервера

```bash
# 1. Запустите клиент
./vpn-client

# 2. Обновите подписку
# Выберите: 2 (Управление подписками)
# Выберите: 4 (Обновить конфиги из подписки)
# Выберите номер подписки

# 3. Протестируйте все серверы
# Выберите: 6 (Тестировать конфиги из подписки)
# Выберите номер подписки
# Дождитесь завершения (может занять несколько минут)

# 4. Посмотрите результаты
# Программа покажет топ-5 серверов с наименьшим пингом

# 5. Подключитесь к лучшему
# Выберите: 0 (Назад)
# Выберите: 1 (VLESS)
# Выберите: 4 (Подключиться)
# Найдите сервер из топ-5 и подключитесь
```

### Сценарий 4: Переключение между серверами

```bash
# 1. Отключитесь от текущего сервера
# В главном меню выберите: 4 (Отключиться от VPN)

# 2. Подключитесь к другому серверу
# Выберите: 1 (VLESS)
# Выберите: 4 (Подключиться)
# Выберите другой конфиг

# Или используйте быстрый способ:
# Просто подключитесь к новому серверу
# Клиент автоматически отключит предыдущее соединение
```

## Примеры настройки браузера

### Firefox

```
1. Откройте: about:preferences#general
2. Прокрутите до "Параметры сети"
3. Нажмите "Настроить..."
4. Выберите "Ручная настройка прокси"
5. SOCKS Host: 127.0.0.1
6. Port: 10808
7. Выберите "SOCKS v5"
8. Отметьте "Использовать прокси DNS при использовании SOCKS v5"
9. Нажмите "OK"
```

### Chrome (с расширением)

```
1. Установите расширение "Proxy SwitchyOmega"
2. Создайте новый профиль
3. Protocol: SOCKS5
4. Server: 127.0.0.1
5. Port: 10808
6. Сохраните и активируйте профиль
```

### Системный прокси (Windows)

```
1. Настройки → Сеть и Интернет → Прокси
2. Ручная настройка прокси
3. Использовать прокси-сервер: Вкл
4. Адрес: 127.0.0.1
5. Порт: 10808
6. Сохранить
```

### Системный прокси (macOS)

```
1. Системные настройки → Сеть
2. Выберите активное подключение
3. Дополнительно → Прокси
4. Отметьте "SOCKS прокси"
5. Сервер: 127.0.0.1
6. Порт: 10808
7. OK → Применить
```

### Системный прокси (Linux)

```bash
# Временно (для текущей сессии)
export ALL_PROXY=socks5://127.0.0.1:10808

# Постоянно (добавьте в ~/.bashrc или ~/.zshrc)
echo 'export ALL_PROXY=socks5://127.0.0.1:10808' >> ~/.bashrc
source ~/.bashrc
```

## Примеры проверки подключения

### Проверка IP адреса

```bash
# Через curl
curl -x socks5://127.0.0.1:10808 https://api.ipify.org

# Через браузер
# Откройте: https://whatismyipaddress.com/
```

### Проверка работы прокси

```bash
# Проверка доступности прокси
curl -x socks5://127.0.0.1:10808 https://www.google.com

# Если работает, вы увидите HTML код страницы
```

## Примеры логов

### Успешное подключение

```
[2024-01-01 12:00:00] Создание конфига для сервера: server.com:443
[2024-01-01 12:00:00] UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
[2024-01-01 12:00:00] Транспорт: tcp
[2024-01-01 12:00:00] Безопасность: reality
[2024-01-01 12:00:00] Успешно подключено к 'My Server' (PID: 12345, Лог: /path/to/log)
```

### Ошибка подключения

```
[2024-01-01 12:00:00] Начало подключения к 'My Server' через Xray
[2024-01-01 12:00:01] Ошибка подключения: процесс xray завершился с ошибкой
[2024-01-01 12:00:01] Проверьте конфигурацию и доступность сервера
```

### Тестирование сервера

```
Тестирование 'My Server'...
Проверка доступности сервера...
✓ Сервер доступен
  Адрес: server.com:443
  Пинг: 45.23 мс
  Качество: Отлично
```

## Полезные команды

### Проверка процесса Xray

```bash
# Linux/macOS
ps aux | grep xray

# Windows
tasklist | findstr xray
```

### Просмотр логов в реальном времени

```bash
# Linux/macOS
tail -f logs/vless_traffic_*.log

# Windows (PowerShell)
Get-Content logs\vless_traffic_*.log -Wait -Tail 50
```

### Остановка зависшего процесса

```bash
# Linux/macOS
killall xray

# Windows
taskkill /F /IM xray.exe
```

## Советы и трюки

1. **Используйте тестирование перед подключением** - это сэкономит время
2. **Регулярно обновляйте подписки** - серверы могут меняться
3. **Сохраняйте лучшие серверы** - добавьте их как отдельные конфиги
4. **Проверяйте логи при проблемах** - там обычно есть ответы
5. **Используйте серверы с пингом < 100ms** - для комфортной работы
6. **Не забывайте отключаться** - освобождайте ресурсы
