Samba
samba简介
Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。
Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。
Samba组成
-
SMB协议:Samba 的核心是实现了 SMB(Server Message Block)协议,这是一种用于在局域网中共享文件、打印机和其他资源的网络协议。
-
SMB客户端:Samba 包含了用于访问远程 SMB/CIFS 资源的客户端工具,允许 Linux/Unix 系统与 Windows 系统进行文件共享和打印机共享。
-
SMB服务器:Samba 服务器允许像 Windows 一样共享文件和打印机,并提供了一种名为 smb.conf 的配置文件来配置共享资源、身份验证和访问控制等选项。
-
CIFS:Samba 也包含了对 CIFS(Common Internet File System)的支持,这是 SMB 协议在 Internet 上的一个扩展版本。
-
工具和库:Samba 还提供了一些辅助工具和库,用于管理和配置 Samba 服务器,以及与 SMB 协议进行交互。
这些组成部分共同构成了 Samba 的基本功能,使其成为一个功能强大且灵活的文件共享解决方案。
Samba 服务器 :
Samba 服务器实际上包含了两个核心程序:smbd 和 nmbd。
smbd:作为 Samba 的核心,负责建立对话进程、验证用户身份,以及提供对文件系统和打印机的访问机制。只有启动了 smb 服务,文件共享功能才能实现。smbd 使用 TCP 445 端口。它是 Samba 服务器的主要工作进程,负责处理文件和打印机共享的请求。
nmbd:实现了“Network Browser”(网络浏览)功能,支持 NETBIOS(本地名称解析)。如果未启动该服务,客户端只能通过 IP 地址而非工作组名称来访问共享文件。nmbd 使用 UDP 137/138 和 TCP 139 端口。它负责处理局域网内计算机的名称解析和服务发现请求,使得 Windows 客户端能够在网络上发现和访问 Samba 服务器的共享资源。
Samba工作流程
1、客户端请求访问Samba服务器上的共项目录
2、Samba服务器接收到请求后,会查询主配置文件smb.conf,看是否共享了share目录,如果共享了则查询客户端是否有权限访问。
3、Samba服务器会把本次访问信息记录写在日志中,日志文件的名称和路径都需要我们设置。
4、如果客户端满足访问权限的设置,则允许客户端进行访问。