SMB 代表的是服务器消息块 (Server Message Block),它是用于在 Windows 上共享文件的协议的原始名称。 CIFS 代表公共 Internet 文件系统 (Common Internet File System),它是 Microsoft 描述该协议最近一个版本的新字首组合词。

samba认证

Samba 有它自己独特的口令数据库。为什么它不使用标准 Unix 口令来认证 administrator 用户呢?当 Windows 发送以明文表示的口令时,它 过去 可能这样做,但所有现代版本的 Windows 都以加密形式发送 SMB/CIFS 口令,这样就与标准 Unix 口令散列不兼容了。换句话说,Samba 没有办法使用标准 Unix passwd 散列来验证 Windows 加密的口令是否正确。幸运的是,Samba 提供了许多方法来将这两个数据库同步,这样系统管理员的日子就好过多了。

Linux samba

如果您从原始源码中编译和安装 Samba,可以在 /usr/local/samba/etc/smb.conf 中找到 Samba 的配置文件。但如果您从二进制 RPM 或另一种 Linux 软件包格式安装软件,就很可能在 /etc 中找到 smb.conf。

/usr/local/samba/bin  包含所有 Samba 二进制可执行文件
主要 Samba 可执行文件称为 smbd 和 nmbd。
Smbd 设计为提供 SMB/CIFS 文件共享服务,而 nmbd 通过对 NetBIOS 名利用 IP 地址查找来执行与 WINS 相关的功能。
还有一些其它实用程序,包括 smbclient(一个类似于 ftp 的工具,可用来与 SMB/CIFS 共享连接和交互),以及 testparm(一个方便的实用程序,通过检查来确保 Samba 的主要配置文件的语法正确)。

/usr/local/samba/etc 包含 smb.conf,主要的 Samba 配置文件
Smb.conf 是一个非常重要的文件,包含几乎所有 Samba 的配置选项。
在这个文件中,您可以找到控制全局 Samba 功能的设置,还有启用特定目录树和打印机共享的配置选项。
在获得使用 Samba 的经验的同时,您也将用额外的配置选项(对 Samba 进行微调来适应特定位置)来补充 smb.conf 文件。
对 Samba 最主要的一个抱怨是 smb.conf 文件有相当高的学习曲线。

/usr/local/samba/private  包含 smbpasswd,Samba 的加密口令文件
我在前面提到过 Samba 有自己的口令存储器,它是与标准 Unix passwd 数据库不同的。
在 smbpasswd 文件中, Samba 存储了所有允许访问 Samba 共享的用户和工作站(以及它们相关的口令)。
可以进一步对特定用户和组锁定个别的共享。要修改 smbpasswd 文件,使用名称相同的二进制可执行文件 smbpasswd。

/usr/local/samba/var  包含 Samba 的两个日志文件,log.smb 和 log.nmb
可能您已经猜到,log.smb 是 smbd 的日志文件,而 log.nmb 是 nmbd 的日志文件。

/usr/local/samba/swat  包含用于 SWAT(Samba 的 Web 管理工具)的文件
SWAT 是 Samba Web 管理工具,是灵巧的小 Web 应用程序,可以让管理员远程管理他们的 Samba 网络。

samba进程

Samba提供了基于CIFS的四个服务:文件和打印服务、授权与被授权、名字解析、浏览服务。前两项服务由smbd提供,后两项服务则由nmbd提供。 简单地说,smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与Linux进行协商,nmbd进程使主机(或工作站)能浏览Linux服 务器。

smbd服务进程为客户端提供文件共享与打印机服务。另外,该进程还负责用户权限验证以及锁功能,smbd默认监听的端口是TCP协议的139与445,Samba通过smb服务启动smbd进程,使用netstat -nutlp查看进程端口信息。

nmbd进程提供NetBIOS名称服务,以满足基于Common Internet File System(CIFS)协议的共享访问环境。Samba通过nmb服务启动nmbd进程,该进程默认使用是UDP 137端口。

SMB性能

samba的性能在https://www.samba.org/samba/docs/old/Samba3-Developers-Guide/architecture.html中有这样一句话

The longer versions is that there are very good reasons for not making smbd multi-threaded. Multi-threading would actually make Samba much slower, less scalable, less portable and much less robust. The fact that we use a separate process for each connection is one of Samba's biggest advantages.

多线程会使samba变慢,所以samba为每个连接使用单独的进程。【有点酸哈^_^】

不过samba在[samba3.0]windows8&windows2012的版本中增加了SMB Multichannel功能,如果服务器及客户端之间使用SMB Multichannel功能话,性能还是有提高的。

SMB Multichannel在启用samba服务的windows server默认开启。

