# 如何復原或回復 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 設定

從 **System > Backup / Flash Firmware** 建立一般 OpenWrt 設定備份，並將它儲存在路由器以外的位置。

請將備份視為敏感資料。其中可能包含帳號或網路設定。請勿將完整封存檔附加到支援案件。

## 選擇破壞性最低的復原方式

| 情況 | 下一步 |
|---|---|
| LuCI 選單消失，但 CLI 可以使用 | 重新啟動 `rpcd`、強制重新整理 LuCI，並確認已安裝 LuCI 套件 |
| VilaNet 無法啟動 | 保留狀態與 `logread`，再依照下方特定套件管理器的修復指引操作 |
| 只有停止 VilaNet 時一般網際網路才能使用 | 保持停止，在變更路由設定前先將遮蔽敏感資訊後的診斷資料傳送給支援團隊 |
| 升級後立即發生故障 | 記錄新舊版本；確認相容性前請勿安裝較舊套件 |
| 路由器本身無法存取 | 依照製造商針對確切型號的本機復原流程操作；不要繼續執行套件指令 |

## 修復消失的 LuCI 選單

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

強制重新整理瀏覽器，然後重新開啟 **Network > VilaNet**。如果仍未出現，請檢查已安裝的套件：

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

## 修復目前版本

相同版本修復與首次安裝不是同一項操作。架構必須完全相符，且只能使用[在 OpenWrt 上安裝 VilaNet](/zh-tw/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

移除套件會變更路由器，且可能移除網頁介面，同時留下必須另行處理的敏感設定。若目標是完整解除安裝，請向支援團隊索取該版本專用的移除程序。暫時復原時，停止服務是較安全的做法。

## 要傳送給支援團隊的內容

請傳送：

- 路由器確切型號與 OpenWrt 版本
- VilaNet 版本
- 套件管理器與架構
- 遮蔽敏感資訊後的狀態與 VilaNet 記錄行
- 停止服務是否恢復網際網路連線
- 上一次成功狀態與第一次失敗狀態的簡短說明

請勿傳送路由器備份、帳號密碼、原始訂閱資料或未經檢查的診斷封存檔。
