常见问题

飞牛NAS SMB传输速度慢:一步步排查优化

飞牛NAS(fnOS)的SMB共享是日常文件传输最常用的协议,但不少用户会遇到“千兆网卡却跑出百兆速度”甚至更低的尴尬情况。速度慢的原因往往不是单一因素,而是硬件、系统配置、客户端设置共同作用的结果。本文将从最基础的物理链路开始,一步步带你排查并优化,让SMB传输速率回归正常。

第一步:确认物理链路与网卡协商速率

在排查软件问题前,先确保硬件本身没有瓶颈。进入飞牛NAS的「控制面板」-「网络设置」,查看当前网卡的协商速率。如果你使用的是千兆交换机或路由器,这里应显示为1000Mb/s(或1Gbps)。如果显示100Mb/s,说明网线或对端设备接口存在问题,请更换至少超五类(Cat5e)的成品网线,并确认对端交换机端口也是千兆。

此外,建议在NAS端和电脑端都检查网卡驱动是否启用了节能以太网(EEE)或绿色以太网功能。在Linux系统(fnOS底层)中,可以执行以下命令临时关闭网卡的节能模式(需替换eth0为你的实际网卡名):

sudo ethtool --set-eee eth0 eee off

若想永久生效,可将该命令写入开机启动脚本,或通过fnOS的「计划任务」添加一条开机执行的Shell脚本。

第二步:检查SMB协议版本与配置文件

飞牛NAS默认使用SMB3.0协议,但有时为了兼容旧设备,系统可能自动降级到SMB1.0或2.0,这会极大影响传输性能。在NAS的「控制面板」-「文件共享」-「SMB服务」中,确认最高协议版本设置为“SMB3.0”或“SMB3.1.1”。

如果你有SSH访问权限,可以手动编辑SMB配置文件(路径通常为 /etc/samba/smb.conf),在 [global] 段落中加入或修改以下参数:

[global]
server min protocol = SMB2_10
server max protocol = SMB3_11
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
read raw = yes
write raw = yes
strict locking = no

其中 socket optionsread/write raw 参数能显著提升大文件传输的吞吐量。修改后重启SMB服务:

sudo systemctl restart smbd

注意:不要同时开启 strict locking = yes,否则某些应用(如数据库文件)可能因锁冲突导致速度骤降。

第三步:优化挂载参数(针对Windows和macOS客户端)

如果你的电脑是Windows,默认的SMB挂载参数可能不够激进。可以尝试修改注册表或使用命令强制开启更大的读写缓存与并发连接。在Windows的命令提示符(管理员)中,执行:

netsh int tcp set global autotuninglevel=normal
netsh int tcp set global rss=enabled

对于macOS用户,挂载SMB时建议在Finder的连接窗口中使用 smb://NASIP 并勾选“连接时加密”选项。若追求速度,可尝试在终端中手动挂载并指定协议版本:

mount_smbfs -N //username@NASIP/share /mnt/point -o vers=3.0

第四步:排查磁盘阵列与写入策略

SMB速度慢也可能是NAS后端磁盘阵列(RAID)或单盘性能瓶颈导致。如果你使用的是RAID5或RAID6,写入时需要计算校验,速度会明显低于RAID0或单盘。在fnOS的「存储管理」中,可以查看当前阵列的健康状态和读写缓存策略。建议将阵列的“写入缓存”设置为“开启”(如果硬件支持),并确保没有磁盘处于降级状态。

对于机械硬盘,可以尝试调整文件系统挂载参数中的 noatime 选项,减少不必要的元数据写入。在fnOS的「文件系统」设置中,如果允许自定义挂载参数,加入 noatime 即可。

第五步:使用大文件测试排除小文件干扰

很多用户用大量小文件(如照片、代码)测试速度,导致结果偏低。SMB协议对小文件的处理开销远大于大文件,这是正常现象。请使用至少1GB以上的单个大文件(如视频、压缩包)进行测试。在Windows下可用 robocopy 或资源管理器直接复制,在Linux下可用:

dd if=/dev/zero of=/mnt/nas/testfile bs=1M count=1024

然后从NAS读取该文件到本地,观察平均速度。如果大文件速度能达到100MB/s以上(千兆网络的理论上限约112MB/s),说明SMB配置基本正常,之前慢是小文件场景的固有损耗。

第六步:关闭杀毒软件或实时扫描

Windows Defender或第三方安全软件会在文件传输时实时扫描内容,极大拖慢速度。在传输大文件时,可以暂时关闭“实时保护”或把NAS的IP加入排除列表。macOS的Spotlight索引也可能在后台扫描SMB挂载卷,可以在“系统偏好设置-聚焦-隐私”中添加NAS卷路径。

第七步:进阶排查——开启SMB多通道

如果你的NAS和电脑都有多个网络接口(例如双千兆网口),可以尝试启用SMB多通道(SMB Multichannel),让两个网口同时传输,理论速度翻倍。在fnOS的SMB配置文件中,确认存在:

[global]
server multi channel support = yes

然后在电脑端的网卡设置中,确保两个网卡属于同一子网且没有配置IP冲突。Windows下会自动启用,Linux客户端可在挂载时添加 multichannel 选项。

总结

SMB速度慢的排查应从物理链路(网线、协商速率)出发,依次检查协议版本、SMB配置参数、客户端挂载选项、后端存储性能,最后再考虑杀毒软件等干扰因素。大多数情况下,调整 socket options 和确认SMB3.0协议即可解决问题。如果经过以上步骤仍无改善,建议检查NAS的CPU占用率(可能是加密或压缩导致),或者考虑换用NFS协议做对比测试。记住,优化是一个逐步排除的过程,耐心操作定能找回应有的传输速度。

💬 评论区
发表评论

暂无评论,来说两句吧