# LionVPN Linux 0.1.1 安装指南

本版本发布生产修复包，覆盖上一版有缺陷的 0.1.1 产物。

当前正式发布范围：

- Linux x86_64/amd64：`.deb`、`.rpm`、`.tar.gz`
- OpenWrt 多架构：x86_64、ARM64、ARMv7、MT7621/mipsel
- RHEL/AlmaLinux/Rocky/Fedora：RPM 单包和 `yum-repo/`

## 下载文件

- Debian/Ubuntu 包：`deb/lionvpn_0.1.1_amd64.deb`
- RHEL/AlmaLinux/Rocky/Fedora 包：`rpm/lionvpn-0.1.1-1.el10.x86_64.rpm`
- Yum/DNF 仓库目录：`yum-repo/`
- 通用 Linux 包：`tar/lionvpn-linux-0.1.1-amd64.tar.gz`
- OpenWrt x86_64 兼容包：`openwrt/lionvpn_0.1.1_x86_64.ipk`
- OpenWrt 多架构目录：`openwrt-matrix/`
- GPG 公钥：`lionvpn-linux-release.gpg.asc`

SHA256：

```text
f892ace6db1887c2dd7f659fc28bdd75da1e53fa9f24896e9b8c3f4001b030bd  lionvpn-linux-0.1.1-amd64.tar.gz
11faa7bb9ba26c1e8b95f083c5c7f6ac5ec9cf584332609cb1ff5be5f23c430b  lionvpn_0.1.1_amd64.deb
e446c125dc97e00fdc8230755d8458c60c9b0a23ea25026a8a56c701e90d44a9  lionvpn-0.1.1-1.el10.x86_64.rpm
76c83e98fe62be83b4b8c2bc06084cd6c72783aaec06d5f41f6d807cafbd0fc3  lionvpn_0.1.1_x86_64.ipk
c5345111404bb92025a7f7a4d9de20bbf2fe3d3bd43b924d155192f5e0e41b54  x86_64/lionvpn_0.1.1_x86_64.ipk
1f04592a07693fc688375baf96878922e3e3663a1cc58bccee400c1f8e8e7d98  aarch64_generic/lionvpn_0.1.1_aarch64_generic.ipk
7059f71e21184daf5586c1dcad704d88c7cc26a929a37512fcce5ce53fc9ade5  aarch64_cortex-a53/lionvpn_0.1.1_aarch64_cortex-a53.ipk
4902a951c8996b87a39e10949beb0f171b92074330eaa32d2c4f3e677400b49e  aarch64_cortex-a72/lionvpn_0.1.1_aarch64_cortex-a72.ipk
d2ec4d33c6ae5992a6c5d7ee79a6a5c0697421d8544d8fd40f22f8db7eabd9c9  arm_cortex-a7_neon-vfpv4/lionvpn_0.1.1_arm_cortex-a7_neon-vfpv4.ipk
1d0494d88456236a7c98194ce791b714d4c7c25b3a1f1e67b01cb711069d4823  arm_cortex-a9_vfpv3-d16/lionvpn_0.1.1_arm_cortex-a9_vfpv3-d16.ipk
aaa39e056310007271b3419771afc36db531b3f55ade89f4e6bd1505afb8d2c1  mipsel_24kc/lionvpn_0.1.1_mipsel_24kc.ipk
```

GPG signing key：

```text
uid: LionVPN Linux Release <release@lionvpn.com>
fingerprint: 584D 4D51 DB50 799A 87E2 69B4 A5D9 F97F 499C 0FBB
public key: https://lionvpn.com/downloads/linux/lionvpn-linux-release.gpg.asc
```

校验示例：

