SMB, CIFS, NFS都是什么,区别是啥?

SMB, CIFS, NFS都是什么,区别是啥? SMB还分不同版本?

SMB / CIFS / NFS 概念 + 区别 + SMB 版本详解

一、基础定义

SMB(Server Message Block,服务器消息块)

Windows 原生文件共享协议,用于局域网内,让客户端访问服务器上的文件、打印机、命名管道。
工作端口:TCP 445(SMB2/3);TCP139 + UDP137/138(NetBIOS 封装的 SMB,老版本)

CIFS(Common Internet File System,通用互联网文件系统)

✅ CIFS = SMBv1
CIFS 是微软把 SMB 1.0 对外发布时起的名字。很多老设备(老 NAS、Linux Samba 旧版本)文档里写的 CIFS,就是 SMB1。
注意:SMBv1 老旧、漏洞多(永恒之蓝),现代 Windows 默认关闭。

NFS(Network File System,网络文件系统)

Unix/Linux 原生文件共享协议,最早 SUN 开发。
多用于 Linux 服务器之间共享,Windows 也可以装 NFS 客户端访问。
端口:TCP/UDP 2049(NFSv4);v3 需要一堆 rpc 动态端口,防火墙难处理。


二、核心对比表

表格

项目 SMB(含 CIFS) NFS
起源 & 主场 微软,Windows 生态 Sun,Linux/Unix 生态
典型场景 Windows ↔ Windows;Windows 访问 NAS;Linux Samba 对外提供 Windows 共享 Linux ↔ Linux;Unix 之间挂载存储;大数据存储
身份认证 账号密码模型,兼容 Windows 域账号、本地账号;支持 NTLM/Kerberos UID/GID 数字 ID 认证,默认不是用户名密码;靠 IP 信任,Kerberos 可选
权限模型 NTFS 权限(Windows ACL) POSIX 权限(Linux rwx),NFSv4 支持 ACL
网络端口 445(SMB2/3)、139 2049(NFSv4)
跨平台 Windows 原生;Linux 用 Samba 实现 SMB 服务 Linux 原生;Windows 需要额外安装 NFS 客户端功能
典型报错 0x80070035 找不到网络路径 挂载超时、权限拒绝、rpcbind 失败

一句话记忆:
✅ Windows 网上邻居共享 = SMB
✅ Linux 之间 mount 网络盘 = NFS
✅ CIFS 只是 SMBv1 的别名


三、SMB 的各个版本(重点,和你 0x80070035 故障强相关)

表格

版本 别名 发布 特点
SMBv1 CIFS 1980s~90 年代 老旧协议;漏洞(永恒之蓝);Win10/11 默认关闭。老 NAS、老旧工控机才只用这个。⚠️ 不推荐启用,仅隔离内网临时兼容
SMBv2 SMB2.0/2.1 Vista/Server2008 大幅改进,减少握手包;支持大文件;不再依赖 NetBIOS。2.1:Win7/2008R2
SMBv3 SMB3.0/3.02/3.11 Win8/Server2012 起 现代主力版本✅ 3.0:支持 SMB 多通道、故障转移、加密✅ 3.1.1(Win10 1709+):强制协商加密,安全性最高

SMB 版本协商机制:客户端和服务端会自动协商双方都支持的最高 SMB 版本。
👉 故障场景举例:
服务器只支持 SMBv1,你的 Windows 客户端关掉了 SMBv1 → 协商失败 → 445 端口虽然通,但 SMB 会话建立失败 → 抛出 0x80070035。这就是你刚才报错的一个常见原因。

四、关键差异补充

  1. 认证逻辑差异(非常重要)
    • SMB:访问时弹出账号密码,用 Windows 账号。Samba(Linux 实现 SMB)也需要单独创建 samba 账号,不是系统 Linux 账号直接用。
    • NFS:默认信任客户端 IP 地址,客户端上哪个 UID,服务端就认哪个 UID,不需要输密码。
  2. 文件锁
    • SMB:支持字节范围锁,多客户端编辑同一个 Office 文档,会提示文件被占用,适合办公文档共享。
    • NFS:文件锁能力弱,多机同时写同一个文件容易损坏,不太适合 Office 类文档协作。
  3. 性能
    • SMB3 多通道:可以聚合多张网卡带宽,适合 Windows 集群存储。
    • NFS:Linux 环境下简单文件读写性能优秀,HPC / 大数据常用。

