# Настройка на компьютере и роутере

У 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) — когда что-то не работает.
