# Cài đặt trên máy tính & router

SecurQbit có một ứng dụng dòng lệnh dành cho những máy không có ứng dụng đồ họa: máy chủ và máy để bàn Linux, Windows, FreeBSD và router OpenWrt. Vẫn là VPN đó và tài khoản đó như trên ứng dụng di động — với iOS và Android, xem [Cài đặt SecurQbit](/installation).

Có hai chương trình được cài:

| Chương trình | Là gì |
| --- | --- |
| `securqbitd` | Dịch vụ chạy nền. Nó giữ phiên đăng nhập của bạn, dựng đường hầm và thiết lập định tuyến của hệ thống. Nó chạy với quyền hệ thống vì việc tạo thiết bị đường hầm đòi hỏi điều đó. |
| `sqctl` | Lệnh bạn gõ. Nó yêu cầu dịch vụ làm việc và cho bạn thấy điều đang diễn ra. Nó không giữ thông tin đăng nhập và không cần quyền riêng nào. |

Bạn làm việc với `sqctl`. Xem [Tham chiếu CLI](/cli-reference) để biết mọi lệnh.

## Cài bằng một lệnh

Trên Linux, macOS, FreeBSD và OpenWrt:

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

Cài đặt chỉ có vậy. Script tự xác định máy này cần gói nào, tải về, đối chiếu với các mã kiểm tra SHA-256 đã công bố, đặt hai chương trình vào đúng chỗ, rồi đăng ký dịch vụ với bất cứ thứ gì đang quản lý các tiến trình chạy lâu ở đây — systemd, OpenRC, runit, SysV init, procd, rc.d hay launchd. Không còn gì phải cấu hình.

Khi xong:

```bash
sqctl login              # mở một liên kết để bạn duyệt trong trình duyệt
sqctl connect --fastest
sqctl status
```

> **Bạn cần có sẵn một tài khoản.** Ứng dụng dòng lệnh đăng nhập bằng cách duyệt trong trình duyệt và không thể tạo tài khoản. Hãy tạo trước trong [ứng dụng iOS hoặc Android](/installation) — kể cả [tài khoản khách](/anonymous-accounts), vốn đăng nhập vào accounts.securqbit.com bằng mã khôi phục và duyệt từ đó.

### Tùy chọn

Trình cài đặt nhận một vài tùy chọn. Đặt chúng sau `sh -s --`:

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

| Tùy chọn | Tác dụng |
| --- | --- |
| `--version <v>` | Cài một bản phát hành cụ thể thay vì bản hiện tại. |
| `--from <path>` | Cài từ tệp nén đã tải sẵn, không cần mạng. |
| `--prefix <dir>` | Cài vào nơi khác `/usr/local` (trên OpenWrt là `/usr`). |
| `--no-start` | Đăng ký dịch vụ nhưng không khởi động. |
| `--no-router` | Trên OpenWrt, cài mà không đưa mạng LAN ra sau đường hầm. |
| `--uninstall` | Gỡ dịch vụ và hai chương trình. |

## Nền tảng được hỗ trợ

| Hệ thống | Kiến trúc |
| --- | --- |
| Linux | x86-64, arm64, armv7 |
| Windows | x86-64, arm64 |
| FreeBSD | x86-64, arm64 |
| OpenWrt | x86-64, arm64, armv7 |
| macOS | Apple silicon, Intel |

Bản dựng tĩnh, nên một gói Linux dùng được cho cả glibc lẫn musl — Debian, Ubuntu, Fedora, Arch, Alpine và Void đều lấy cùng một tệp.

> **Không có bản MIPS, và sẽ không có.** Những router đó chỉ có 8–16 MB bộ nhớ flash trong khi SecurQbit cần khoảng 40 MB, nên một gói dành cho chúng chỉ có thể thất bại — sau khi bạn đã chờ tải xong. Router ARM hoặc x86-64 thì chạy được.

> **Trên macOS, hãy dùng ứng dụng.** Sản phẩm cho Mac là ứng dụng SecurQbit gốc trên App Store. Ứng dụng dòng lệnh dựng và chạy được trên macOS để có thể phát triển ở đó; nó không phải thứ người dùng Mac nên cài.

## Kiểm tra tệp tải về

Trình cài đặt vốn đã đối chiếu tệp nén với các mã kiểm tra công bố kèm theo, và từ chối tiếp tục nếu chúng khác nhau. Để tự kiểm tra, hoặc để cài khi không có mạng:

```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
```

Rồi cài từ chính tệp bạn vừa kiểm tra:

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

Chạy `install.sh` từ bên trong một thư mục đã giải nén sẽ cài *chính* tệp nén đó và không hề đụng tới mạng — và đó chính là cách cài lên một máy chưa có đường ra internet.

> Các mã kiểm tra đi qua cùng kết nối HTTPS với gói cài, nên chúng chứng minh tệp đến nơi nguyên vẹn, chứ không chứng minh máy chủ trung thực. Thứ làm kết nối đáng tin là TLS. Đừng cài qua `http` không mã hóa.

## Dùng mà không cần `sudo`

Dịch vụ chạy dưới quyền root. Socket nó lắng nghe thuộc về nhóm `securqbit` do trình cài đặt tạo, nên thành viên nhóm đó điều khiển được VPN mà không cần mật khẩu:

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

