Ubuntu 24.04 上的 RAGFlow 需要挂载 Windows SMB 共享
你的场景本质是:Ubuntu 24.04 上的 RAGFlow 需要挂载 Windows SMB 共享(域环境/或工作组共享),让知识库可以读取文件。
下面给你一套可落地的方案(推荐用 CIFS 挂载)。
一、核心思路
Linux 访问 Windows 共享 = SMB/CIFS 挂载成本地目录
最终目标类似:
\\192.168.0.83\市场部
↓
/mnt/ragflow/share/market
然后 RAGFlow 直接读 Linux 本地路径即可。
二、安装必要组件(Ubuntu 24.04)
sudo apt update
sudo apt install -y cifs-utils
三、创建挂载目录
sudo mkdir -p /mnt/ragflow/market
四、创建凭据文件(强烈推荐,不要明文写在 mount 命令里)
sudo nano /etc/smb-cred-shuncom
写入:
username=xxxx
password=xxxxxxxxx
domain=shuncom
⚠️ 如果你们是 AD 域用户,这个 domain 很关键
如果不确定,也可以尝试:
domain=SHUNCOM
保存后:
sudo chmod 600 /etc/smb-cred-shuncom
五、手动测试挂载(关键步骤)
sudo mount -t cifs //192.168.0.83/市场部 /mnt/ragflow/market \
-o credentials=/etc/smb-cred-shuncom,vers=3.0,iocharset=utf8
六、如果报错(非常常见,逐个排查)
1️⃣ 如果提示 authentication failed
尝试改:
vers=2.1
或
vers=3.0
或
vers=1.0(不推荐但兼容老系统)
2️⃣ 如果域认证失败(AD环境常见)
改成:
-o username=xxxx,domain=xxxxxx,sec=ntlmssp
或:
sec=ntlmv2
3️⃣ 如果中文目录乱码或无法访问
确保:
iocharset=utf8
4️⃣ 如果 ping 通但 mount 不通
检查 SMB 端口:
nc -zv 192.168.0.83 445
必须通:
445/tcp open
七、设置开机自动挂载(推荐)
编辑:
sudo nano /etc/fstab
加入:
//192.168.0.83/市场部 /mnt/ragflow/market cifs credentials=/etc/smb-cred-shuncom,vers=3.0,iocharset=utf8,_netdev 0 0
#安全的写法
//192.168.0.83/市场部 /mnt/ragflow/market cifs credentials=/etc/smb-cred-shuncom,vers=3.0,iocharset=utf8,_netdev,nofail,x-systemd.automount,x-systemd.device-timeout=10 0 0
三、每个关键参数解释(非常重要)
1️⃣ _netdev
👉 告诉系统这是网络文件系统
- 延迟到网络可用后再挂载
- 防止系统启动阶段卡死
2️⃣ nofail ⭐(最重要)
👉 即使挂载失败,也:
- 不阻塞启动
- 不进入 emergency mode
- 系统正常进桌面
3️⃣ x-systemd.automount ⭐(强烈推荐)
👉 这是关键优化:
- 开机不立即挂载
- 访问目录时才挂载(按需挂载)
- 极大减少启动依赖风险
效果:
你 ls /mnt/ragflow/market 才触发挂载
4️⃣ x-systemd.device-timeout=10
👉 最多等 10 秒
- 避免 Windows 服务器挂起时 Linux 卡死
5️⃣ vers=3.0
保持 SMB3(Windows 11 / Server 2019+ 推荐)
八、RAGFlow 接入方式
RAGFlow 通常支持:
方法1(推荐)
直接使用本地路径:
/mnt/ragflow/market
作为知识库数据源
方法2(如果是 Docker 部署 RAGFlow)
需要挂载 volume:
volumes:
- /mnt/ragflow/market:/data/market
然后 RAGFlow 读:
/data/market
九、你当前环境特别说明(很关键)
你提供的信息:
-
Ubuntu 24.04:✔ OK
-
DNS 可解析 shuncom.local:✔ AD 正常
-
Windows 共享可访问(Win11测试OK):✔ SMB正常
-
域账号:shuncom/7004:✔ AD用户
👉 说明问题大概率只在:
Linux CIFS 参数 / SMB版本 / 域认证方式
十、如果你想“一步到位稳定方案”(推荐)
在 AD 环境里最稳定写法:
sudo mount -t cifs //192.168.0.83/市场部 /mnt/ragflow/market \
-o username=7004,domain=shuncom,sec=ntlmssp,vers=3.0,iocharset=utf8
如果你愿意,我可以帮你进一步做:
✔ 自动诊断挂载失败原因(根据报错日志)
✔ RAGFlow + SMB + Docker 最佳生产部署方案
✔ AD域统一权限映射(避免权限乱)
✔ 多共享目录自动同步方案(rsync / inotify)
只要把你 mount 报错贴出来就能精确定位。