```bash
curl -L -o checksums.txt "https://lionvpn.com/downloads/linux/0.1.1/deb/checksums.txt"
curl -L -o checksums.txt.asc "https://lionvpn.com/downloads/linux/0.1.1/deb/checksums.txt.asc"
curl -L -o lionvpn-linux-release.gpg.asc "https://lionvpn.com/downloads/linux/lionvpn-linux-release.gpg.asc"
gpg --import lionvpn-linux-release.gpg.asc
gpg --verify checksums.txt.asc checksums.txt
sha256sum lionvpn_0.1.1_amd64.deb
```

## Debian / Ubuntu 安装

```bash
curl -L -o lionvpn_0.1.1_amd64.deb "https://lionvpn.com/downloads/linux/0.1.1/deb/lionvpn_0.1.1_amd64.deb"
sha256sum lionvpn_0.1.1_amd64.deb
sudo apt install ./lionvpn_0.1.1_amd64.deb
sudo usermod -aG peervpn "$USER"
```

重新登录当前系统用户，或临时执行：

```bash
newgrp peervpn
```

启动服务：

```bash
sudo peervpnd -config /etc/peervpn/peervpnd.json -doctor
sudo systemctl enable --now peervpnd
```

登录和连接：

```bash
printf '%s\n' '<your-password>' | lionvpn login --account '<uid-or-email>' --password-stdin
lionvpn account
lionvpn servers
lionvpn connect
lionvpn status
```

断开和退出：

```bash
lionvpn disconnect
lionvpn logout
```

## RHEL / AlmaLinux / Rocky Linux / Fedora 安装

直接安装 RPM：

```bash
curl -L -o lionvpn-0.1.1-1.el10.x86_64.rpm "https://lionvpn.com/downloads/linux/0.1.1/rpm/lionvpn-0.1.1-1.el10.x86_64.rpm"
sha256sum lionvpn-0.1.1-1.el10.x86_64.rpm
sudo rpm --import https://lionvpn.com/downloads/linux/lionvpn-linux-release.gpg.asc
sudo dnf install ./lionvpn-0.1.1-1.el10.x86_64.rpm
sudo usermod -aG peervpn "$USER"
```

也可以配置 DNF 仓库：

```bash
sudo tee /etc/yum.repos.d/lionvpn.repo >/dev/null <<'EOF'
[lionvpn]
name=LionVPN
baseurl=https://lionvpn.com/downloads/linux/0.1.1/yum-repo/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://lionvpn.com/downloads/linux/lionvpn-linux-release.gpg.asc
EOF

sudo dnf install lionvpn
sudo usermod -aG peervpn "$USER"
```

重新登录当前系统用户后启动服务：

```bash
sudo peervpnd -config /etc/peervpn/peervpnd.json -doctor
sudo systemctl enable --now peervpnd
```

之后使用方式与 Debian/Ubuntu 包相同。

## 通用 Linux tar.gz 安装

适用于非 Debian/RPM 系系统，或需要手动安装的服务器。

```bash
curl -L -o lionvpn-linux-0.1.1-amd64.tar.gz "https://lionvpn.com/downloads/linux/0.1.1/tar/lionvpn-linux-0.1.1-amd64.tar.gz"
sha256sum lionvpn-linux-0.1.1-amd64.tar.gz
tar -xzf lionvpn-linux-0.1.1-amd64.tar.gz
cd lionvpn-linux-0.1.1-amd64
sudo ./scripts/install-linux.sh
sudo peervpnd -config /etc/peervpn/peervpnd.json -doctor
sudo systemctl enable --now peervpnd
```

之后使用方式与 Debian/Ubuntu 包相同。

## OpenWrt / 路由器网关安装

Xbox、电视、游戏主机本身不安装 LionVPN。它们连接到 OpenWrt 路由器，
由路由器作为 VPN 网关。

先确认路由器架构：

```sh
opkg print-architecture
uname -m
```

根据 `opkg print-architecture` 选择匹配的 IPK：