五、快速区分命令

Windows 查看本机 SMB 版本支持:

Get-SmbClientConfiguration
Get-SmbServerConfiguration

查看 SMB 协议启用状态:

Get-WindowsOptionalFeature -Online | Where-Object {$_.FeatureName -match "SMB"}

Linux 查看 Samba(SMB 服务):

smbd --version

Linux NFS:

nfsstat

Samba 是什么

一句话:Samba 是 Linux / Unix 系统上的开源软件,用来实现 SMB/CIFS 协议。
让 Linux 机器,可以对外提供 Windows 风格的网上邻居共享(SMB 文件共享),Windows 电脑就能用 \\IP 的方式访问 Linux 上的文件夹,就像访问另一台 Windows 电脑共享一样。

类比理解:
Windows 自带的【文件共享】= 微软原生 SMB 服务端;
Linux 上的【Samba】= Linux 版 SMB 服务端。

核心背景

早期只有 Windows 有 SMB 协议,Linux 没有原生 SMB。一个叫 Andrew Tridgell 的开发者逆向实现了 SMB 协议,项目名字叫 Samba。

名字由来:SMB 三个字母,在单词 Samba 里刚好包含 S-M-B。

Samba 包含两大核心程序

  1. smbd:SMB 服务主进程,监听 TCP 445、139 端口,负责文件共享、权限校验,处理 Windows 客户端 SMB 请求(就是你\\172.16.96.89去连接的服务)
  2. nmbd:NetBIOS 名字服务,UDP 137/138 端口,负责局域网计算机名解析(把机器名转 IP,类似网上邻居浏览列表;现在大多直接用 IP 访问,可以不用 nmbd)

配置文件默认:/etc/samba/smb.conf

✅ Samba 能干什么

  1. Linux 文件夹共享给 Windows 客户端(最常用场景),Windows 访问:\\Linux主机IP\共享名,就是你遇到的场景
  2. Linux 访问 Windows 的共享(Samba 客户端工具 smbclient、mount.cifs)
  3. 可以加入 Windows 域,让 Linux 机器使用域账号认证
  4. 提供打印共享,把 Linux 打印机共享给 Windows

⚠️ 重点:Samba 账号≠Linux 系统账号

这是新手最容易踩坑的点:
Linux 系统有 root、user1 这类系统账号,但Samba 有独立的密码库。
就算 Linux 存在 user1,也要单独用 smbpasswd -a user1 设置 Samba 密码,Windows 访问共享时输入的账号密码,是 Samba 账号密码,不是 Linux 登录密码。

Samba 和 SMB / CIFS 的关系梳理(帮你串起前面所有概念)

  • SMB:协议(语言规范)
  • CIFS:SMBv1 的别名
  • Samba:在 Linux 上实现 SMB 协议的软件
  • Windows 文件共享:微软自己实现的 SMB 协议

形象比喻:
SMB = 汉语(沟通协议)
Windows 自带共享 = 微软写的汉语翻译器
Samba = Linux 上写的汉语翻译器,让 Linux 能听懂 Windows 的 SMB 请求

Samba 和 NFS 的对比(和前面 NFS 对照)

  • Samba:走 SMB 协议,适合 Windows 访问 Linux 共享;认证是账号密码;权限模型贴近 Windows ACL;端口 445
  • NFS:Unix 原生协议,适合 Linux 之间挂载;默认 UID/GID 认证,无密码;端口 2049

和你 0x80070035 报错关联

如果你的目标 172.16.96.89 是一台跑 Samba 的 Linux 服务器:
出现找不到网络路径的排查方向:

  1. Linux 防火墙(firewalld/iptables)没有放行 445、139 端口
  2. smbd 进程没启动,没有监听 445 端口(ss -tlnp | grep 445)
  3. Samba 配置里共享段错误
  4. Samba 支持的 SMB 版本太低(比如只允许 SMBv1,Windows 客户端默认关闭 SMBv1,协商失败)
  5. 网络 ACL 拦截 445 端口,ping 正常但是 445 不通

查看 Samba 支持的 SMB 版本:在smb.conf中,server min protocol 参数控制最低支持 SMB 版本。

posted @ 2026-09-18 09:53  JacobJacob  阅读(42)  评论(0)    收藏  举报