NFS适用于Unix/Linux间高性能共享,SMB/Samba主打Windows兼容;配置需分别安装对应服务、编辑导出/共享文件、设置安全与性能参数,并通过fstab或systemd挂载,再依协议调优网络与内核参数。

NFS 和 SMB 是 Linux 下最常用的两种网络文件系统协议,用途不同、配置方式不同、优化思路也不同。NFS 更适合 Unix/Linux 环境间的高性能共享,SMB(Samba)则主打与 Windows 的无缝兼容。选对协议、配好服务、调优关键参数,才能让共享既稳定又高效。
一、NFS 服务端配置:从安装到导出目录
NFS 依赖内核支持,大多数发行版默认已启用。服务端需安装 nfs-utils(RHEL/CentOS)或 nfs-kernel-server(Debian/Ubuntu)。
- 编辑 /etc/exports,定义共享路径、客户端权限和挂载选项,例如:
/data 192.168.1.0/24(rw,sync,no_subtree_check,root_squash) - rw 允读写,sync 保证数据落盘(兼顾安全与性能),no_subtree_check 减少路径校验开销,root_squash 防止客户端 root 提权
- 执行 exportfs -ra 重载配置,systemctl restart nfs-server 启动服务
- 确保防火墙放行 2049/tcp 和 2049/udp(NFSv4 可仅用 TCP)
二、Samba(SMB)共享配置:跨平台访问的关键
Samba 实现 SMB/CIFS 协议,让 Linux 能作为 Windows 风格的文件服务器。安装 samba 包后,主配置文件为 /etc/samba/smb.conf。
- 在 [global] 段设置基础行为:
workgroup = WORKGROUP(匹配 Windows 工作组)
security = user(用户级认证)
map to guest = never(禁用访客映射,提升安全性) - 添加共享段,例如:
[share]
path = /srv/samba/share
browsable = yes
read only = no
valid users = alice,bob
create mask = 0644
directory mask = 0755 - 用 smbpasswd -a username 添加 Samba 用户(需先有系统用户)
- 启动服务:systemctl enable --now smb nmb;nmb 用于 NetBIOS 名称解析
三、客户端挂载:稳定性和自动化的要点
客户端挂载方式直接影响可用性。手动挂载适合调试,自动挂载推荐用 /etc/fstab 或 systemd mount unit。
- NFS 推荐挂载选项:
192.168.1.10:/data /mnt/nfs nfs defaults,vers=4.2,rsize=1048576,wsize=1048576,hard,intr,timeo=14,retrans=3 0 0
其中 vers=4.2 启用 NFSv4.2(支持并行 I/O、服务器端复制等新特性),rsize/wsize=1M 提升吞吐,hard + intr 保证中断可响应 - SMB 推荐用 cifs 类型挂载:
//192.168.1.10/share /mnt/smb cifs credentials=/etc/samba/cred,uid=1000,gid=1000,iocharset=utf8,vers=3.0,cache=strict 0 0
凭据文件 /etc/samba/cred 内容为:
username=alice
password=xxx(建议 chmod 600) - 避免 fstab 中直接写密码;敏感信息统一用 credentials 文件或 keyring 管理
四、性能优化:从协议层到内核参数
瓶颈常出现在协议协商、网络传输、磁盘 I/O 和内核缓存层面,需分层排查。
-
NFS 侧重点:
– 客户端开启 nfsstat -c 查重传率,高值说明网络丢包或 timeout 过短
– 服务端增大 /proc/sys/net/core/rmem_max 和 wmem_max(如设为 4194304)
– 使用 nfsiostat 观察 IOPS、await、svctm,判断是网络延迟还是存储响应慢 -
Samba 侧重点:
– 在 [global] 中启用异步 I/O:aio read size = 16384,aio write size = 16384
– 关闭不必要日志:log level = 1(默认是 2,过高影响性能)
– 若客户端支持 SMBv3,强制使用:min protocol = SMB3,启用加密与压缩(需额外配置) - 通用建议:
– 使用千兆及以上全双工网卡,关闭 TCP offloading(ethtool -K eth0 gso off tso off)避免某些网卡驱动 bug
– 共享目录所在文件系统建议用 XFS(大文件、高并发表现更稳)或 ext4(启用 barrier=1 和 data=ordered)











