Samba 允许运行 Microsoft Windows 的计算机和运行 Unix 的计算机之间共享文件和打印。
介绍
- Samba 是在 Linux/UNIX 系统上实现 SMB 协议的一个免费软件,由服务器和客户端程序构成,它能让 Linux 服务器实现文件服务器、身份授权和认证、名称解析和打印服务等功能。
SMB(Server Messages Block,服务信息块) 是一种在局域网上共享文件和打印机的一种通信协议
CIFS(Common Internet File System) 通用因特网文件系统,CIFS 由美国微软公司开发
安装
服务端安装
# ubuntu
apt-get install samba samba-common -y
$ samba --version
Version 4.19.5-Ubuntu
# centos
yum install samba -y
服务端配置
sudo mkdir -p /data/samba
# 在文件最后添加
[share]
comment = share folder
browseable = yes
read only = no
create mask = 0700
directory mask = 0700
valid users = root
write list = root, @root
path = /data/samba
# 默认 samba 不支持软链接,需要配置如下 3 条规则,挂载参数需要指定 mfsymlinks
# follow symlinks = yes
# wide links = yes
# unix extensions = no
$ smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.
systemctl restart smbd.service nmbd.service
- 监听端口
TCP:139 NetBIOS Name Server (NBNS) 端口,用于发现其他 Samba 服务器和工作站
TCP/UDP:445 用于 Server Message Block (SMB) 2.0/3.0 协议,该协议在网络中用于文件共享、打印共享和其他网络资源共享
- 日志
/var/log/samba/
mac 客户端
Finder -> Go(前往) -> Connete to Server...(连接服务器)(Command+K) 输入,点击连接
# smb://主机IP或主机名/共享名
smb://192.168.179.159/share
ubuntu 挂载
# 安装客户端
sudo apt-get install cifs-utils
$ ls -lhart /usr/sbin/ | grep cifs
mount.smb3 -> mount.cifs
mount.cifs
# 帮助
$ man mount.smb3
# 挂载,uid,gid 使用 id 命令获取 数字或用户名
sudo mount.cifs //<ip>/<path> <local-path> -o rw,username=<user>,password=<pwd>,uid=<uid>,gid=<gid>
sudo mount -t cifs //server-address/folder /mount/path/on/local -o username=<user>,password=<PASSWORD>,uid=<user>,gid=<group>
# sudo mount.cifs //192.168.179.159/share /mnt -o rw,username=root,password=123456,uid=1000,gid=1000,mfsymlinks
# 也可放到 /etc/fstab 中自动挂载
//<ip>/<path> <local-path> cifs rw,username=<user>,password=<pwd>,uid=<uid>,gid=<gid> 0 0
windows 挂载
Windows 共享文件夹
F&Q
samba parse_dfs_path_strict: can’t parse hostname from path
/var/log/samba/log.xx 报如上错误,配置 valid users = "root"
host is down
到 samba 链路不通,或者先 umount 后重新挂载
CIFS: VFS: cifs_mount failed w/return code = -115
到 samba 链路不通。
cifs_mount failed w/return code = -115 错误通常表示:操作正在进行中 (Operation now in progress),这在网络文件系统挂载(如 CIFS/SMB)中,通常不是一个直接的错误,而是一个超时或重试机制的结果,或者更常见的是,在尝试连接或协商时出现了更深层次的网络或协议问题。
CIFS: Unable to determine destination address
mount -t cifs 报错:
mount error(16): Device or resource busyRefer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)
kernel: [] CIFS: Unable to determine destination address
- 问题:系统在尝试连接到 CIFS/Samba 服务器之前,无法解析或确定您提供的服务器名称(主机名)对应的 IP 地址