尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

SMB共享全攻略:速度调优、Windows 11配置与iSCSI选型

SMB共享全攻略:速度调优、Windows 11配置与iSCSI选型 简介网络文件共享是局域网和NAS应用的基础能力而SMB协议作为Windows生态中最核心的文件访问协议其性能与稳定性直接影响日常办公和家庭媒体传输体验。从SMB协议家族演进与版本协商原理入手可系统分析传输慢、断连等高频问题的排查链路覆盖Windows 11的SMB配置、NAS如万由、飞牛的Samba优化以及VMware虚拟环境下的互通技巧。同时SMB与iSCSI在存储场景下的选型边界以及445端口映射的安全风险都是需要重点考量的内容。无论遇到NAS速度瓶颈还是Windows 11无法访问共享通过链路排查与参数调优都能找到可落地的解决办法。 我最早看到smb.rar这个文件名时第一反应是这又是哪个老运维把 SMB 排查脚本压缩打包流传出来了。后面接触多了才明白这类压缩包根本无所谓里面是什么它真正代表的是一整类长期困扰人的需求——SMB 共享速度慢、Windows 11 找不到 NAS、上传文件总是断连、445 端口要不要映射到路由器甚至有人把 SMB 和 iSCSI 搞混。这篇文章不打算抄协议文档里的定义。我把自己在实际环境里排查 SMB 问题时的完整链路、参数验证、命令组合和踩坑记录整理出来覆盖万由、飞牛这类常见 NAS也覆盖 Windows 11 的 SMB 开关、VMware 虚拟机和路由器端口映射。无论你是刚接触共享存储的新手还是被 NAS 速度问题折磨过几天的老用户这篇应该都能直接派上用场。1. 拿到 smb.rar 之后先搞清楚 SMB 到底卡在哪1.1 这个压缩包背后的一类需求smb.rar 这个命名通常出现在两类场景里。一类是运维人员打包好的 SMB 批量配置脚本比如一键开启 SMB 共享、批量修改注册表项、放行防火墙 445 端口另一类是内网扫描工具用来批量探测哪些 IP 开放了 445。不管哪种核心都是围着 SMBServer Message Block协议做文章。很多人把 SMB 理解成网上邻居那种简单共享实际上它是一个有几十年历史的网络文件访问协议族从 IBM 时代的 SMB、微软时代的 CIFS一路演进到 SMB 2.0、3.0、3.1.1。我见过大量SMB 速度慢SMB 总断连的报障最后排查下来一半是网络链路问题另一半是协议版本协商不一致。版本不一致的隐蔽性很高因为两台设备都能互相看到也能正常传文件只是性能永远上不去。1.2 SMB 协议家族从 SMB1 到 SMB 3.1.1SMB1 是最老的版本效率低、安全性差WannaCry 勒索病毒就是借 SMBv1 漏洞传播的所以现代操作系统默认禁用。SMB 2.0/2.1 在 Windows 7/Vista 时代引入增加了批量处理、缓存机制性能比 SMB1 提升明显。SMB 3.0 是 Windows 8 / Server 2012 的分水岭加入 SMB Multichannel多通道、SMB DirectRDMA、透明故障转移这些重量级特性。SMB 3.1.1 从 Windows 10 v1709 开始附带增加预认证完整性检查安全性进一步提升。现在 Windows 11、主流 NAS 系统都支持 SMB 3.1.1。所以排查第一步永远是先确认两端协商到了哪个版本。如果两端都支持 3.1.1却因为某条策略只用了 2.0那速度上不去就是必然的和硬件没关系。1.3 先分清三个层面协议、服务、客户端很多教程把开启 SMB 协议和启动 Server 服务当成一回事导致排查时绕远路。我的习惯是先把问题拆到三个层面协议层指 Windows 功能里的 SMB 1.0/CIFS 文件共享支持 是否启用SMB2/3 是否被策略禁用。服务层Server 服务LanmanServer负责监听 445 端口Workstation 服务LanmanWorkstation负责访问别人的共享。客户端层资源管理器、net use 命令、PowerShell 的 New-SmbMapping 都属于客户端行为。排查时先用Get-SmbServerConfiguration看服务器端协议状态再用Get-SmbConnection看当前活动连接的协商版本两步就能定位大部分能通但慢或突然断的问题。不要一上来就关防火墙那是最后的选项而且通常没有必要。2. 速度慢的排查链路从万由 NAS 说起2.1 链路瓶颈拆解五步法万由 NAS 是家用和小型办公里很常见的设备很多人反馈 SMB 传大文件只有 20 到 30MB/s。千兆局域网的理论上限约 110MB/s连一半都跑不到肯定不正常。遇到这种问题我建议按链路逐段排查。第一步测局域网基础带宽。用 iperf3 在 NAS 和电脑之间跑一下原始 TCP 吞吐。如果 iperf 结果只有 300Mbps那 SMB 参数再怎么优化都白搭问题在网线、交换机或者网卡协商速率得先修底层。第二步看网卡协商速率。NAS 后台和 Windows 适配器状态里都能看到是 1.0 Gbps 还是掉到了 100 Mbps。很多老房子的墙内网线只通了四芯物理层就会自动降速到百兆这是最常见也最容易被忽略的原因。第三步测磁盘实际读写。用 CrystalDiskMark 测 Windows 本地盘或者在 NAS 上用 dd 写一个临时文件。如果磁盘本身只有 60MB/sSMB 能跑到 60 到 70MB/s 已经合理别再要求更多。第四步检查 SMB 多通道是否生效。如果 NAS 和 Windows 都有多个网口SMB Multichannel 可以把带宽聚合起来。Windows 端用Get-SmbMultichannelConnection查看飞牛、TrueNAS 这类系统对多通道支持都不错。第五步才轮到协议参数调优。确认 SMB3 已开启、SMB1 已关闭再调整缓存和 RSS 之类的高级项。这五步顺序不能乱我之前见过有人在千兆链路只协商到百兆的情况下花两天时间调 Samba 参数最后发现是网线问题。2.2 小文件传输慢的真正原因还有一种常见的速度慢是拿大量零碎照片、代码文件来测试得出的结论。这种情况下二三十 MB/s 不一定是故障而是小文件 IOPS 叠加协议开销导致的必然结果。每个文件都要经过 SMB 的 create、read、close 多次往返延迟一叠加吞吐自然上不去。解决办法有两个方向一是打包传输把几万个小文件打成一个大压缩包再传适合备份归档场景。二是用 robocopy 的多线程参数。Windows 自带 robocopy 的 /MT 参数可以显著提升大量小文件的传输效率命令示例robocopy D:\素材 \\nas\共享目录\素材 /MT:32 /R:2 /W:2 /LOG:copy.log/MT:32表示开 32 个线程并行拷贝对小文件效果明显。但要注意这会同时在 NAS 侧产生大量并发连接轻量 NAS 的 CPU 可能会短暂飙高属于正常现象。2.3 实测参数调优与缓存配置针对万由这类基于 Linux 的 NASSamba 主配置文件/etc/samba/smb.conf里几个参数值得关注[global] min protocol SMB2_10 server min protocol SMB2_10 read raw yes write raw no socket options TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF131072 SO_SNDBUF131072几点说明min protocol SMB2_10可以避免协议降级到 SMB1提高安全性和性能。write raw no在现代 SMB2/3 环境下反而更稳定很多人照搬老教程设成 yes结果大文件写入时出现卡顿。socket options在新内核里已经不需要手动设置了保留也不会有副作用但别指望它带来质变。我不建议照抄网上的万能优化参数包。不同内核、不同 Samba 版本对参数的解释有差异正确做法是先看版本smbd --version改完配置用testparm校验再重启服务testparm systemctl restart smbd如果 NAS 用的是机械硬盘池挂载选项里用async而不是sync顺序写性能会好一些。但异步写入意味着异常断电可能丢数据这个风险要自己权衡家用可以接受重要生产数据不建议。3. 上传中断与扫描不到设备网络侧才是重灾区3.1 上传经常中断的根因定位使用 SMB 上传数据经常中断连接这条反馈在共享存储排障里出现频率极高。Linux 端经常能看到类似CIFS VFS: Server has not responded in 180 seconds的错误日志。根据我的经验根因通常是这几类IP 冲突。局域网里两台设备用了同一个 IP共享连接建立后另一台设备抢占了地址TCP 会话直接重置。排查方法登录路由器看 DHCP 列表或者挨个设备 ping 一下确认没有重复 IP。交换机或路由器开启了节能以太网EEE。长时无流量后链路进入低功耗状态再传数据时需要重新训练握手表现为放一会再传就断。巨型帧不匹配。NAS 和电脑都开了 MTU 9000但中间交换机只支持 1500大包被悄悄丢弃传输一段时间后卡死。这是很隐蔽的坑。Windows 客户端网卡电源管理默认勾选了允许计算机关闭此设备以节约电源空闲后连接被掐断。设备管理器 - 网卡属性 - 电源管理取消勾选。这四个原因里IP 冲突是最容易忽略的。因为刚连上时一切正常传了十几分钟后突然中断重连又好了。如果遇到周期性断连优先查 IP 冲突而不是反复重装 SMB 服务。3.2 为什么共享扫描不到设备一键 SMB 扫描设置工具这类工具解决的通常是 NetBIOS 和 mDNS 发现问题。Windows 网络邻居通过 NetBIOS 或 WS-Discovery 来发现设备而很多 NAS 默认只开了 mDNSAvahi或者只开了 SMB 服务但没有广播注册导致资源管理器里看不到但直接输入\\192.168.x.x又能访问。遇到能看到 Windows 设备但看不到 NAS或者反过来优先检查 Windows 的发现服务Function Discovery Provider HostFunction Discovery Resource PublicationSSDP Discovery网络发现开关在控制面板 - 高级共享设置 - 启用网络发现。防火墙规则可以用命令放行netsh advfirewall firewall set rule group网络发现 new enableYes如果 NAS 开了 SMB 但网络发现还是失败检查 NAS 的 Samba 配置里有没有local master yes以及是否启用了 WSDDWS-Discovery daemon。很多轻量 NAS 系统默认没装 wsdd在网络上自然不广播自己。3.3 一键扫描工具的使用边界我不否认一键扫描工具在批量排查 445 端口时的效率但它有几个明显的边界工具只能证明端口开放不能证明共享权限正确、SMB 版本匹配。扫描结果不等于可访问SMB 还需要有效身份认证。在内网做批量扫描前先确认公司的安全策略允许避免被误判为恶意行为。我个人更倾向用 PowerShell 原生命令排查Get-SmbShare Test-NetConnection 192.168.1.100 -Port 445 net view \\192.168.1.100Get-SmbShare看本机共享Test-NetConnection验证端口连通net view枚举目标的共享列表。这三条命令组合完全够用而且可控、安全不需要额外安装第三方工具。4. Windows 11 开启 SMB 协议别让默认设置坑了你4.1 图形界面开启流程如何快速打开 Windows 11 系统的 SMB 协议这个问题要分两个层面来看开启客户端功能和开启服务器功能。客户端访问别人的共享Windows 11 默认已经开启。如果是要让 Windows 11 对外提供共享路径是设置 - 应用 - 可选功能 - 更多 Windows 功能在列表里勾选 SMB 1.0/CIFS 文件共享支持 或 SMB 直通。这里要提醒一句默认只需要开启 SMB 1.0/CIFS 客户端 就够了不要顺手把 SMB1 服务器和管理员选项都打开那部分攻击面很大历史上有多个漏洞都是打 SMB1 服务器端的。共享开了但别人还是连不上检查防火墙里文件和打印机共享规则是否放行。命令行快速放行netsh advfirewall firewall set rule group文件和打印机共享 new enableYes强调一下不要用netsh advfirewall set allprofiles state off直接关防火墙来排查 SMB。关防火墙确实能让共享立刻通但也把系统直接暴露在局域网风险里不属于正规排障手段。4.2 从 VM17 里的飞牛系统看 SMB 互通热词里提到win10 用 vm17 创建的飞牛说明很多人是在虚拟机里跑 NAS 系统。飞牛 fnOS 是这两年热度很高的国产 NAS 系统跑在 VMware 里也很常见。这种情况下SMB 互通会多一层虚拟化因素。首先要确认虚拟网卡类型。VMware 默认可能是 e1000e性能一般大流量传输建议换成 vmxnet3 半虚拟化网卡并安装 VMware Tools否则 SMB 吞吐会被模拟网卡拖累。其次虚拟机网卡模式建议用桥接模式而不是 NAT这样才能让局域网里其他设备直接通过 445 访问到虚拟机里的飞牛。NAT 模式下通常只有宿主机能访问手机、电视、另一台电脑都会扑空。还有一个容易混淆的点宿主机 Windows 和虚拟机飞牛如果都要做 SMB 共享它们各自有独立 IP不会存在 445 端口冲突。只有当你在一台机器上跑多个服务同时监听 445 时才会冲突那属于服务配置问题不是 SMB 本身的问题。另外虚拟机里磁盘如果是放在宿主机机械盘或者网络存储上即使 SMB 参数正常速度也上不去。先确认虚拟磁盘的后端存储再谈优化。4.3 SMB1 的兼容性陷阱Windows 11 默认禁用了 SMB1遇到老打印机、老摄像头、旧路由器共享时会提示找不到网络路径或直接不可访问。解决办法是单独启用 SMB1 客户端而不是完全关闭新协议。在 PowerShell 里Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -All如果是反向操作想禁用 SMB1 服务器端Set-SmbServerConfiguration -EnableSMB1Protocol 0启用 SMB1 后Windows 仍然优先协商 SMB2/3只有在对方只支持 SMB1 时才会降级。所以不用太担心速度和安全问题但也不要长期开启 SMB1用完老设备后建议关掉。5. SMB 和 iSCSI 到底怎么选存储协议选型5.1 文件级 vs 块级SMB 和 iSCSI 怎么选是很多 NAS 新手第一个搞混的问题。SMB 是文件级协议共享出来的是一个个文件多个客户端可以同时读写同一目录通过 NTFS/ACL 和 Samba 权限来控制访问。iSCSI 是块级协议把 NAS 上的一块磁盘或 LUN 像本地硬盘一样挂给一台机器通常只能被一个 initiator 独占。用生活化的比喻解释SMB 像公共图书馆大家借的是书本身借阅规则由图书馆管理员统一管iSCSI 像是给你一把房间钥匙整个房间归你这台机器用别人要进去都得经过你。这个区别决定了它们的使用边界。SMB 适合多人共享文档、素材、影音iSCSI 适合数据库文件、虚拟机磁盘镜像这类需要更低延迟和块级控制的场景。5.2 场景对照与选型场景推荐协议原因Windows 多台机器共享文档/素材SMB文件级锁定、权限管理成熟数据库文件放 NAS 单机使用iSCSI块级延迟低支持裸设备虚拟机磁盘镜像存储iSCSI 或 NFS避免文件锁冲突性能更稳家庭影音、图片库SMB电视、盒子、手机客户端兼容性最好ESXi 挂载存储iSCSI/NFSSMB 不是 VMware 的主流选择SMB 最大的优势是客户端生态。几乎所有的电视、手机、平板、Windows、macOS、Linux 都支持 SMB 共享而 iSCSI 基本只在 Windows 服务器、VMware、Linux 的 initiator 里用到。家里用优先 SMB公司里跑业务系统根据具体负载考虑 iSCSI。5.3 混合使用的经验一台 NAS 上同时启用 SMB 和 iSCSI 没有问题这是很多真实环境的常态。但有几个注意点不要把 iSCSI LUN 文件直接放在 SMB 共享目录里。双重协议叠加会导致缓存和锁冲突性能下降而且排查问题时会分不清是哪一层引起的。iSCSI 会话建议开启 CHAP 认证避免局域网内其他机器随意连接你的目标磁盘。网络层面尽量给 iSCSI 单独 VLAN 或独立网口。家用没有 VLAN也可以在交换机上做端口隔离至少别让 iSCSI 和 SMB 的大流量挤在同一个网口上。我见过一个典型错误用户为了省事把 ESXi 的虚拟机存储通过 SMB 挂载结果多个虚拟机并发读写时频繁出现文件锁冲突最后改成 iSCSI 就安静了。选型不是看谁新、谁快而是看协议本身适不适合这个负载。6. 路由器 445 端口映射一个必须谨慎的操作6.1 内网共享不映射也能用路由器 SMB 共享 445 的端口映射这条热词我判断是有人想把家里或办公室的 NAS 共享搬到外网访问。先说结论如果没有充分的信心和加固措施不建议做这个映射。445 端口在公网历史上是高风险端口大量蠕虫和勒索病毒专门扫描它。直接把 445 映射出去等于把 NAS 的 SMB 服务暴露在公网扫描器眼皮底下这跟把家门钥匙放在门口垫子下面没有本质区别。内网环境里电脑用\\192.168.x.x直接访问即可根本不需要配置端口映射。如果你只是外出时想访问家里的 NAS优先考虑NAS 厂商自带的远程访问服务比如群晖 QuickConnect、飞牛的远程访问功能只开放 NAS 的 Web 管理界面通过 HTTPS 访问使用 WebDAV over HTTPS 这类相对安全的远程文件访问方式6.2 映射后可能遇到的安全风险万一因为特殊需求确实需要把 SMB 暴露到公网至少要满足以下加固条件修改 NAS 默认管理密码使用高强度密码设置来源 IP 白名单很多路由器支持按 IP 组限制访问在 Samba 配置里增加hosts allow限制hosts allow 192.168.1. 127.0.0.1这里的写法是只允许内网网段和本机访问真正暴露到公网时要替换成固定公网 IP 或按需调整创建独立共享账号给最小权限不要用 admin 账号密切关注 NAS 安全日志如果出现大量登录失败事件立刻关闭映射。需要再次强调以上只是非做不可时的最低限度加固并不是推荐做法。6.3 更稳妥的替代方案如果远程访问只是偶尔拷贝文件更稳的方案是走 WebDAV over HTTPS。把 NAS 的 Web 文件管理通过路由器 HTTPS 端口映射出去访问时在 Windows 里用映射网络驱动器地址填\\nas\DavWWWRoot输完账号密码就能像本地磁盘一样使用但底层走的是加密的 HTTPS 隧道安全性比裸 SMB 高一个数量级。另外Windows 11 22H2 之后支持 SMB over QUIC这是微软官方提供的远程 SMB 访问方案用 443 端口封装 SMB 流量。它解决的是公网访问需求同时避免了 445 端口暴露。不过这个方案主要适用于 Windows 客户端连 Windows 服务器Linux Samba 目前对 SMB over QUIC 的支持还不成熟家用的飞牛、万由可能用不上。所以我的建议很明确能走 HTTPS/WebDAV 或厂商云服务就不碰 445 映射。所谓映射 445 端口这个操作在公网安全环境里基本是负面选项能避开就避开。最后说点个人体会。SMB 问题八成不出在 SMB 本身而出在链路、发现服务和版本协商。手边常备Get-SmbConnection、net view、Test-NetConnection这三个命令比任何一键扫描工具都可靠。遇到难缠的问题把两端协议版本、MTU、网卡协商速率、防火墙规则四项拉齐再谈优化。真到了需要调 SMB 参数那一步说明前面的基础设施问题已经解决了。本文还有配套的精品资源点击获取
返回列表