温馨提示×

Ubuntu挂载远程SMB共享方法

小樊
33
2025-12-25 03:56:18
栏目: 智能运维

Ubuntu 挂载远程 SMB 共享的实用步骤

一 准备工作

  • 在 Ubuntu 上安装必要组件:用于命令行访问的 smbclient 与用于挂载的 cifs-utils
    • 命令:sudo apt update && sudo apt install -y smbclient cifs-utils
  • 在 Windows 或 Samba 服务器上确认已创建共享,并具备可访问的 用户名/密码;记录服务器 IP 或主机名共享名
  • 建议先测试连通与共享列表:
    • 列出共享:smbclient -L //服务器IP -U 用户名
    • 交互式访问:smbclient //服务器IP/共享名 -U 用户名

二 临时挂载

  • 创建本地挂载点:sudo mkdir -p /mnt/smbshare
  • 执行挂载(示例):
    • 命令:sudo mount -t cifs //192.168.1.100/Share /mnt/smbshare -o username=alice,password=Passw0rd
  • 常见参数说明:
    • vers=2.0/3.0/3.1.1:指定 SMB 协议版本(老设备可用 vers=1.0/2.0,新环境建议 3.0+)。
    • uid=1000,gid=1000:将挂载后的文件属主/属组映射为当前用户,避免普通用户无权限。
    • domain=WORKGROUP:工作组或域(如 AD 环境)。
  • 验证:df -hls -l /mnt/smbshare

三 开机自动挂载

  • 推荐将凭据写入受保护文件(避免明文出现在命令或 fstab 中):
    • 创建文件:sudo nano /etc/samba/credentials
    • 写入内容:
      • username=alice
      • password=Passw0rd
      • (可选)domain=WORKGROUP
    • 设置权限:sudo chmod 600 /etc/samba/credentials
  • 编辑 /etc/fstab,在末尾添加一行(示例):
    • //192.168.1.100/Share /mnt/smbshare cifs credentials=/etc/samba/credentials,uid=1000,gid=1000,vers=3.0,rw 0 0
  • 测试并应用:
    • 测试:sudo mount -a
    • 验证:df -h;若失败,查看日志:tail -f /var/log/kern.log
  • 说明:
    • 若需更稳健的启动顺序,可将 fstab 中的选项改为 _netdev(需系统支持网络就绪依赖)。

四 常见问题与排查

  • 协议版本不匹配导致 mount error(22): Invalid argument

    • 处理:在挂载选项中尝试 vers=2.0vers=3.0;必要时用 smbclient -L 验证连通后再挂载。
  • 权限不足或文件不可写:

    • 处理:在挂载选项中加入 uid=$(id -u),gid=$(id -g),并确保共享端对该用户授予 读写 权限。
  • 凭据安全:

    • 处理:使用 credentials= 文件并设为 600 权限,避免在命令行或 fstab 中明文写密码。
  • 开机未挂载或网络未就绪:

    • 处理:在 fstab 中使用 _netdev,或先执行 sudo mount -a 验证;查看 /var/log/kern.log 获取内核与 CIFS 报错详情。

五 常用命令速查

  • 安装组件:sudo apt install -y smbclient cifs-utils
  • 列出共享:smbclient -L //服务器IP -U 用户名
  • 临时挂载:sudo mount -t cifs //IP/共享 /mnt/point -o username=用户,password=密码,vers=3.0,uid=1000,gid=1000
  • 卸载:sudo umount /mnt/point
  • 开机自动挂载:编辑 /etc/fstab 添加条目并用 sudo mount -a 测试
  • 查看挂载:df -h;查看日志:tail -f /var/log/kern.log

0