# 如何恢复或回滚 VilaNet 路由器安装？

请先不要重置路由器或重新刷写固件。首先恢复普通互联网访问，保留一份简要诊断记录，并确定问题来自 VilaNet 服务、其软件包还是路由器固件。

{% hint style="warning" %}
请勿将重新刷写固件作为第一个故障排除步骤。固件操作失败或固件不兼容可能导致路由器无法访问。固件恢复因型号而异，不在本指南的范围内。
{% endhint %}

## 首先恢复互联网访问

如果路由器下游的设备无法访问互联网，请通过 SSH 停止 VilaNet：

```sh
/etc/init.d/vilanet stop
/etc/init.d/vilanet status
```

在连接到路由器的设备上测试普通 HTTPS 网站。如果互联网访问恢复，请让 VilaNet 保持停止状态，同时收集证据。

如果无法通过网络访问路由器，请按照路由器制造商针对该准确型号提供的本地恢复说明操作。不要使用通用固件镜像。

## 记录当前状态

重新安装任何内容前运行以下命令：

```sh
cat /etc/openwrt_release
command -v opkg || command -v apk
vilanet version
vilanet status --json
/etc/init.d/vilanet status
logread | grep vilanet
```

在本地保存输出。发送给支持团队前请先检查，并移除电子邮件地址、订阅数据、服务器标识符、IP 地址或令牌。绝不要发送密码。

还请记录：

- 路由器制造商和准确型号
- 是否仍能通过 LuCI 和 SSH 访问路由器
- 故障发生前刚刚执行的操作
- 停止 VilaNet 后普通互联网访问是否恢复
- 已安装的 VilaNet 软件包文件名

## 备份 VilaNet 配置

通过**系统 > 备份/升级**创建普通 OpenWrt 配置备份，并将其存放在路由器以外的位置。

请将备份视为敏感信息。它可能包含账户或网络配置。不要将完整压缩包附在支持工单中。

## 选择破坏性最小的恢复方法

| 情况 | 后续操作 |
|---|---|
| LuCI 菜单缺失，但 CLI 正常工作 | 重启 `rpcd`、强制刷新 LuCI，并确认 LuCI 软件包已安装 |
| VilaNet 无法启动 | 保留状态和 `logread`，然后按照下方对应软件包管理器的修复说明操作 |
| 只有停止 VilaNet 时普通互联网才能工作 | 保持停止状态，在更改路由设置前向支持团队发送脱敏诊断信息 |
| 升级后立即出现故障 | 记录旧版本和新版本；确认兼容性前不要安装旧版软件包 |
| 路由器本身无法访问 | 按照制造商针对准确型号提供的本地恢复流程操作；不要继续运行软件包命令 |

## 修复缺失的 LuCI 菜单

```sh
/etc/init.d/rpcd restart
```

强制刷新浏览器，然后重新打开**网络 > VilaNet**。如果仍然没有，请检查已安装的软件包：

```sh
opkg list-installed 2>/dev/null | grep vilanet
apk list --installed 2>/dev/null | grep vilanet
```

## 修复当前版本

同版本修复与首次安装并不是同一种操作。请准确匹配架构，并且只使用[在 OpenWrt 上安装 VilaNet](/zh-cn/routers/openwrt/)中的当前 v1.0.33 版本资源。

对于使用 `opkg` 的 OpenWrt 24，将两个匹配的 IPK 文件复制到 `/tmp`，然后运行：

```sh
opkg install --force-reinstall \
  /tmp/vilanet-core_1.0.33_<arch>.ipk \
  /tmp/luci-app-vilanet_1.0.33_all.ipk
/etc/init.d/vilanet restart
```

对于使用 `apk` 的 OpenWrt 25，同版本修复时不要重复使用全新安装所用的 `apk add` 命令。`apk-tools` v3 使用 `apk fix --reinstall`，而准确的本地文件恢复流程还必须保留版本完整性检查。在该端到端命令发布并经过路由器验证之前，请让 VilaNet 保持停止状态，并使用上述脱敏证据联系支持团队。

对于 iStoreOS，不要假定再次上传当前的同一个 `.run` 安装程序就能修复同版本安装。v1.0.33 安装程序使用常规软件包安装流程，可能会跳过同版本文件。在支持修复的安装程序流程发布并在 iStoreOS 上得到验证之前，请让 VilaNet 保持停止状态，并使用上述脱敏证据联系支持团队。

重新安装并不能证明恢复成功。安装后，请确认以下三个条件全部满足：

1. `/etc/init.d/vilanet status` 报告服务正在运行。
2. `vilanet status --json` 报告预期的连接状态。
3. 路由器下游的设备可以加载普通 HTTPS 网站。

## 关于降级

旧版软件包可能使用不同的配置架构或凭据格式。不要仅仅因为有旧版资源，就在客户路由器上降级。只有在 VilaVPN 支持团队确认了准确的版本组合、路由器架构和回滚流程后，才可使用旧版本。

## 仅在必要时移除 VilaNet

移除软件包会更改路由器，并可能移除 Web 界面，同时留下需要单独处理的敏感配置。如果目标是完全卸载，请向支持团队索取该版本专用的移除流程。临时恢复时，停止服务更加安全。

## 应向支持团队发送什么

请发送：

- 准确的路由器型号和 OpenWrt 版本
- VilaNet 版本
- 软件包管理器和架构
- 脱敏后的状态和 VilaNet 日志行
- 停止服务后互联网访问是否恢复
- 对最后一个正常状态和第一个故障状态的简短说明

请勿发送路由器备份、账户密码、原始订阅数据或未经检查的诊断压缩包。
