跳轉到內容

OpenWRT 安裝 CloudDrive2 完全指南(2026 年最新版)

CloudDrive2 部署到 OpenWRT/iStoreOS 路由器,實現阿里雲盤、百度網盤、OneDrive 等雲存儲的本地化掛載訪問,打造輕量級雲端 NAS 系統。

💡 提示:本文已更新到 2026 年 4 月,包含最新的 Docker 配置優化和網盤兼容性說明。

📖 什麼是 CloudDrive2?

核心功能

CloudDrive2 是什麼?

CloudDrive2 是一款強大的雲存儲掛載工具
可以將多個雲盤掛載為本地磁盤/目錄
支持 Windows/macOS/Linux/Docker/NAS

核心價值:
✅ 雲端存儲本地化訪問
✅ 多網盤統一管理
✅ 無需下載直接播放
✅ 節省本地存儲空間

支持的雲平臺:

國內網盤:
✅ 阿里雲盤(推薦)
✅ 百度網盤
✅ 天翼雲盤
✅ 移動雲盤
✅ 115 網盤
✅ 迅雷雲盤
✅ 夸克網盤

國際網盤:
✅ Microsoft OneDrive
✅ Google Drive
✅ Dropbox
✅ WebDAV 協議
✅ S3 兼容存儲

應用場景

家庭媒體中心:

場景:電影/電視劇存儲在阿里雲盤
優勢:
- 無需下載到本地
- Jellyfin/Emby 直接讀取
- 多人同時觀看
- 不佔用路由器存儲空間

辦公文檔同步:

場景:工作文件存儲在 OneDrive/百度網盤
優勢:
- 局域網內快速訪問
- 多設備共享
- 版本自動同步
- 離線緩存加速

數據備份歸檔:

場景:重要數據備份到多個雲盤
優勢:
- 異地容災
- 成本低廉
- 自動化管理
- 隨時恢復

個人理解

💬 使用 CloudDrive2 2 年的真實體驗:

為什麼選擇 CloudDrive2 而非其他方案?

對比 Rclone:

CloudDrive2 優勢:
✅ 圖形化管理界面(友好)
✅ 中文支持完善
✅ 國內網盤優化好
✅ 掛載更穩定
✅ 緩存機制智能

Rclone 優勢:
✅ 開源免費
✅ 支持平臺更多
✅ 社區資源豐富
❌ 配置複雜(命令行)
❌ 國內網盤支持弱

對比 Alist:

CloudDrive2 優勢:
✅ 真正的文件系統掛載
✅ 應用兼容性更好
✅ 性能更優

Alist 優勢:
✅ 純 Web 界面
✅ 資源佔用更低
✅ 部署更簡單
❌ 部分應用無法識別

我的觀點:

  • 如果你需要真正的文件系統掛載(如 Jellyfin 刮削),CloudDrive2 是最佳選擇
  • 如果只是Web 瀏覽和下載,Alist 更輕量
  • 如果追求極致自由和定製,Rclone 更靈活
  • 對於國內用戶,CloudDrive2 的本土化做得最好

🔍 前置條件檢查

硬件要求

最低配置:

CPU: ARMv7 或 x86_64
內存: ≥ 512 MB(推薦 1 GB+)
存儲: ≥ 2 GB 可用空間(Docker + 緩存)
網絡: 穩定的互聯網連接
USB: 可選(用於擴展存儲)

推薦配置:

路由器:
- x86 軟路由(J4125/N5105/N100)
- 或高性能 ARM 路由器(RT-AX86U/GT-AX6000)
- 內存 ≥ 2 GB
- SSD 或高速 U 盤

存儲擴展:
- USB 3.0 移動硬盤/SSD
- 或 SATA/NVMe(x86 平臺)

💡 硬件選擇建議:

平臺優勢劣勢適用場景
x86 軟路由性能強、擴展性好功耗高、成本高重度使用、多服務
ARM 路由器功耗低、體積小性能有限輕度使用、單服務
虛擬機靈活、易備份需要宿主機ESXi/PVE 環境

軟件要求

必需組件:

✅ OpenWRT/iStoreOS 固件
✅ Docker 已安裝並運行
✅ SSH 訪問權限
✅ 穩定的網絡連接

檢查命令:

bash
# 1. 查看系統信息
uname -a
cat /etc/openwrt_release

# 2. 檢查 Docker 狀態
docker info
docker ps

# 3. 檢查可用空間
df -h

# 4. 檢查內存
free -m

# 5. 檢查 fuse3
which fusermount3
fusermount3 --version

如果 Docker 未安裝:

參考本站教程:Docker 安裝指南

網絡環境確認

關鍵檢查點:

✅ 路由器能正常訪問互聯網
✅ DNS 解析正常
✅ 防火牆允許出站連接
✅ 網盤服務未被屏蔽

測試方法:

bash
# 測試外網連接
ping -c 4 aliyundrive.com
ping -c 4 baidu.com

# 測試 HTTPS
wget -O /dev/null https://www.aliyundrive.com

# 測試 Docker Hub
docker pull hello-world

⚠️ 特別注意:

如果使用旁路由模式

常見問題:
❌ Docker 容器無法上網
❌ DNS 解析失敗
❌ 網盤連接超時

解決方法:
1. 確認主路由轉發正常
2. 檢查 iptables 規則
3. 臨時改為主路由測試
4. 配置正確的網關和 DNS

💾 Docker 空間擴容

為什麼需要擴容?

問題背景:

大多數 OpenWRT 固件的 Docker 分區默認很小
通常只有 100-500 MB

CloudDrive2 需要:
- Docker 鏡像:~300 MB
- 配置文件:~50 MB
- 緩存空間:視使用情況而定
- 日誌文件:持續增長

結果:空間不足導致安裝失敗或運行異常

判斷是否需要擴容:

bash
# 查看 Docker 存儲使用情況
docker system df

# 查看根分區可用空間
df -h /

# 如果可用空間 < 1 GB,建議擴容

擴容 docker 空間

openwrt一般只要不是自己DIY編譯的很少有把docker分區編譯夠用的,只能通過掛載分區的方式來實現擴容。夠用的直接跳過,進入到下個標題直接配置

創建分區或者添加新分區

一般添加的新的磁盤默認是看不到的,需要執行一下命令 創建分區 或者 格式化成ext4 才能在掛載點看到該分區。

查看當前系統所有硬盤及分區情況:fdisk -l

在指定的硬盤(例:/dev/sdb)上創建分區:fdisk /dev/sdb , 根據提示進行下一步操作

如:查看幫助(h),新建分區(n),刪除分區(d),查看分區情況(p)

分區成功後,寫分區表並退出(w)

對新建分區(例:/dev/sda1)進行格式化: mkfs.ext4 /dev/sdb1

由於我自己的是虛擬機的環境,就直接添加一個分區,格式化後直接掛載了,如果是單個物理盤,而且已經安裝了openwrt,請根據命令創建新分區,格式化ext4後掛載即可"

clouddrive2

clouddrive2

選擇好分區和掛載目錄,勾選上 啟用此掛載點

clouddrive2

在高級選項裡選擇 ext4 ,點擊 保存&應用

然後重啟openwrt,一定要重啟,不然不生效,生效後如下

clouddrive2

把分區掛載到opt目錄後,也就是docker的目錄達到了擴容的目的

處理完擴容問題後,接下來進入安裝階段

部署過程

TIP

運行前請先確保系統已安裝fuse3,確定fusermount3命令可以正常運行

  • 通過ssh連接openwrt
  • 開啟MountFlags
sh
mkdir -p /etc/systemd/system/docker.service.d/

方案一:使用外部存儲(推薦)⭐

適用場景:

✅ 有 USB 移動硬盤/U 盤
✅ 需要大容量緩存
✅ 追求最佳性能

操作步驟:

步驟 1:準備存儲設備

推薦使用:
- USB 3.0 移動硬盤(容量大)
- USB 3.0 U 盤(速度快)
- SATA/NVMe SSD(x86 平臺)

避免使用:
❌ USB 2.0 設備(速度慢)
❌ 老舊 U 盤(壽命短)

步驟 2:格式化磁盤

磁盤格式化

bash
# 1. 查看磁盤列表
fdisk -l

# 找到你的 USB 設備,例如 /dev/sda

# 2. 創建分區(如果需要)
fdisk /dev/sda
# 按 n 創建新分區
# 按 w 保存退出

# 3. 格式化為 ext4
mkfs.ext4 /dev/sda1

# 等待完成(大容量磁盤可能需要幾分鐘)

步驟 3:掛載磁盤

掛載配置

bash
# 1. 創建掛載點
mkdir -p /opt

# 2. 手動掛載測試
mount /dev/sda1 /opt

# 3. 驗證掛載
df -h /opt

# 應該看到類似輸出:
# /dev/sda1  931G  77M  884G   1% /opt

步驟 4:設置開機自動掛載

方法 A:通過 Web 界面(推薦)

1. 登錄 LuCI 管理界面
2. 系統 → 掛載點
3. 點擊"添加"
4. 選擇 UUID 或設備(/dev/sda1)
5. 掛載點填寫:/opt
6. 文件系統:ext4
7. 勾選"啟用此掛載點"
8. 點擊"保存並應用"

啟用掛載點

方法 B:通過命令行

bash
# 1. 獲取磁盤 UUID
blkid /dev/sda1

# 輸出示例:
# /dev/sda1: UUID="xxxx-xxxx" TYPE="ext4"

# 2. 編輯 fstab
vi /etc/config/fstab

# 3. 添加以下內容
config mount
    option target '/opt'
    option uuid 'xxxx-xxxx'  # 替換為你的 UUID
    option fstype 'ext4'
    option options 'rw,sync,noatime'
    option enabled '1'

# 4. 重啟生效
reboot

步驟 5:遷移 Docker 數據(可選)

如果之前已經安裝了 Docker:

bash
# 1. 停止 Docker 服務
/etc/init.d/dockerd stop

