# デスクトップとルーターの設定

SecurQbit には、アプリのない機器のためのコマンドラインクライアントがあります。Linux のサーバーとデスクトップ、Windows、FreeBSD、そして OpenWrt ルーターです。VPN もアカウントもモバイルアプリと同じものです — iOS と Android については[SecurQbit のインストール](/installation)をご覧ください。

インストールされるのは 2 つのプログラムです。

| プログラム | 役割 |
| --- | --- |
| `securqbitd` | バックグラウンドで動くサービス。セッションを保持し、トンネルを構築し、システムのルーティングを設定します。トンネルデバイスの作成には特権が必要なため、システム権限で動作します。 |
| `sqctl` | あなたが入力するコマンド。サービスに処理を依頼し、その様子を表示します。認証情報は保持せず、それ自体に特権は不要です。 |

操作するのは `sqctl` です。全コマンドは [CLI リファレンス](/cli-reference)を参照してください。

## ワンコマンドでインストール

Linux・macOS・FreeBSD・OpenWrt では:

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

インストールはこれだけです。スクリプトがこの機器に必要なパッケージを判断し、ダウンロードし、公開されている SHA-256 チェックサムと照合し、2 つのプログラムを配置したうえで、この環境で常駐プロセスを管理している仕組み — 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 で、LAN をトンネルの内側に置かずに導入します。 |
| `--uninstall` | サービスと 2 つのプログラムを削除します。 |

## 対応プラットフォーム

| システム | アーキテクチャ |
| --- | --- |
| Linux | x86-64、arm64、armv7 |
| Windows | x86-64、arm64 |
| FreeBSD | x86-64、arm64 |
| OpenWrt | x86-64、arm64、armv7 |
| macOS | Apple シリコン、Intel |

静的ビルドなので、Linux 用のパッケージ 1 つで glibc と musl の両方をまかなえます — Debian、Ubuntu、Fedora、Arch、Alpine、Void はどれも同じファイルを使います。

> **MIPS 版はありませんし、今後も作りません。** その種のルーターのフラッシュは 8〜16 MB で、SecurQbit は約 40 MB を必要とします。つまり MIPS 用パッケージは、ダウンロードを待たせたあげく失敗することしかできません。ARM か x86-64 のルーターであれば動作します。

> **macOS ではアプリをお使いください。** Mac 向けの製品は App Store の SecurQbit ネイティブアプリです。コマンドラインクライアントが 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 での相当物は、SYSTEM と Administrators と並ぶ `SecurQbit Users` グループです。

それまでの間、`sqctl` は権限がない旨を伝え、上のコマンドを表示します。

## Windows

Windows へはワンライナーではなく、アーカイブから導入します。

1. [cdn.securqbit.com/securqbitd](https://cdn.securqbit.com/securqbitd/) から `securqbit-<version>-windows-amd64.tar.gz` をダウンロードして展開します。
2. トンネルアダプターのドライバー `wintun.dll`（アーキテクチャの合うもの）を `securqbitd.exe` と同じ場所に置きます。SecurQbit には同梱されていないため、[wintun.net](https://www.wintun.net) から入手してください。
3. 展開したフォルダーで、**管理者として実行した** PowerShell から:

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

これで 2 つのプログラムが `%ProgramFiles%\SecurQbit` にコピーされ、サービスが登録され、どのシェルからでも `sqctl` を使えるようフォルダーがシステムの `PATH` に追加されます。新しい `PATH` を読み込ませるため、その後は新しいターミナルを開いてください。

削除するには、同じ管理者権限のプロンプトから `.\uninstall.ps1` を実行します。

## OpenWrt: ネットワーク全体を VPN の内側に置く

ルーター上では、SecurQbit がネットワーク上のすべて — スマートフォン、ノート PC、ゲーム機、スマートテレビ — を保護します。しかもそれらの機器には何も入れる必要がありません。

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

インストール時にはファイアウォールも設定されます。トンネルデバイス上に NAT 付きのゾーンを作り、LAN のトラフィックをそこへ転送し、LAN から WAN へ向かう IPv6 を拒否します。ルーターではこれが既定です。ルーター自身のトラフィックしか守らない VPN では、そもそも導入する意味がないからです。本当にそれを望む場合は `--no-router` を使ってください。

**始める前に、3 点を確認してください。**

- **フラッシュ容量。** 約 90 MB の空きが必要です。家庭用ルーターの多くはそれを持たず、インストーラーは overlay を埋め尽くす代わりに処理を拒否します — overlay が満杯になったルーターはネットワーク越しに修復できません。対処法は USB メモリーや SD カード上の [extroot](https://openwrt.org/docs/guide-user/additional-software/extroot_configuration) です。
- **tun モジュール。** OpenWrt は既定イメージに含めていません: `opkg update && opkg install kmod-tun`（または `apk add kmod-tun`）。これがないと失敗するのはインストールではなく最初の接続です。
- **curl。** イメージによっては curl も、HTTPS をきちんと扱える wget も入っていません: `opkg install curl`。

ログは `logread -f -e securqbitd` で読めます。ログを RAM に留めているのは意図的です — ルーターのフラッシュに毎日メガバイト単位で書き込むことこそ、フラッシュが壊れる原因だからです。

> **IPv6 は破棄ではなく拒否します。これは意図的です。** トンネルが運ぶのは IPv4 なので、LAN の IPv6 を WAN に流したままにすると、各端末のトラフィックの半分が VPN の外を通ってしまいます。拒否すればクライアントは直ちに IPv4 へフォールバックし、リクエストごとにタイムアウトを待たされることがありません。`--allow-ipv6` はこの保護を外し、漏れを受け入れます。

## 起動時に接続する

```bash
sqctl set autoconnect on
```

サービスは機器と一緒に起動し、ネットワークが使えるようになり次第トンネルを張ります。`sqctl set country` と組み合わせれば、ルーターやサーバーは再起動から保護された状態で復帰し、誰もログインする必要がありません。

## 常に最新に保つ

```bash
sqctl update
```

これで最新リリースをダウンロードし、検証し、2 つのプログラムを置き換えてサービスを再起動します。SecurQbit は 1 日 1 回自分でも確認し、新しいものがあれば知らせます — `sqctl status` の下に 1 行:

```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 を元の状態に戻し、それからサービスと 2 つのプログラムを削除します。ルーターでは、追加したファイアウォール設定も併せて削除されます。設定ファイルとログはそのまま残ります。

## 次のステップ

- [CLI リファレンス](/cli-reference) — 各コマンドとその働き。
- [サーバーへの接続](/connecting) — どこに現れるかを選ぶ。
- [トラブルシューティング](/troubleshooting) — うまく動かないとき。