| OpenWrt 架构 | 下载文件 |
| --- | --- |
| `x86_64` | `openwrt-matrix/x86_64/lionvpn_0.1.1_x86_64.ipk` |
| `aarch64_generic` | `openwrt-matrix/aarch64_generic/lionvpn_0.1.1_aarch64_generic.ipk` |
| `aarch64_cortex-a53` | `openwrt-matrix/aarch64_cortex-a53/lionvpn_0.1.1_aarch64_cortex-a53.ipk` |
| `aarch64_cortex-a72` | `openwrt-matrix/aarch64_cortex-a72/lionvpn_0.1.1_aarch64_cortex-a72.ipk` |
| `arm_cortex-a7_neon-vfpv4` | `openwrt-matrix/arm_cortex-a7_neon-vfpv4/lionvpn_0.1.1_arm_cortex-a7_neon-vfpv4.ipk` |
| `arm_cortex-a9_vfpv3-d16` | `openwrt-matrix/arm_cortex-a9_vfpv3-d16/lionvpn_0.1.1_arm_cortex-a9_vfpv3-d16.ipk` |
| `mipsel_24kc` | `openwrt-matrix/mipsel_24kc/lionvpn_0.1.1_mipsel_24kc.ipk` |

下面以 x86_64 为例：

```sh
curl -L -o /tmp/lionvpn_0.1.1_x86_64.ipk "https://lionvpn.com/downloads/linux/0.1.1/openwrt-matrix/x86_64/lionvpn_0.1.1_x86_64.ipk"
opkg install /tmp/lionvpn_0.1.1_x86_64.ipk
```

配置路由器 LAN 信息：

```sh
uci set lionvpn.main.enabled='1'
uci set lionvpn.main.gateway_lan_interface='br-lan'
uci set lionvpn.main.gateway_lan_cidr='192.168.1.0/24'
uci set lionvpn.main.gateway_dns_listen='192.168.1.1:53'
uci commit lionvpn
```

启动服务：

```sh
/etc/init.d/lionvpn doctor
/etc/init.d/lionvpn enable
/etc/init.d/lionvpn start
```

OpenWrt 建议把登录态和设备身份固定到持久状态目录：

```sh
LIONVPN_STATE=/etc/peervpn/state
printf '%s\n' '<your-password>' | lionvpn \
  -session "$LIONVPN_STATE/session.json" \
  -device "$LIONVPN_STATE/device.json" \
  login --account '<uid-or-email>' --password-stdin

lionvpn -session "$LIONVPN_STATE/session.json" -device "$LIONVPN_STATE/device.json" servers
lionvpn -session "$LIONVPN_STATE/session.json" -device "$LIONVPN_STATE/device.json" connect
lionvpn status
```

让 Xbox 或其他设备使用路由器 LAN IP 作为默认网关。DNS 也建议设置为同一个
LAN IP，例如 `192.168.1.1`。

## 注意事项

- OpenWrt 必须选择和 `opkg print-architecture` 完全匹配的 IPK；不要跨架构安装。
- `lionvpn servers` 只显示地区和线路名称，不展示服务器 IP。
- 默认会自动从服务器列表选择 access adapter，不需要手工绑定固定 IP。
- 设备绑定使用 Linux `devtype=23`，本地设备身份保存在 `device.json`。不要删除、复制或共享该文件。
- OpenWrt/Xbox 网关模式建议关闭客户端 IPv6，避免设备通过 IPv6 绕过 IPv4 VPN。
- 命令行不要使用 `--password` 明文传参；请使用 `--password-stdin`，避免密码进入 shell 历史或进程列表。
- `peervpnd` 需要 root 权限管理 TUN、路由、DNS 和防火墙；普通用户可加入 `peervpn` 组后使用 CLI。
- 如果 `lionvpn connect` 提示 socket 权限问题，请重新登录系统用户，或临时使用 `newgrp peervpn`。
- RPM 包已写入 GPG header signature，`yum-repo/repodata/repomd.xml.asc` 已签名。
- 单包下载可以通过 SHA256 和对应目录下的 `checksums.txt.asc` 校验。
