在 Linux 系统中,Samba 提供了与 Windows 系统文件共享的便利方式。本文将详细介绍在 Ubuntu 和 Debian 系统下如何安装 Samba 客户端、访问共享资源,并实现远程目录挂载和开机自动挂载。
文章参考自(感谢分享):https://www.itlooker.cn/11335.html - IT技术视界
一、Samba 简介
Samba 是一款可以让 Linux 系统使用 Microsoft 网络通信协议的软件。SMB(Server Message Block,服务器消息块)最初是微软的网络共享协议,Samba 将其引入到 Linux 系统,使 Linux 可以与 Windows 系统进行文件和打印共享。
后来,微软将 SMB 改名为 CIFS(Common Internet File System,公共 Internet 文件系统),并在协议中增加了许多功能,从而使 Samba 功能更强大。
Samba 的主要用途:
- Linux 与 Windows 之间的文件共享
- Linux 与 Linux 之间的文件共享(但 NFS 更适合 Linux 内部共享)
- 打印机共享
使用提示:
在使用 Samba 与 Windows 共享文件时,请确保 Windows 系统的 NetBIOS(网上邻居功能) 已开启。
二、在 Linux 下安装 smbclient
smbclient
是一个命令行工具,可以让 Linux 用户访问 Samba 共享资源。大多数 Linux 发行版默认未安装,需要手动安装。
Ubuntu / Debian 安装命令:
bash
sudo apt update
sudo apt install smbclient
安装完成后,可以使用以下命令访问 Samba 共享:
bash
smbclient //服务器IP或主机名/共享名称 -U 用户名
示例:
使用用户 xt
访问服务器 192.168.123.111
上的共享目录 share
:
bash
smbclient //192.168.123.111/share -U xt
输入共享密码后,如果成功登录,会看到如下提示符:
Try "help" to get a list of possible commands.
smb: \>
此时,就可以在命令行下操作远程共享文件。
三、将远程 Samba 共享挂载到本地目录
如果希望把 Samba 共享挂载到本地目录,以便像操作本地磁盘一样操作远程文件,需要使用 cifs-utils
软件包。
Ubuntu / Debian 安装 cifs-utils:
bash
sudo apt update
sudo apt install cifs-utils
1. 创建挂载点
挂载点是本地目录,用于映射远程共享:
bash
sudo mkdir /mnt/smbmount
2. 挂载远程共享
使用 mount
命令将远程共享挂载到本地:
bash
sudo mount -t cifs //服务器IP或主机名/共享名称 /mnt/smbmount -o username=用户名,password=密码,vers=1.0
示例:
bash
sudo mount -t cifs //192.168.123.111/share /mnt/smbmount -o username=xt,password=123123,vers=1.0
注意:
如果出现如下错误:
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page and kernel log messages (dmesg)很可能是
vers
参数不匹配,可以尝试vers=2.0
或vers=3.0
。参考:
3. 验证挂载
查看挂载情况:
bash
df -h
查看远程共享文件:
bash
ls -l /mnt/smbmount
如果可以看到远程服务器上的文件,则挂载成功。
四、实现开机自动挂载
为了开机自动挂载 Samba 共享,需要修改 /etc/fstab
文件。
1. 卸载当前挂载
bash
sudo umount /mnt/smbmount
2. 编辑 /etc/fstab
假设服务器 IP 为 192.168.123.111
,共享目录为 share
,本地挂载目录为 /mnt/smbmount
,用户名为 xt
,密码为 123
,在文件末尾添加:
# Samba 自动挂载
//192.168.123.111/share /mnt/smbmount cifs username=xt,password=123,soft,rw 0 0
3. 测试挂载
使用 mount -a
测试:
bash
sudo mount -a
验证挂载是否成功:
bash
df -h
ls -l /mnt/smbmount
如果成功,开机后系统将自动挂载该 Samba 共享目录,用户可以像操作本地磁盘一样访问远程文件。
五、总结
通过本文步骤,您可以在 Ubuntu 和 Debian 系统上:
- 安装
smbclient
访问 Samba 共享资源 - 安装
cifs-utils
并将远程共享挂载到本地 - 配置
/etc/fstab
实现开机自动挂载
这样一来,Linux 系统即可方便地与 Windows 或其他 Samba 服务器共享文件,实现跨平台的文件管理。