# 2. 遷移現有數據
mv /var/lib/docker/* /opt/docker/

# 3. 創建軟鏈接
ln -s /opt/docker /var/lib/docker

# 4. 啟動 Docker
/etc/init.d/dockerd start

# 5. 驗證
docker info | grep "Docker Root Dir"
# 應該顯示:Docker Root Dir: /var/lib/docker -> /opt/docker

方案二:擴展現有分區

適用場景:

✅ 沒有外部存儲設備
✅ 閃存空間充足
✅ 輕度使用

操作步驟:

步驟 1:檢查可用空間

bash
# 查看各分區使用情況
df -h

# 查看塊設備
lsblk

步驟 2:調整分區大小

警告

此操作有風險,可能導致系統無法啟動! 務必先備份重要數據!

bash
# 僅適用於有未分配空間的情況
# 使用 fdisk 或 parted 調整分區
# 具體操作因設備而異,建議查閱相關文檔

# 更安全的做法:
# 重新刷入自定義固件,增大 Docker 分區

步驟 3:清理 Docker 緩存

如果無法擴容,可以清理無用數據:

bash
# 清理未使用的鏡像
docker image prune -a

# 清理未使用的容器
docker container prune

# 清理未使用的卷
docker volume prune

# 清理所有未使用對象
docker system prune -a --volumes

# 查看清理後的空間
df -h /var/lib/docker

驗證擴容效果

bash
# 1. 檢查掛載狀態
mount | grep /opt

# 2. 檢查可用空間
df -h /opt

# 3. 測試寫入權限
touch /opt/test.txt
echo "test" > /opt/test.txt
cat /opt/test.txt
rm /opt/test.txt

# 4. 檢查 Docker 是否正常運行
docker info
docker run hello-world

🐳 部署 CloudDrive2

步驟 1:安裝依賴

檢查 fuse3:

bash
# 檢查是否已安裝
which fusermount3

# 如果返回路徑,說明已安裝
# 如果無返回,需要安裝

安裝 fuse3:

bash
# 更新軟件包列表
opkg update

# 安裝 fuse3
opkg install fuse3

# 驗證安裝
fusermount3 --version

💡 常見問題:

問題:找不到 fuse3 包

解決:
1. 檢查軟件源配置
   cat /etc/opkg/distfeeds.conf
   
2. 更換軟件源
   使用官方源或國內鏡像源
   
3. 手動編譯安裝
   從 GitHub 下載源碼編譯

步驟 2:配置 MountFlags

為什麼需要配置?

Docker 容器需要訪問宿主機的掛載點
默認情況下,Docker 的掛載命名空間是私有的
需要設置為 shared 才能正確掛載雲盤

操作步驟:

bash
# 1. 創建 Docker 服務配置目錄
mkdir -p /etc/systemd/system/docker.service.d/

# 2. 創建配置文件
cat <<EOF > /etc/systemd/system/docker.service.d/clear_mount_propagation_flags.conf
[Service]
MountFlags=shared
EOF

# 3. 驗證文件內容
cat /etc/systemd/system/docker.service.d/clear_mount_propagation_flags.conf

# 應該看到:
# [Service]
# MountFlags=shared

替代方案(無 systemd):

如果你的 OpenWRT 沒有 systemd:

bash
# 編輯 Docker 啟動腳本
vi /etc/init.d/dockerd

# 在啟動命令前添加
mount --make-shared /opt

# 或者添加到本地啟動腳本
vi /etc/rc.local

# 在 exit 0 之前添加
mount --make-shared /opt
exit 0

步驟 3:設置掛載點

查找掛載點:

bash
# 查看所有掛載點
df -h

# 輸出示例:
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/root       100M   80M   20M  80% /
# /dev/sda1       931G   77M  884G   1% /opt

查找掛載點

設置共享掛載:

bash
# 將 /opt 設置為共享掛載
mount --make-shared /opt

# 驗證
findmnt -o TARGET,PROPAGATION /opt

# 應該看到:
# TARGET PROPAGATION
# /opt   shared

永久生效:

方法 1:添加到 rc.local

bash
# 編輯啟動腳本
vi /etc/rc.local

# 在 exit 0 之前添加
mount --make-shared /opt

# 保存退出

方法 2:創建啟動腳本

bash
# 創建腳本
cat <<EOF > /jffs/scripts/set_mount_shared.sh
#!/bin/sh
sleep 5
mount --make-shared /opt
echo "$(date): MountFlags set to shared" >> /tmp/mount_flags.log
EOF

# 賦予執行權限
chmod +x /jffs/scripts/set_mount_shared.sh

# 添加到開機啟動
echo "/jffs/scripts/set_mount_shared.sh &" >> /etc/rc.local

步驟 4:拉取 Docker 鏡像

從 Docker Hub 拉取:

bash
# 拉取最新不穩定版本(推薦,功能最新)
docker pull cloudnas/clouddrive2-unstable

# 或拉取穩定版本
docker pull cloudnas/clouddrive2

# 驗證鏡像
docker images | grep clouddrive2

💡 加速下載:

如果下載速度慢,可以配置鏡像加速器:

bash
# 編輯 Docker 配置
vi /etc/docker/daemon.json

# 添加以下內容
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://huecker.io",
    "https://dockerhub.timeweb.cloud"
  ]
}

# 重啟 Docker
/etc/init.d/dockerd restart

# 重新拉取
docker pull cloudnas/clouddrive2-unstable

國內鏡像源推薦:

✅ DaoCloud: https://docker.m.daocloud.io
✅ Timeweb: https://dockerhub.timeweb.cloud
✅ Huecker: https://huecker.io
✅ 阿里雲: https://<your-id>.mirror.aliyuncs.com

步驟 5:啟動容器

完整啟動命令:

bash
docker run -d \
  --name clouddrive2 \
  --restart unless-stopped \
  --env CLOUDDRIVE_HOME=/Config \
  -v /opt/clouddrive/shared:/CloudNAS:shared \
  -v /opt/clouddrive/Config:/Config \
  -v /opt/clouddrive/media/shared:/media:shared \
  -p 19798:19798 \
  --privileged \
  --device /dev/fuse:/dev/fuse \
  cloudnas/clouddrive2-unstable

參數詳解:

參數說明必要性
-d後臺運行✅ 必需
--name clouddrive2容器名稱✅ 推薦
--restart unless-stopped自動重啟策略✅ 推薦
--env CLOUDDRIVE_HOME=/Config配置目錄環境變量✅ 必需
-v /opt/.../shared:/CloudNAS:shared雲盤掛載點✅ 必需
-v /opt/.../Config:/Config配置文件目錄✅ 必需
-v /opt/.../media:/media:shared媒體文件目錄⚠️ 可選
-p 19798:19798Web 管理端口✅ 必需
--privileged特權模式✅ 必需
--device /dev/fuse:/dev/fuseFUSE 設備映射✅ 必需

目錄結構說明:

/opt/clouddrive/
├── Config/          # 配置文件(必須)
│   ├── config.json  # 主配置
│   └── logs/        # 日誌文件
├── shared/          # 雲盤掛載點(必須)
│   ├── 阿里雲盤/
│   ├── 百度網盤/
│   └── OneDrive/
└── media/           # 媒體文件(可選)
    ├── Movies/
    └── TV/

自定義配置示例:

示例 1:最小化配置

bash
docker run -d \
  --name clouddrive2 \
  --restart unless-stopped \
  -v /opt/cd2/Config:/Config \
  -v /opt/cd2/Shared:/CloudNAS:shared \
  -p 19798:19798 \
  --privileged \
  --device /dev/fuse:/dev/fuse \
  cloudnas/clouddrive2-unstable

示例 2:完整配置(推薦)

bash
docker run -d \
  --name clouddrive2 \
  --restart unless-stopped \
  --env CLOUDDRIVE_HOME=/Config \
  --env TZ=Asia/Shanghai \
  -v /opt/clouddrive/Config:/Config \
  -v /opt/clouddrive/Shared:/CloudNAS:shared \
  -v /opt/clouddrive/Media:/media:shared \
  -v /opt/clouddrive/Cache:/cache:shared \
  -p 19798:19798 \
  --privileged \
  --device /dev/fuse:/dev/fuse \
  --memory=512m \
  --cpus=1.0 \
  cloudnas/clouddrive2-unstable

額外參數說明:

--env TZ=Asia/Shanghai     # 設置時區
--memory=512m              # 限制內存使用
--cpus=1.0                 # 限制 CPU 使用
-v /opt/.../Cache:/cache   # 緩存目錄(提升性能)

步驟 6:驗證部署

檢查容器狀態:

bash
# 查看運行中的容器
docker ps | grep clouddrive2

# 應該看到類似輸出:
# CONTAINER ID  IMAGE                             STATUS
# abc123def456  cloudnas/clouddrive2-unstable     Up 2 minutes

查看日誌:

bash
# 實時查看日誌
docker logs -f clouddrive2

# 查看最近 100 行日誌
docker logs --tail 100 clouddrive2

# 正常啟動應該看到:
# CloudDrive2 started successfully
# Web UI listening on port 19798

訪問 Web 界面:

瀏覽器訪問:
http://192.168.1.1:19798

替換為你的路由器 IP 地址

CloudDrive2 Web 界面

初次訪問:

1. 設置管理員密碼
2. 閱讀並接受使用協議
3. 進入主界面

☁️ 配置雲盤掛載

通用配置流程

步驟 1:登錄 Web 管理界面

訪問:http://路由器IP:19798
輸入管理員密碼

步驟 2:添加雲盤

1. 點擊"添加雲盤"
2. 選擇雲盤類型
3. 掃碼或輸入賬號密碼
4. 授權訪問
5. 設置掛載參數

步驟 3:驗證掛載

bash
# SSH 登錄路由器
ssh root@192.168.1.1

# 查看掛載的雲盤
ls -la /opt/clouddrive/Shared/

# 應該看到雲盤文件夾
# 嘗試讀取文件
cat /opt/clouddrive/Shared/阿里雲盤/test.txt

阿里雲盤配置(推薦)⭐⭐⭐⭐⭐

優勢:

✅ 不限速(相比百度網盤)
✅ 空間大(免費 100GB+)
✅ 穩定性好
✅ 視頻播放流暢

配置步驟:

方法 1:掃碼登錄(推薦)

1. 在 CloudDrive2 中選擇"阿里雲盤"
2. 顯示二維碼
3. 用手機阿里雲盤 App 掃碼
4. 確認授權
5. 自動完成配置

方法 2:Token 登錄

1. 訪問阿里雲盤網頁版
2. 登錄後打開開發者工具(F12)
3. 切換到 Network 標籤
4. 刷新頁面
5. 找到 token 請求
6. 複製 refresh_token
7. 粘貼到 CloudDrive2

高級配置:

緩存優化:

設置 → 阿里雲盤 → 緩存配置
- 啟用本地緩存:是
- 緩存目錄:/opt/clouddrive/Cache
- 緩存大小:10-50 GB(根據空間調整)
- 緩存策略:智能預讀

傳輸優化:

- 併發下載數:3-5
- 分片大小:10 MB
- 啟用斷點續傳:是
- 上傳限速:不限(或根據帶寬設置)

💡 使用技巧:

技巧 1:自動備份照片

手機阿里雲盤設置:
- 開啟自動備份
- 選擇 WiFi 環境下
- CloudDrive2 自動同步到本地

技巧 2:配合 Jellyfin

Jellyfin 媒體庫路徑設置為:
/opt/clouddrive/Shared/阿里雲盤/Movies

優勢:
- 無需下載即可播放
- 自動刮削元數據
- 多設備同時觀看

技巧 3:定期清理緩存

bash
# 創建清理腳本
cat <<EOF > /jffs/scripts/clean_cd2_cache.sh
#!/bin/sh
CACHE_DIR="/opt/clouddrive/Cache"
MAX_SIZE=50  # GB

CURRENT_SIZE=$(du -sg $CACHE_DIR | cut -f1)

if [ $CURRENT_SIZE -gt $MAX_SIZE ]; then
    rm -rf $CACHE_DIR/*
    echo "$(date): Cache cleaned" >> /tmp/cd2_clean.log
fi
EOF

chmod +x /jffs/scripts/clean_cd2_cache.sh

# 每週日凌晨 3 點執行
cru a clean_cd2_cache "0 3 * * 0 /jffs/scripts/clean_cd2_cache.sh"

百度網盤配置

特點:

⚠️ 非會員限速嚴重(~100 KB/s)
✅ 資源豐富
✅ 分享生態成熟

配置步驟:

1. 選擇"百度網盤"
2. 掃碼或賬號密碼登錄
3. 授權訪問
4. 配置掛載參數

優化建議:

購買會員:

如果經常使用,建議購買超級會員
- 不限速下載
- 更大存儲空間
- 視頻在線播放

緩存策略:

- 啟用強力緩存
- 增大緩存空間
- 減少重複下載

只讀掛載:

如果不需上傳,設置為只讀模式
避免誤操作刪除雲端文件

OneDrive 配置

優勢:

✅ Office 365 用戶空間大(1 TB+)
✅ 國際訪問穩定
✅ 與 Windows 集成好

配置步驟:

1. 選擇"Microsoft OneDrive"
2. 跳轉到微軟登錄頁面
3. 輸入賬號密碼
4. 授權訪問
5. 選擇要掛載的驅動器

多賬戶支持:

可以添加多個 OneDrive 賬戶
- 個人賬戶
- 工作/學校賬戶
- 分別掛載到不同目錄

💡 使用技巧:

配合 Office 使用:

Windows 上編輯文檔
自動同步到 OneDrive
路由器上可直接訪問最新版本

備份重要文檔:

將工作文檔存儲在 OneDrive
CloudDrive2 提供本地訪問
雙重保障

其他雲盤配置

天翼雲盤:

適合:中國電信用戶
優勢:電信網絡速度快
配置:類似阿里雲盤

115 網盤:

適合:重度下載用戶
優勢:資源豐富
注意:需要會員

WebDAV:

適合:自建 NAS/服務器
優勢:完全可控
配置:
- URL: https://your-server.com/webdav
- 用戶名/密碼
- 支持加密傳輸

⚙️ 高級配置與優化

性能優化

1. 緩存配置優化

緩存目錄結構:

bash
# 創建專用緩存目錄
mkdir -p /opt/clouddrive/Cache/{aliyun,baidu,onedrive}

# 設置權限
chmod 755 /opt/clouddrive/Cache

緩存參數調優:

Web 界面 → 設置 → 全局緩存
- 啟用緩存:是
- 緩存路徑:/opt/clouddrive/Cache
- 最大緩存:30-50 GB
- 緩存過期:7 天
- 預讀策略:智能

2. 網絡優化

調整併發連接:

設置 → 網絡
- 最大併發連接:50-100
- 單盤併發:3-5
- 超時時間:30 秒
- 重試次數:3

DNS 優化:

bash
# 使用更快的 DNS
vi /etc/config/dhcp

option localuse '1'
list server '119.29.29.29'  # 騰訊 DNS
list server '223.5.5.5'     # 阿里 DNS

3. 資源限制

限制容器資源:

bash
# 停止容器
docker stop clouddrive2

# 刪除容器
docker rm clouddrive2

# 重新啟動並限制資源
docker run -d \
  --name clouddrive2 \
  --restart unless-stopped \
  --memory=512m \
  --cpus=1.0 \
  --env CLOUDDRIVE_HOME=/Config \
  -v /opt/clouddrive/Config:/Config \
  -v /opt/clouddrive/Shared:/CloudNAS:shared \
  -p 19798:19798 \
  --privileged \
  --device /dev/fuse:/dev/fuse \
  cloudnas/clouddrive2-unstable

監控資源使用:

bash
# 查看容器資源使用
docker stats clouddrive2

# 輸出示例:
# NAME            CPU %   MEM USAGE / LIMIT
# clouddrive2     5.2%    256MiB / 512MiB

安全加固

1. 修改默認端口

bash
# 停止容器
docker stop clouddrive2
docker rm clouddrive2

# 使用自定義端口啟動
docker run -d \
  --name clouddrive2 \
  -p 29798:19798 \  # 改為 29798
  ...其他參數不變...
  cloudnas/clouddrive2-unstable

# 訪問地址變為:
# http://192.168.1.1:29798

2. 啟用 HTTPS(進階)

使用 Nginx 反向代理:

bash
# 安裝 Nginx
opkg install nginx

# 配置反向代理
vi /etc/nginx/conf.d/clouddrive2.conf

server {
    listen 443 ssl;
    server_name cd2.yourdomain.com;
    
    ssl_certificate /etc/ssl/certs/your_cert.pem;
    ssl_certificate_key /etc/ssl/private/your_key.pem;
    
    location / {
        proxy_pass http://127.0.0.1:19798;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

# 重啟 Nginx
/etc/init.d/nginx restart

3. 訪問控制

限制訪問 IP:

bash
# 使用 iptables 限制
iptables -A INPUT -p tcp --dport 19798 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 19798 -j DROP

# 只允許內網訪問

4. 定期更新

bash
# 創建更新腳本
cat <<EOF > /jffs/scripts/update_cd2.sh
#!/bin/sh
echo "$(date): Updating CloudDrive2..."

# 拉取最新鏡像
docker pull cloudnas/clouddrive2-unstable

# 停止舊容器
docker stop clouddrive2
docker rm clouddrive2

# 啟動新容器(使用之前的啟動命令)
docker run -d \
  --name clouddrive2 \
  --restart unless-stopped \
  --env CLOUDDRIVE_HOME=/Config \
  -v /opt/clouddrive/Config:/Config \
  -v /opt/clouddrive/Shared:/CloudNAS:shared \
  -p 19798:19798 \
  --privileged \
  --device /dev/fuse:/dev/fuse \
  cloudnas/clouddrive2-unstable

echo "$(date): Update completed" >> /tmp/cd2_update.log
EOF

chmod +x /jffs/scripts/update_cd2.sh

# 每月 1 號凌晨 4 點自動更新
cru a update_cd2 "0 4 1 * * /jffs/scripts/update_cd2.sh"

自動化腳本

1. 健康檢查腳本

bash
#!/bin/bash
# /jffs/scripts/cd2_health_check.sh

CONTAINER_NAME="clouddrive2"
LOG_FILE="/tmp/cd2_health.log"

# 檢查容器是否運行
if ! docker ps | grep -q $CONTAINER_NAME; then
    echo "$(date): ERROR - Container not running!" >> $LOG_FILE
    
    # 嘗試重啟
    docker start $CONTAINER_NAME
    sleep 5
    
    # 再次檢查
    if docker ps | grep -q $CONTAINER_NAME; then
        echo "$(date): Container restarted successfully" >> $LOG_FILE
    else
        echo "$(date): FAILED to restart container" >> $LOG_FILE
    fi
else
    echo "$(date): OK - Container is running" >> $LOG_FILE
fi

# 檢查掛載點
if ! mountpoint -q /opt/clouddrive/Shared; then
    echo "$(date): WARNING - Mount point not accessible" >> $LOG_FILE
fi

每小時檢查:

bash
cru a cd2_health "0 * * * * /jffs/scripts/cd2_health_check.sh"

2. 自動清理日誌

bash
#!/bin/bash
# /jffs/scripts/cd2_clean_logs.sh

LOG_DIR="/opt/clouddrive/Config/logs"
MAX_DAYS=7

# 刪除 7 天前的日誌
find $LOG_DIR -name "*.log" -mtime +$MAX_DAYS -delete

echo "$(date): Old logs cleaned" >> /tmp/cd2_maintenance.log

每天執行:

bash
cru a cd2_clean_logs "0 2 * * * /jffs/scripts/cd2_clean_logs.sh"

3. 備份配置

bash
#!/bin/bash
# /jffs/scripts/cd2_backup_config.sh

BACKUP_DIR="/opt/clouddrive/Backup"
DATE=$(date +%Y%m%d)

mkdir -p $BACKUP_DIR

# 備份配置文件
tar czf $BACKUP_DIR/cd2_config_$DATE.tar.gz \
  /opt/clouddrive/Config/

# 保留最近 10 個備份
ls -t $BACKUP_DIR/cd2_config_*.tar.gz | tail -n +11 | xargs rm -f

echo "$(date): Backup completed" >> /tmp/cd2_backup.log

每週備份:

bash
cru a cd2_backup "0 3 * * 0 /jffs/scripts/cd2_backup_config.sh"

🐛 常見問題與故障排除

問題 1:容器啟動失敗

症狀:

❌ docker ps 看不到容器
❌ docker logs 顯示錯誤
❌ 端口無法訪問

排查步驟:

步驟 1:查看錯誤日誌

bash
# 查看容器日誌
docker logs clouddrive2

# 常見錯誤及解決:

錯誤 A:MountFlags 未配置

Error: permission denied

解決:
1. 確認已配置 MountFlags
   cat /etc/systemd/system/docker.service.d/clear_mount_propagation_flags.conf
   
2. 或執行
   mount --make-shared /opt
   
3. 重啟 Docker
   /etc/init.d/dockerd restart

錯誤 B:FUSE 設備不可用

Error: /dev/fuse: no such file or directory

解決:
1. 檢查 fuse3 是否安裝
   which fusermount3
   
2. 安裝 fuse3
   opkg install fuse3
   
3. 加載內核模塊
   modprobe fuse

錯誤 C:端口被佔用

Error: port 19798 is already in use

解決:
1. 查找佔用端口的進程
   netstat -tuln | grep 19798
   
2. 殺死進程或更改端口
   docker run -p 29798:19798 ...

步驟 2:檢查目錄權限

bash
# 確保目錄存在
ls -la /opt/clouddrive/

# 創建缺失的目錄
mkdir -p /opt/clouddrive/{Config,Shared,media}

# 設置權限
chmod 755 /opt/clouddrive -R

步驟 3:重新創建容器

bash
# 刪除舊容器
docker stop clouddrive2
docker rm clouddrive2

# 重新啟動
# 使用之前的 docker run 命令

問題 2:雲盤掛載失敗

症狀:

❌ Web 界面顯示掛載失敗
❌ 掛載點為空
❌ 訪問文件報錯

排查步驟:

步驟 1:檢查網絡連接

bash
# 測試雲盤服務可達性
ping aliyundrive.com
ping pan.baidu.com

# 如果不通,檢查網絡和 DNS

步驟 2:驗證賬號授權

1. 重新登錄雲盤
2. 確認授權未過期
3. 檢查賬號狀態(是否被封禁)

步驟 3:查看詳細日誌

bash
# 查看 CloudDrive2 日誌
docker logs -f clouddrive2

# 查找錯誤信息
# 常見錯誤:
# - Token expired(令牌過期)
# - Access denied(訪問被拒絕)
# - Network timeout(網絡超時)

步驟 4:重新添加雲盤

1. 在 Web 界面刪除失敗的雲盤
2. 清除瀏覽器緩存
3. 重新添加雲盤
4. 仔細按照步驟操作

問題 3:讀寫速度慢

症狀:

❌ 文件傳輸速度慢
❌ 視頻播放卡頓
❌ 列表加載緩慢

優化方案:

方案 1:啟用緩存

Web 界面 → 設置
- 啟用本地緩存
- 增大緩存空間
- 調整預讀策略

方案 2:優化網絡

bash
# 檢查帶寬
speedtest-cli

# 檢查延遲
ping -c 10 aliyundrive.com

# 如果延遲高,考慮:
# - 更換 DNS
# - 使用 CDN
# - 優化路由

方案 3:調整併發

設置 → 傳輸
- 增加併發連接數(3-5)
- 調整分片大小(10-20 MB)
- 啟用多線程下載

方案 4:檢查硬件瓶頸

bash
# 檢查 CPU 使用率
top

# 檢查內存使用
free -m

# 檢查磁盤 IO
iostat -x 1

# 如果資源不足:
# - 升級硬件
# - 限制容器資源
# - 關閉其他服務

問題 4:開機後容器未啟動

症狀:

❌ 重啟路由器後 CloudDrive2 未運行
❌ 需要手動啟動

解決方案:

方法 1:檢查重啟策略

bash
# 查看容器重啟策略
docker inspect clouddrive2 | grep RestartPolicy

# 應該是:
# "RestartPolicy": {
#     "Name": "unless-stopped"
# }

# 如果不是,重新創建容器並指定
docker run --restart unless-stopped ...

方法 2:添加到啟動腳本

bash
# 編輯 rc.local
vi /etc/rc.local

# 在 exit 0 之前添加
sleep 10
docker start clouddrive2

# 保存退出

方法 3:創建 systemd 服務(如果有 systemd)

bash
# 創建服務文件
cat <<EOF > /etc/systemd/system/clouddrive2.service
[Unit]
Description=CloudDrive2 Container
After=docker.service
Requires=docker.service

[Service]
ExecStartPre=-/usr/bin/docker stop clouddrive2
ExecStartPre=-/usr/bin/docker rm clouddrive2
ExecStart=/usr/bin/docker run \
  --name clouddrive2 \
  --restart unless-stopped \
  --env CLOUDDRIVE_HOME=/Config \
  -v /opt/clouddrive/Config:/Config \
  -v /opt/clouddrive/Shared:/CloudNAS:shared \
  -p 19798:19798 \
  --privileged \
  --device /dev/fuse:/dev/fuse \
  cloudnas/clouddrive2-unstable
ExecStop=/usr/bin/docker stop clouddrive2

[Install]
WantedBy=multi-user.target
EOF

# 啟用服務
systemctl enable clouddrive2
systemctl start clouddrive2

問題 5:Docker 啟動失敗

症狀:

❌ /etc/init.d/dockerd start 失敗
❌ 提示 MountFlags 錯誤

解決方案:

參考原文提到的方法:

bash
# 1. 找到啟動項
# 系統 → 啟動項 → 本地啟動腳本(拉到最底部)

# 2. 添加以下命令
mount --make-shared /opt

# 3. 保存應用

# 4. 重啟路由器
reboot

# 5. 驗證
docker ps
mount | grep shared

圖示說明:

Docker 啟動修復

問題 6:內存洩漏

症狀:

❌ 運行幾天後內存佔用越來越高
❌ 系統變慢
❌ 其他服務受影響

解決方案:

方法 1:定期重啟容器

bash
# 創建重啟腳本
cat <<EOF > /jffs/scripts/restart_cd2.sh
#!/bin/sh
docker restart clouddrive2
echo "$(date): CloudDrive2 restarted" >> /tmp/cd2_restart.log
EOF

chmod +x /jffs/scripts/restart_cd2.sh

# 每週日凌晨 5 點重啟
cru a restart_cd2 "0 5 * * 0 /jffs/scripts/restart_cd2.sh"

方法 2:限制內存使用

bash
# 重新創建容器並限制內存
docker run -d \
  --name clouddrive2 \
  --memory=512m \
  --memory-swap=512m \
  ...其他參數...
  cloudnas/clouddrive2-unstable

方法 3:清理緩存

bash
# 定期清理緩存
rm -rf /opt/clouddrive/Cache/*

# 或通過 Web 界面清理
# 設置 → 緩存管理 → 清空緩存

💡 最佳實踐與建議

1. 配合媒體服務器使用

Jellyfin 配置:

步驟 1:安裝 Jellyfin

bash
# Docker 安裝 Jellyfin
docker run -d \
  --name jellyfin \
  -v /opt/jellyfin/config:/config \
  -v /opt/clouddrive/Shared/阿里雲盤/Media:/media:ro \
  -p 8096:8096 \
  jellyfin/jellyfin

步驟 2:配置媒體庫

Jellyfin 管理界面:
1. 添加媒體庫
2. 類型:電影/電視劇
3. 文件夾:/media
4. 啟用元數據抓取
5. 完成

優勢:

✅ 無需下載即可播放
✅ 自動刮削海報和信息
✅ 多設備同時觀看
✅ 轉碼適配不同設備

Emby/Plex 同理配置

2. 多網盤協同

場景:分散存儲

阿里雲盤:電影、電視劇(大文件)
百度網盤:文檔、資料(小文件)
OneDrive:工作文件(重要數據)

CloudDrive2 統一掛載到:
/opt/clouddrive/Shared/
├── Aliyun/
├── Baidu/
└── OneDrive/

統一管理:

bash
# 創建符號鏈接整合
ln -s /opt/clouddrive/Shared/Aliyun/Movies /opt/media/Movies
ln -s /opt/clouddrive/Shared/Baidu/Documents /opt/media/Documents

3. 數據備份策略

3-2-1 原則:

3 份數據副本:
- 雲端原始數據
- CloudDrive2 緩存
- 本地備份

2 種介質:
- 雲存儲
- 本地硬盤

1 份異地:
- 不同的雲服務提供商

自動化備份:

bash
# 使用 rclone 備份到另一個雲盤
rclone sync /opt/clouddrive/Shared remote:backup

# 或使用 rsync 備份到本地硬盤
rsync -av /opt/clouddrive/Shared/ /mnt/backup/

4. 監控與告警

創建監控腳本:

bash
#!/bin/bash
# /jffs/scripts/cd2_monitor.sh

# 檢查容器狀態
if ! docker ps | grep -q clouddrive2; then
    echo "CRITICAL: CloudDrive2 is down!" | mail -s "CD2 Alert" admin@example.com
fi

# 檢查磁盤空間
USAGE=$(df /opt | tail -1 | awk '{print $5}' | sed 's/%//')
if [ $USAGE -gt 90 ]; then
    echo "WARNING: Disk usage is ${USAGE}%" | mail -s "Disk Alert" admin@example.com
fi

# 檢查內存使用
MEM=$(docker stats clouddrive2 --no-stream --format "{{.MemUsage}}")
echo "$(date): Memory: $MEM" >> /tmp/cd2_monitor.log

定時執行:

bash
# 每 30 分鐘檢查一次
cru a cd2_monitor "*/30 * * * * /jffs/scripts/cd2_monitor.sh"

