凌峰创科服务平台

Ubuntu如何访问Samba服务器?

使用图形界面(最简单,适合新手)

这是最直观的方法,通过文件管理器即可完成。

Ubuntu如何访问Samba服务器?-图1
(图片来源网络,侵删)

步骤 1:安装必要的软件包

虽然 Ubuntu 默认通常包含了访问 SMB/CIFS 所需的组件,但有时可能不完整,为了确保万无一失,建议安装 cifs-utils

打开终端,执行以下命令:

sudo apt update
sudo apt install cifs-utils

步骤 2:在文件管理器中访问

  1. 打开你的文件管理器(Nautilus, Files 等)。

  2. 在左侧边栏的“位置”下方,点击“连接到服务器”。

    Ubuntu如何访问Samba服务器?-图2
    (图片来源网络,侵删)
  3. 在弹出的窗口中,选择“Windows 网络共享”或输入服务器地址。

    • 地址格式smb://<服务器IP地址或主机名>/<共享文件夹名>
    • 示例:如果你的服务器 IP 是 168.1.100,共享文件夹名为 Public,那么地址就是 smb://192.168.1.100/Public
  4. 点击“连接”,系统会提示你输入用户名和密码。

    • 用户名:Samba 服务器的有效用户名。
    • 密码:该用户的密码。
    • 记住我的凭据:如果你不想每次都输入,可以勾选。
  5. 点击“连接”或“确定”后,如果凭据正确,你就可以像访问本地文件夹一样访问共享内容了。


使用命令行(更灵活,适合高级用户)

使用命令行挂载共享文件夹,可以让你在系统重启后仍然保持访问,并且可以更好地集成到脚本中。

Ubuntu如何访问Samba服务器?-图3
(图片来源网络,侵删)

步骤 1:创建本地挂载点

你需要一个本地目录来“挂载”远程的共享文件夹,我们通常在 /mnt 目录下创建。

sudo mkdir -p /mnt/samba_share

这里的 -p 选项可以确保父目录存在(如果不存在的话)。

步骤 2:挂载共享文件夹

使用 mount.cifs 命令。

基本格式:

sudo mount -t cifs //<服务器IP>/<共享文件夹> /mnt/samba_share -o username=<你的用户名>,password=<你的密码>

示例:

sudo mount -t cifs //192.168.1.100/Public /mnt/samba_share -o username=myuser,password=mypassword

挂载成功后,你就可以通过访问 /mnt/samba_share 来使用共享文件了。

步骤 3:验证挂载

df -h

你应该能在输出中看到你的共享文件夹被挂载在 /mnt/samba_share 上。

步骤 4:卸载共享文件夹

当你使用完毕后,可以卸载它。

sudo umount /mnt/samba_share

永久挂载(开机自启)

如果你希望每次开机后都能自动挂载这个共享,而不是手动执行命令,可以修改 /etc/fstab 文件。

⚠️ 警告:直接编辑 /etc/fstab 有可能导致系统无法启动,请务必谨慎,并确保你的信息正确。

步骤 1:创建凭据文件(推荐)

为了安全,不建议在 /etc/fstab 中明文写入密码,我们可以创建一个单独的文件来存储凭据。

  1. 创建文件:

    sudo nano /etc/samba_credentials
  2. 在文件中输入你的用户名和密码,格式如下:

    username=your_samba_user
    password=your_samba_password
    # domain=your_domain (如果需要域认证,取消此行并填写)

    保存并退出 (Ctrl+X, Y, Enter)。

  3. 设置文件权限,确保只有 root 用户可以读取:

    sudo chmod 600 /etc/samba_credentials

步骤 2:编辑 /etc/fstab

  1. 备份原文件(好习惯):

    sudo cp /etc/fstab /etc/fstab.bak
  2. 用编辑器打开 fstab

    sudo nano /etc/fstab
  3. 在文件末尾添加下面这一行:

    //<服务器IP地址>/<共享文件夹>  /mnt/samba_share  cifs  credentials=/etc/samba_credentials,iocharset=utf8,vers=3.0,nofail  0  0
    • //<服务器IP>/<共享文件夹>:你的共享地址。
    • /mnt/samba_share:你的本地挂载点。
    • cifs:文件系统类型。
    • credentials=/etc/samba_credentials:指定凭据文件。
    • iocharset=utf8:支持中文字符,防止乱码。
    • vers=3.0:指定 SMB 协议版本,如果遇到兼容性问题,可以尝试 10
    • nofail:这是一个非常重要的选项,Samba 服务器在开机时不可用,系统会继续启动,而不是卡在挂载失败上。
  4. 保存并退出 (Ctrl+X, Y, Enter)。

步骤 3:测试 fstab 配置

在重启系统之前,先测试一下配置是否正确。

sudo mount -a

如果这个命令没有报错,说明 fstab 的配置是正确的,你可以再次使用 df -h 来确认共享文件夹是否已挂载。


常见问题与解决方法

权限问题

  • 现象:挂载后,你只能看到文件,但无法读取、写入或修改。
  • 原因:Samba 服务器的权限设置和你的 Ubuntu 用户权限不匹配。
  • 解决方法
    1. 检查 Samba 服务器端权限:确保你的用户在服务器上有访问该共享文件夹的权限(读/写)。
    2. 检查文件所有者:在 Ubuntu 上,挂载的文件默认属于 root,你可以使用 uidgid 选项来指定文件的所有者。 在 /etc/fstab 中修改挂载选项,添加 uid=1000,gid=10001000 是 Ubuntu 默认的第一个普通用户的 UID/GID,你可以用 id -u your_username 命令查看)。
      //<服务器IP>/<共享文件夹>  /mnt/samba_share  cifs  credentials=/etc/samba_credentials,iocharset=utf8,uid=1000,gid=1000,vers=3.0,nofail  0  0

中文乱码问题

  • 现象:共享文件夹中的中文文件名显示为乱码(如 ???.txt)。
  • 解决方法
    1. 确保服务器端编码正确:Samba 服务器端的 smb.conf 文件中应设置 unix charset = UTF-8dos charset = gbk(如果客户端主要是中文 Windows)。
    2. 确保客户端编码正确:在 Ubuntu 的挂载选项中加入 iocharset=utf8
    3. 指定 Samba 协议版本:有时旧版本的协议对 UTF-8 支持不好,尝试在挂载选项中指定 vers=3.0 或更高版本。

“mount error(13): Permission denied” 错误

  • 原因:最常见的原因是用户名或密码错误。
  • 解决方法
    1. 仔细核对用户名和密码是否正确。
    2. 检查大小写:Samba 的用户名和密码是区分大小写的。
    3. 尝试匿名访问:Samba 服务器允许,可以尝试不输入用户名和密码(挂载命令中去掉 -o 选项),看看是否能访问,如果能,说明是认证问题。
    4. 检查服务器端用户:确保你的用户账户在 Samba 服务器上是有效的,并且没有被禁用。

“mount error(22): Invalid argument” 错误

  • 原因:通常是挂载选项中的 vers= 指定的版本不被服务器或客户端支持。
  • 解决方法:尝试修改 vers= 的值,例如从 0 改为 10

希望这份详细的指南能帮助你在 Ubuntu 上顺利访问 Samba 服务器!

分享:
扫描分享到社交APP
上一篇
下一篇