想让服务器成为团队的文件共享中心、或者在多台服务器间共享文件目录?Samba和NFS是Linux下两个主流的文件共享方案。它们各有适用场景。本文讲清区别、配置和怎么选。
一、Samba vs NFS:核心区别
- Samba:实现Windows的SMB/CIFS协议,主要用于跨平台共享,尤其是和Windows互通。Windows电脑能直接”映射网络驱动器”访问,Mac、Linux也能连;
- NFS:Linux/Unix原生的网络文件系统,主要用于Linux机器之间共享,性能好、集成度高,但和Windows互通不便。
一句话:要和Windows共享、混合环境用Samba;纯Linux机器之间用NFS。
二、Samba配置(跨平台共享)
apt install samba -y
# 编辑 /etc/samba/smb.conf,添加共享目录
[share]
path = /srv/share
browseable = yes
read only = no
valid users = @smbgroup
# 创建Samba用户
smbpasswd -a 用户名
systemctl restart smbd
配好后,Windows用 \\服务器IP\share 访问、Mac用”连接服务器”、Linux用smbclient或挂载。适合团队共享文档、混合办公环境。
三、NFS配置(Linux间共享)
服务端(共享目录的机器):
apt install nfs-kernel-server -y
# 编辑 /etc/exports,指定共享目录和允许的客户端
/srv/nfs 10.0.0.0/24(rw,sync,no_subtree_check)
exportfs -ra
systemctl restart nfs-kernel-server
客户端(要访问的机器):
apt install nfs-common -y
mount 服务端IP:/srv/nfs /mnt/nfs
# 开机自动挂载写入 /etc/fstab(参考挂载硬盘篇)
NFS适合多台Linux服务器共享数据目录,如多台应用服务器共享上传文件、共享配置。
四、安全配置(重要:文件共享别裸奔)
文件共享服务暴露公网非常危险(数据泄露、被写入恶意文件),安全必须做:
- 绝不对公网开放:Samba/NFS只在内网或私有网络内使用(参考WireGuard篇),防火墙严格限制来源IP(参考防火墙篇);
- Samba设好用户认证:用valid users限制、强密码,别开匿名共享;
- NFS限制客户端IP:exports里明确指定允许的IP段,别用 * 开放给所有;
- 权限最小化:共享目录的读写权限按需给(参考权限管理篇);
- 敏感数据慎共享:NFS的安全模型较简单,敏感数据的共享要格外小心。
五、适用场景
- Samba:团队文件共享(有Windows用户)、混合办公的共享盘、NAS式文件服务;
- NFS:多台Linux服务器共享数据(如多应用服务器共享用户上传目录、共享静态资源)、集群共享存储;
- 都要走内网/私有网络:文件共享的正确姿势是在可信的内网环境用,不暴露公网。
六、云环境的替代方案
提一句:如果是为了多机共享文件、或需要海量可扩展存储,对象存储(参考rclone篇)往往是云环境下更现代的选择——可扩展、有现成的权限和访问控制。Samba/NFS更适合传统的、内网的、类局域网的文件共享场景。按需求选择。
结论
文件共享:要和Windows互通/混合环境用Samba,纯Linux机器间用NFS。配置都不难,但安全是铁律——绝不对公网开放,只在内网/私有网络用,限制来源IP和权限。海量或跨云的存储共享则可考虑对象存储。按你的环境(有没有Windows、是不是内网)和需求选对方案,搭起安全的文件共享。