🎯 總結與建議

配置檢查清單

安裝前:

✅ 檢查硬件配置(內存 ≥ 512 MB)
✅ 確認 Docker 已安裝
✅ 準備足夠的存儲空間
✅ 備份重要數據
✅ 確認網絡連接正常

安裝後:

✅ 驗證容器正常運行
✅ 測試雲盤掛載
✅ 配置緩存優化
✅ 設置開機自啟
✅ 創建備份策略

日常維護:

✅ 監控資源使用
✅ 定期清理緩存
✅ 更新 CloudDrive2
✅ 檢查日誌錯誤
✅ 驗證數據完整性

個人最終建議

💬 使用 CloudDrive2 2 年的心得:

1. 選擇合適的雲盤

強烈推薦:
✅ 阿里雲盤(不限速、穩定)
✅ OneDrive(Office 用戶)

謹慎使用:
⚠️ 百度網盤(非會員限速)
⚠️ 小眾網盤(穩定性差)

2. 重視緩存配置

❌ 不要禁用緩存
✅ 合理設置緩存大小

經驗值:
- 輕度使用:10 GB
- 中度使用:30 GB
- 重度使用:50 GB+

3. 做好資源限制

❌ 不要放任資源使用
✅ 限制內存和 CPU

推薦配置:
- 內存:512 MB
- CPU:1 核
- 根據實際負載調整

