# Налаштування на комп'ютері та роутері

SecurQbit має консольний клієнт для машин, у яких немає застосунку: серверів і настільних систем на Linux, Windows, FreeBSD та роутерів OpenWrt. Це той самий VPN і той самий обліковий запис, що й у мобільних застосунках — про iOS та Android див. [Встановлення SecurQbit](/installation).

Встановлюються дві програми:

| Програма | Що це |
| --- | --- |
| `securqbitd` | Фонова служба. Вона зберігає ваш сеанс, будує тунель і налаштовує маршрутизацію системи. Працює із системними правами, бо створення тунельного пристрою їх вимагає. |
| `sqctl` | Команда, яку ви набираєте. Вона просить службу щось зробити й показує вам, що відбувається. Жодних облікових даних не зберігає і власних прав не потребує. |

Ви маєте справу з `sqctl`. Усі команди — у [Довіднику CLI](/cli-reference).

## Установлення однією командою

На Linux, macOS, FreeBSD та OpenWrt:

```bash
curl -fsSL https://cdn.securqbit.com/securqbitd/install.sh | sudo sh
```

Це все встановлення. Скрипт визначає, який пакунок потрібен цій машині, завантажує його, звіряє з опублікованими контрольними сумами SHA-256, розкладає обидві програми й реєструє службу в тому, що керує довготривалими процесами саме тут — systemd, OpenRC, runit, SysV init, procd, rc.d або launchd. Більше нічого налаштовувати не треба.

Коли завершиться:

```bash
sqctl login              # відкриває посилання для підтвердження у браузері
sqctl connect --fastest
sqctl status
```

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

### Параметри

Установник приймає кілька параметрів. Передавайте їх після `sh -s --`:

```bash
curl -fsSL https://cdn.securqbit.com/securqbitd/install.sh | sudo sh -s -- --no-start
```

| Параметр | Що робить |
| --- | --- |
| `--version <v>` | Ставить конкретний випуск замість поточного. |
| `--from <path>` | Ставить із уже завантаженого архіву, без мережі. |
| `--prefix <dir>` | Ставить не в `/usr/local`, а деінде (на OpenWrt — `/usr`). |
| `--no-start` | Реєструє службу, але не запускає її. |
| `--no-router` | На OpenWrt встановлює без переведення локальної мережі за тунель. |
| `--uninstall` | Вилучає службу й обидві програми. |

## Підтримувані платформи

| Система | Архітектури |
| --- | --- |
| Linux | x86-64, arm64, armv7 |
| Windows | x86-64, arm64 |
| FreeBSD | x86-64, arm64 |
| OpenWrt | x86-64, arm64, armv7 |
| macOS | Apple silicon, Intel |

Збірка статична, тож один пакунок для Linux однаково підходить і glibc, і musl — Debian, Ubuntu, Fedora, Arch, Alpine та Void беруть той самий файл.

> **Збірки під MIPS немає й не буде.** Такі роутери мають 8–16 МБ флеш-пам'яті, а SecurQbit потребує близько 40, тож пакунок для них зміг би хіба що впасти — уже після того, як ви дочекалися завантаження. Роутер на ARM або x86-64 працює.

> **На macOS краще застосунок.** Продукт для Mac — це рідний застосунок SecurQbit з App Store. Консольний клієнт збирається й працює на macOS, щоб його можна було там розробляти; користувачеві Mac ставити треба не його.

## Перевірка завантаженого файлу

Установник і так звіряє архів із контрольними сумами, опублікованими поруч, і відмовляється продовжувати, якщо вони не збігаються. Щоб перевірити вручну або встановити без мережі:

```bash
V=$(curl -fsSL https://cdn.securqbit.com/securqbitd/latest)
BASE=https://cdn.securqbit.com/securqbitd/$V

curl -fsSLO $BASE/securqbit-$V-linux-amd64.tar.gz
curl -fsSLO $BASE/SHA256SUMS

sha256sum --check --ignore-missing SHA256SUMS
```

Далі встановіть із того самого файлу, який щойно перевірили:

```bash
tar -xzf securqbit-$V-linux-amd64.tar.gz
sudo ./securqbit-$V-linux-amd64/install.sh
```

Запуск `install.sh` із розпакованого архіву встановлює *саме цей* архів і взагалі не звертається до мережі — так і встановлюють на машину, яка ще не має виходу в інтернет.

> Контрольні суми приходять тим самим HTTPS-з'єднанням, що й пакунок, тож вони доводять, що файл дійшов неушкодженим, а не що сервер був чесним. Довіру до з'єднання забезпечує TLS. Не встановлюйте через незашифрований `http`.

## Робота без `sudo`

Служба працює від root. Сокет, який вона слухає, належить групі `securqbit`, що її створює установник, тож учасники цієї групи керують VPN без пароля:

```bash
sudo usermod -aG securqbit "$USER"    # Linux
sudo pw groupmod securqbit -m "$USER" # FreeBSD
```

