# Довідник CLI

`sqctl` — це те, чим ви керуєте SecurQbit із термінала. Він спілкується з фоновою службою через локальний сокет; облікових даних не зберігає й власних прав не потребує. Якщо ви ще не встановили його, почніть із [Налаштування на комп'ютері та роутері](/cli-installation).

Кожна команда приймає `--json`: вона друкує вихідний документ замість оформленого виводу. Саме до нього варто писати скрипти — людиночитне оформлення може змінюватися.

## Стисло

```text
sqctl status                        чи ввімкнено VPN і під яким записом
sqctl login                         вхід через підтвердження посилання у браузері
sqctl logout
sqctl locations                     країни, доступні цьому тарифу
sqctl connect [COUNTRY] [--fastest]
sqctl disconnect
sqctl set                           показати налаштування
sqctl set country DE|any
sqctl set autoconnect on|off
sqctl set updates on|off
sqctl update [--check] [--yes]      встановити найновішу версію
```

## sqctl status

Показує, чи ви захищені й під яким обліковим записом.

```text
$ sqctl status

  ● Connected      Germany
    Connected for  12m 40s
    Transferred    ↓ 148 MB   ↑ 22 MB

    Account        Alice  alice@example.com
    Plan           Monthly
    Renews         1 September 2026
```

Він навмисно не показує нічого про те, як побудовано тунель — ні адреси сервера, ні ідентифікатора сеансу. Зробити з цим ви нічого не можете, а адресу сервера тим паче не варто випускати на знімок екрана, коли просите про допомогу.

Якщо служба не запущена, `sqctl` скаже про це й надрукує команду, яка запускає її саме на *цій* машині, хоч би яка система ініціалізації там була.

## sqctl login

Виконує вхід для цього комп'ютера через підтвердження у браузері.

```text
$ sqctl login

Open this link to approve the sign-in:

    https://accounts.securqbit.com/device?code=BCDF-GHJK

Check the page shows this code:

    B C D F - G H J K

Waiting for approval — expires in 10 minutes, Ctrl-C to cancel
```

Відкрийте посилання — `sqctl` намагається відкрити його за вас, а `--no-browser` це вимикає, — увійдіть, якщо ще не увійшли, **звірте код на сторінці з кодом у терміналі** й підтвердіть. У термінал нічого вводити назад не потрібно.

Саме це звіряння і є всім захистом цього механізму.

> **Підтверджуйте лише той запит, який почали самі.** Якщо хтось надіслав вам таке посилання і ви його підтвердили, ви щойно завели *його* комп'ютер у *свій* обліковий запис. Код і назва машини, показані на сторінці, існують саме для того, щоб ви помітили різницю.

Для входу потрібен обліковий запис, який уже існує. Створіть його в [застосунку для iOS чи Android](/installation) — зокрема [гостьовий](/anonymous-accounts), який заходить на accounts.securqbit.com за кодом відновлення й підтверджує звідти, як і будь-який інший.

## sqctl logout

Вимикає VPN і виходить з облікового запису на цьому комп'ютері. Тунель опускається першим, і це зроблено свідомо: залишити його піднятим на щойно відкликаних облікових даних означає покинути ваш трафік у сеансі, який сервер ось-ось видалить.

Для [гостьового облікового запису](/anonymous-accounts) спершу запитують підтвердження, бо без коду відновлення увійти назад не вдасться. `--force` пропускає це питання.

## sqctl connect

```bash
sqctl connect            # збережене налаштування
sqctl connect DE         # мати вигляд підключення з Німеччини
sqctl connect --fastest  # хай обирає SecurQbit
```

Країна задається дволітерним кодом — які доступні вашому тарифу, покаже `sqctl locations`. Підключення триває кілька секунд; термінал показує реальний стан у міру його зміни, а не мовчить.

> **На пробному тарифі країну обрати не можна.** З пробним тарифом користуйтеся `--fastest`. Зазначення країни поверне помилку про потребу платного тарифу, замість того щоб тихцем підключити вас деінде. Див. [Обліковий запис і оплата](/account-billing).

## sqctl disconnect

Опускає тунель і повертає маршрутизацію та DNS до попереднього стану.

Від'єднання — це водночас і вказівка SecurQbit *зупинитися*. Якщо тунель падає сам, служба й далі працює над його відновленням — саме цього ви й хочете від ноутбука, що вийшов зі сну, або роутера, у якого моргнув канал. Скасовують цей намір лише `sqctl disconnect`, вихід з облікового запису або зупинення служби.

## sqctl locations

Перелічує за назвами країни, доступні вашому тарифу.

```text
$ sqctl locations

    DE             Germany
    FR             France
    NL             Netherlands
    SG             Singapore
    US             United States
```

## sqctl set

Показує або змінює ваші налаштування. Їх три, і це саме ті три, які справді має обирати користувач.

```bash
sqctl set                    # показати всі три
sqctl set country DE         # типово Німеччина
sqctl set country any        # типово найшвидший
sqctl set autoconnect on     # підключатися одразу після запуску машини
sqctl set updates off        # припинити пошук нових версій
```

```text
$ sqctl set

    Location       Germany (DE)
    Auto-connect   on
    Updates        on
```

Усе інше в тунелі — як він будується, який у нього DNS, як він повторює спроби — вирішено за вас і з CLI недоступне. Це не ті рішення, від винесення яких VPN стає кращим.

`updates` — саме налаштування, а не стала величина, бо ця перевірка є періодичним зверненням до CDN SecurQbit, і той, хто тримає VPN, має право від нього відмовитися.

## sqctl update

Встановлює найновішу версію.

```bash
sqctl update            # запитати, потім встановити й перезапустити
sqctl update --check    # лише сказати, чи є нова
sqctl update --yes      # без запитань
```

```text
$ sqctl update

  ! Update available

    Installed      v1.0.0
    Latest         v1.1.0

  SecurQbit restarts to finish, so the VPN disconnects for a moment.

Install it now? [y/N]
```

Завантажене звіряється з опублікованими контрольними сумами ще до того, як щось буде замінено, а потім служба перезапускається вже на новій версії. `sqctl` дочікується її повернення й зчитує версію, тож вам повідомляють про те, що справді працює, а не про те, що записано на диск.

SecurQbit також перевіряє раз на добу самостійно й лише повідомляє вас — рядком під `sqctl status`:

```text
    Update         v1.1.0 available — run: sqctl update
```

Сам він не встановлює ніколи. Завершення оновлення означає перезапуск, а перезапуск розриває піднятий тунель; зробити це з людиною без попередження гірше, ніж лишити її на версію позаду.

Якщо SecurQbit встановив пакетний менеджер вашого дистрибутива, `sqctl update` відмовиться ще до завантаження й запропонує оновлювати його тим самим способом, яким ви його ставили.

## Скрипти

`--json` до будь-якої команди друкує документ протоколу:

```bash
$ sqctl status --json | jq '.state, .country'
"connected"
"DE"
```

```bash
# Підключитися й переконатися, що це справді спрацювало
sqctl connect --fastest --json > /dev/null
test "$(sqctl status --json | jq -r .state)" = connected
```

Коди повернення: `0` — успіх, `1` — команда не виконалася, `2` — служба SecurQbit недоступна.

## Коли щось не так

`sqctl` перекладає збої на те, з чим можна щось зробити, і тримає внутрішні подробиці осторонь. Коли саме ці подробиці й потрібні — для звіту про помилку — є прихована діагностична команда:

```bash
sqctl debug          # версії, де що лежить, який сокет відповів,
                     # рушій тунелю та остання помилка в первісному вигляді
sqctl debug probe DE # перевірити сервер від краю до краю, НЕ підключаючись
```

Найкорисніша — `sqctl debug probe`. Вона піднімає проксі до справжнього сервера, надсилає крізь нього один запит і повідомляє адресу, яку побачив інший бік, — але не створює тунельного пристрою й не змінює маршрутів, тож каже вам, чи працює шлях, не позбавляючи вас інтернету, якщо він не працює.

Додавайте вивід `sqctl debug` до повідомлення про проблему. Див. [Усунення несправностей](/troubleshooting).

## Далі

- [Налаштування на комп'ютері та роутері](/cli-installation) — встановлення, оновлення та вилучення.
- [Підключення до сервера](/connecting) — як працює вибір сервера.
- [Обхід блокувань і обфускація](/firewall-bypass) — у мережі з обмеженнями.