windows2012中实现SMB Multichannel必须为不同子网的多张网卡

windows2016时SMB Multichannel可以是相同子网的多张网卡了。

RSS网卡帮助把传输负载均匀分散多个CPU核心上,配合SMB多通道可以发挥最大效果!

SMB Multichannel配合NIC teaming也可以实现高一点的性能。

可参考http://blog.51cto.com/wzde2012/2043510

举例说明:

不同子网的多张网卡:网卡1为192.1268.1.1/24,网卡2为192.1268.2.1/24

相同子网的多张网卡:网卡1为192.1268.1.1/24,网卡2为192.1268.1.2/24

Samba 简介的更多相关文章

  1. Samba简介与配置(匿名&本地用户验证)

    Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成. 在此之前我们已经了解了NFS,NFS与samba一样,也是在网络中实现文件共享的一种实 ...

  2. Samba安装配置

    Samba简介 Samba官网:http://www.samba.orgSMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不 ...

  3. Linux 学习笔记_12_Windows与Linux文件共享服务_1.1_--Samba(上)

    Samba简介:在UNIX系统中,Samba是通过服务器消息块协议(SMB)在网络上的计算机之间,共享文件和打印服务的软件包. SMB简介:Server Message Block,SMB协议是一种服 ...

  4. samba 基本配置及自定义控制

    Samba简介: Samba实现的是Linux和Windows之间的一种共享,为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,共享文件系统.打印机及其他资 ...

  5. linux中Samba服务器的配置

    Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件 ...

  6. Linux----------samba服务的安装使用及简介

      一.Samba简介 Samba是在linux和Unix系统上实现SMB协议的一个免费软件,由服务器端和客户端程序组成. Samba与nfs的不同,Samba比nfs多支持Windows SMB ( ...

  7. CentOS 7下Samba服务安装与配置详解

    1. Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共 ...

  8. centos7下安装samba服务器

    samba笔记: http://services.linuxpanda.tech/%E7%BD%91%E7%BB%9C%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/samb ...

  9. 5、SAMBA服务一:参数详解

    ①:SAMBA服务一:参数详解 ②:SAMBA服务二:配置实例 一.SAMBA简介 samba指SMB(Server Message Block,服务器信息块)协议在网络上的计算机之间远程共享Linu ...

随机推荐

  1. matlab repmat()

    一.B = repmat(A,m,n) 将矩阵 A 复制 m×n 块,即把 A 作为 B 的元素,B 由 m×n 个 A 平铺而成.B 的维数是 [size(A,1)*m, size(A,2)*n] ...

  2. Samsung_tiny4412(驱动笔记07)----spinlock,semaphore,atomic,mutex,completion,interrupt

    /*********************************************************************************** * * spinlock,se ...

  3. 【opencv基础】detectmultiscale函数详解

    前言 简单的人脸检测程序可以直接基于opencv的函数库进行实现,本文介绍一下detectMultiScale函数. 函数简介 opencv2人脸检测使用的是detectMultiScale函数,可以 ...

  4. test20181005 迷宫

    题意 分析 时间复杂度里的n,m写反了. 出题人很有举一反三的精神. 代码 我的代码常数巨大,加了各种优化后开O3最慢点都要0.9s. #include<cstdlib> #include ...

  5. MySQL Group Replication

    group replication是一种全新的高可用,高扩张的MySQL集群服务.高一致性,基于原生复制及paxos协议的组复制技术,以插件方式提供一致数据安全保证:高容错性,大多数服务正常就可继续工 ...

  6. 关于 Vue 方法前面的美元符号

    关于 Vue 方法前面的美元符号 学到这一段,不明白什么意思,然后手贱把 $ 删除了,出现未定义方法. vm.$watch('counter', function(nval, oval) { aler ...

  7. SOALog

    项目地址 :  https://github.com/kelin-xycs/SOALog SOALog 为 SOA 架构 提供一种 松耦合 乐观 的 数据一致性 解决方案,说白了这个组件的功能就是 记 ...

  8. mysql复制表结构create table as和like的区别

    对于MySQL的复制相同表结构方法,有create table as 和create table like 两种,区别是什么呢? create table t2 as select * from t1 ...

  9. Angular 4 延缓加载组件

    1. 创建App ng new lazySample --routing 在app组件中的定义路由 2. 创建“Lazy” Module ng g module lazy --flat ng g co ...

  10. 关于有时候导入maven项目时候报错(有红色叹号,类中导入的包提示"the import java.util cannot be resolve,")

    ------解决方案--------------------解决方案:右键项目-------buildpath--------最下面那个configura...的选择libraries找到JRE(这个 ...