Вийдіть із системи й увійдіть знову, щоб нове членство набуло чинності. На macOS це група `admin`, у якій адміністратори вже є. У Windows відповідник — група `SecurQbit Users`, поряд із SYSTEM та «Адміністратори».

До того часу `sqctl` казатиме, що не має дозволу, і виводитиме команду вище.

## Windows

На Windows встановлюють з архіву, а не однорядковою командою.

1. Завантажте `securqbit-<version>-windows-amd64.tar.gz` з [cdn.securqbit.com/securqbitd](https://cdn.securqbit.com/securqbitd/) і розпакуйте.
2. Покладіть `wintun.dll` — драйвер тунельного адаптера під вашу архітектуру — поруч із `securqbitd.exe`. Разом із SecurQbit він не розповсюджується; візьміть його на [wintun.net](https://www.wintun.net).
3. У розпакованій теці, з консолі PowerShell, **запущеної від імені адміністратора**:

```powershell
.\install.ps1
```

Це копіює обидві програми до `%ProgramFiles%\SecurQbit`, реєструє службу й додає теку до системного `PATH`, щоб `sqctl` працював із будь-якого термінала. Після цього відкрийте новий термінал, щоб він підхопив оновлений `PATH`.

Щоб вилучити, запустіть `.\uninstall.ps1` з тієї самої консолі з правами адміністратора.

## OpenWrt: провести цілу мережу через VPN

На роутері SecurQbit захищає все, що є в мережі — телефони, ноутбуки, консолі, смарт-телевізор — і на них при цьому нічого не встановлюється.

```bash
curl -fsSL https://cdn.securqbit.com/securqbitd/install.sh | sh
sqctl login
sqctl connect --fastest
```

Установлення також налаштовує брандмауер: зону над тунельним пристроєм із NAT, перенаправлення трафіку локальної мережі до неї та заборону IPv6 з локальної мережі в бік WAN. На роутері це типова поведінка, бо VPN на роутері, який захищає лише трафік самого роутера, — не те, заради чого його ставлять. Якщо вам потрібно саме так, скористайтеся `--no-router`.

**Перед початком перевірте три речі.**

- **Флеш-пам'ять.** Потрібно близько 90 МБ вільного місця. У більшості домашніх роутерів його немає, і установник відмовиться, а не заповнюватиме overlay — роутер із заповненим overlay уже не полагодити мережею. Розв'язання — [extroot](https://openwrt.org/docs/guide-user/additional-software/extroot_configuration) на флешці чи картці SD.
- **Модуль tun.** До типового образу OpenWrt він не входить: `opkg update && opkg install kmod-tun` (або `apk add kmod-tun`). Без нього падає перше з'єднання, а не встановлення.
- **curl.** У деяких образах немає ані curl, ані wget, здатного нормально працювати через HTTPS: `opkg install curl`.

Читайте журнал через `logread -f -e securqbitd`. Він навмисно лишається в оперативній пам'яті — писати мегабайти щодня у флеш-пам'ять роутера означає вбити її.

> **IPv6 саме відхиляється, а не відкидається мовчки, і це зроблено свідомо.** Тунель несе IPv4, тож залишений на WAN локальний IPv6 повів би половину трафіку кожного пристрою повз VPN. Відхилення змушує клієнтів одразу переходити на IPv4, а не чекати завершення тайм-ауту на кожному запиті. Параметр `--allow-ipv6` вимикає цей захист і приймає витік.

## Підключення під час завантаження

```bash
sqctl set autoconnect on
```

Служба стартує разом із машиною й піднімає тунель, щойно з'явиться мережа. Разом із `sqctl set country` роутер або сервер повертається після перезавантаження вже захищеним, і входити в систему нікому не потрібно.

## Залишатися в актуальній версії

```bash
sqctl update
```

Команда завантажує поточний випуск, перевіряє його, замінює обидві програми й перезапускає службу. SecurQbit також перевіряє раз на добу самостійно і повідомляє, коли з'явилося нове — рядком під `sqctl status`:

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

Він лише повідомляє. Сам ніколи не встановлює, бо завершення оновлення означає перезапуск, а перезапуск розриває піднятий тунель. `sqctl set updates off` припиняє перевірки; `sqctl update` при цьому й далі працює.

## Вилучення

```bash
curl -fsSL https://cdn.securqbit.com/securqbitd/install.sh | sudo sh -s -- --uninstall
```

Спершу опускається тунель, щоб маршрутизація та DNS повернулися до попереднього стану, а потім вилучаються служба й обидві програми. На роутері вилучається й додана конфігурація брандмауера. Ваш файл налаштувань і журнали лишаються на місці.

## Далі

- [Довідник CLI](/cli-reference) — кожна команда й що вона робить.
- [Підключення до сервера](/connecting) — вибір того, де ви з'являєтесь.
- [Усунення несправностей](/troubleshooting) — коли щось не працює.