Đăng xuất rồi đăng nhập lại để nhóm mới có hiệu lực. Trên macOS nhóm đó là `admin`, mà quản trị viên vốn đã thuộc về. Trên Windows tương đương là nhóm `SecurQbit Users`, bên cạnh SYSTEM và Administrators.

Cho tới lúc đó, `sqctl` sẽ báo là nó không có quyền và in ra lệnh ở trên.

## Windows

Windows cài từ tệp nén chứ không phải bằng lệnh một dòng.

1. Tải `securqbit-<version>-windows-amd64.tar.gz` từ [cdn.securqbit.com/securqbitd](https://cdn.securqbit.com/securqbitd/) và giải nén.
2. Đặt `wintun.dll` — trình điều khiển bộ điều hợp đường hầm, đúng kiến trúc của bạn — cạnh `securqbitd.exe`. Nó không được phân phối kèm SecurQbit; hãy tải từ [wintun.net](https://www.wintun.net).
3. Trong thư mục đã giải nén, từ một cửa sổ PowerShell chạy **với quyền quản trị**:

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

Lệnh đó chép hai chương trình vào `%ProgramFiles%\SecurQbit`, đăng ký dịch vụ và thêm thư mục vào `PATH` của máy để `sqctl` dùng được từ mọi cửa sổ dòng lệnh. Sau đó hãy mở một cửa sổ mới để nó nhận `PATH` đã cập nhật.

Để gỡ, chạy `.\uninstall.ps1` từ chính cửa sổ có quyền quản trị đó.

## OpenWrt: đưa cả một mạng ra sau VPN

Trên router, SecurQbit bảo vệ mọi thứ trong mạng — điện thoại, laptop, máy chơi game, một chiếc TV thông minh — mà không cần cài gì lên bất kỳ thiết bị nào.

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

Quá trình cài cũng thiết lập tường lửa: một vùng trên thiết bị đường hầm có NAT, chuyển tiếp lưu lượng LAN vào đó, và từ chối IPv6 đi từ LAN ra WAN. Đây là mặc định trên router, bởi một VPN trên router mà chỉ bảo vệ lưu lượng của chính router thì chẳng ai lại cài nó để làm gì. Dùng `--no-router` nếu đó thực sự là điều bạn muốn.

**Trước khi bắt đầu, hãy kiểm tra ba thứ.**

- **Bộ nhớ flash.** Cần khoảng 90 MB trống. Phần lớn router gia đình không có, và trình cài đặt sẽ từ chối thay vì làm đầy lớp overlay — router bị đầy overlay thì không sửa được qua mạng. Cách khắc phục là dựng [extroot](https://openwrt.org/docs/guide-user/additional-software/extroot_configuration) trên USB hoặc thẻ SD.
- **Mô-đun tun.** OpenWrt không đưa nó vào bản dựng mặc định: `opkg update && opkg install kmod-tun` (hoặc `apk add kmod-tun`). Thiếu nó thì lần kết nối đầu tiên mới hỏng, chứ không phải việc cài.
- **curl.** Một số bản dựng không có curl, cũng không có wget làm HTTPS đến nơi đến chốn: `opkg install curl`.

Đọc nhật ký bằng `logread -f -e securqbitd`. Chúng cố ý chỉ nằm trong RAM — mỗi ngày ghi hàng megabyte lên flash của router chính là cách flash hỏng.

> **IPv6 bị từ chối chứ không bị lặng lẽ bỏ, và đó là chủ ý.** Đường hầm mang IPv4, nên để IPv6 của LAN đi ra WAN sẽ khiến một nửa lưu lượng của mỗi thiết bị đi vòng qua VPN. Từ chối khiến máy khách quay về IPv4 ngay lập tức thay vì phải chờ hết thời gian chờ ở từng yêu cầu. `--allow-ipv6` tắt lớp bảo vệ này và chấp nhận rò rỉ.

## Kết nối khi khởi động

```bash
sqctl set autoconnect on
```

Dịch vụ khởi động cùng máy và dựng đường hầm ngay khi có mạng. Kết hợp với `sqctl set country`, một router hay máy chủ khởi động lại xong là đã được bảo vệ, không cần ai đăng nhập.

## Luôn ở bản mới nhất

```bash
sqctl update
```

Lệnh này tải bản phát hành hiện tại, kiểm tra nó, thay cả hai chương trình rồi khởi động lại dịch vụ. SecurQbit cũng tự kiểm tra mỗi ngày một lần và báo cho bạn khi có bản mới — ở một dòng dưới `sqctl status`:

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

Nó chỉ báo thôi. Nó không bao giờ tự cài, bởi hoàn tất một bản cập nhật đồng nghĩa với khởi động lại, mà khởi động lại thì ngắt đường hầm đang dùng. `sqctl set updates off` sẽ dừng việc kiểm tra; `sqctl update` vẫn dùng được.

## Gỡ bỏ

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

Lệnh này hạ đường hầm trước, để định tuyến và DNS của bạn trở lại như cũ, rồi mới gỡ dịch vụ và hai chương trình. Trên router, nó cũng gỡ luôn phần cấu hình tường lửa mà nó đã thêm. Tệp cấu hình và nhật ký của bạn vẫn được giữ nguyên.

## Bước tiếp theo

- [Tham chiếu CLI](/cli-reference) — từng lệnh và tác dụng của nó.
- [Kết nối tới máy chủ](/connecting) — chọn nơi bạn hiện diện.
- [Khắc phục sự cố](/troubleshooting) — khi có gì đó không chạy.