4. 定期維護

❌ 不要安裝後不管
✅ 定期檢查和維護

維護清單:
- 每週檢查運行狀態
- 每月清理日誌
- 每季度更新版本
- 每年評估需求

5. 安全第一

❌ 不要暴露到公網
✅ 限制內網訪問

安全措施:
- 修改默認端口
- 設置強密碼
- 啟用 HTTPS(如需要)
- 定期更新

相關教程

本站相關教程:

📖 [iStoreOS 文件共享教程](/tw/esxi/openwrt/istoreos-file-sharing-steps.md)
📖 [iStore 插件包合集](/tw/esxi/openwrt/istore-plugin-package.md)
📖 [Docker 安裝指南](/tw/fe/docker/install.md)
📖 [Docker 容器管理](/tw/fe/docker/container.md)
📖 [OpenWRT 安裝指南](/tw/esxi/install/openwrt.md)
📖 [Aria2 + AriaNg 下載方案](/tw/vps/serve/aria2+ariang.md)

外部資源:

📚 CloudDrive2 官方文檔
   https://www.clouddrive2.com/

📚 Docker 官方文檔
   https://docs.docker.com/

📚 OpenWRT 論壇
   https://forum.openwrt.org/

📚 Jellyfin 媒體服務器
   https://jellyfin.org/

希望這份詳細的 CloudDrive2 安裝配置指南能幫助你成功搭建雲端存儲系統!如有任何問題,歡迎在社區交流討論。

記住:雲端存儲雖方便,本地備份不可少! ☁️


免责声明

本文仅供技术交流和学习参考,请遵守当地法律法规,合理合法使用网络服务。

最後更新於: