共享文件与目录服务(NFS 与 Samba)
共享文件与目录服务(NFS 与 Samba)
一、NFS(Network File System)共享
1.1 NFS 简介
- 作用:允许不同 Linux/Unix 主机通过网络共享文件和目录。
- 架构:客户端–服务器模型。
- 特点:
- 客户端可像访问本地磁盘一样操作远程目录。
- 主要用于 Linux/Unix 系统间共享,跨平台兼容性一般。
1.2 实验场景
- 服务端:
node2,共享/export/software - 客户端:
node1,挂载该目录
1.3 配置步骤
(1)安装 NFS 工具
# 服务端 & 客户端均需安装
dnf install nfs-utils
(2)服务端配置
# 创建共享目录
mkdir -p /export/software
# 编辑导出配置
vi /etc/exports
添加内容:
/export/software *(rw,sync,no_root_squash)
参数说明:
*:所有客户端可访问(可替换为 IP 或网段)rw:读写权限(默认只读 ro)sync:同步写入磁盘(安全但慢),async为异步no_root_squash:客户端 root 用户保留 root 权限(有安全风险)
(3)启动服务并设置开机自启
systemctl enable --now nfs-server
(4)防火墙放行
firewall-cmd --add-service=nfs --permanent
firewall-cmd --reload
(5)验证共享
# 查看本机已共享的目录
showmount -e localhost
# 或
exportfs -v
(6)客户端挂载
# 创建挂载点(必须为空目录)
mkdir -p /export/software
# 挂载
mount -t nfs 192.168.88.102:/export/software /export/software
# 验证
df -h
(7)测试读写
- 服务端写 → 客户端可见
- 客户端写 → 服务端可见
1.4 NFS 工作原理(了解)
- 依赖 RPC(Remote Procedure Call)
rpcbind监听 111 端口,管理动态端口注册(如mountd、statd)- 客户端先查 rpcbind 获取实际服务端口,再通信
- NFSv4 改进:
- 所有功能整合,仅使用 TCP 2049 端口
- 不再依赖 rpcbind
二、Samba 共享(Linux ↔ Windows)
2.1 Samba 简介
- 协议:实现 SMB/CIFS 协议
- 用途:让 Linux 与 Windows 系统互相共享文件和打印机
- 核心服务:
smb:文件/打印共享主服务(端口 445)nmb:NetBIOS 名称解析(端口 137/138),使主机在网络中可见
2.2 配置步骤(服务端 node2)
(1)安装 Samba
dnf -y install samba
(2)创建共享目录
mkdir -p /sambda/share
(3)配置 smb.conf
vi /etc/samba/smb.conf
在文件末尾添加:
[smbshare]
comment = samba share
path = /sambda/share
read only = No
关键全局配置说明:
workgroup = SAMBA:工作组名(对应 Windows 工作组)security = user:用户需认证(用户名+密码)passdb backend = tdbsam:用户数据库类型
(4)创建 Samba 用户
# 创建系统用户
useradd user01
passwd user01 # 设置 Linux 密码(如 123456)
# 添加为 Samba 用户(需单独设密码,通常与 Linux 密码一致)
smbpasswd -a user01
# 查看 Samba 用户列表
pdbedit -L
⚠️ 权限提示:确保 Samba 用户对共享目录有读写权限
建议:chown user01:user01 /sambda/share
(5)启动服务
systemctl enable --now smb nmb
(6)防火墙放行
firewall-cmd --add-service=samba --permanent
firewall-cmd --reload
2.3 客户端访问
(1)Linux 客户端(node1)
# 安装客户端工具
dnf -y install samba-client
# 列出共享资源
smbclient -L 192.168.88.102 -U user01
# 连接共享目录
smbclient //192.168.88.102/smbshare -U user01
(2)Windows 客户端
- 文件资源管理器地址栏输入:
\\192.168.88.102
或
\\192.168.88.102\smbshare - 输入用户名
user01和密码登录 - 可选:通过“添加网络位置”永久挂载为网络驱动器
三、综合案例:跨平台文件共享与自动化备份
需求
| 类型 | 路径 | 说明 |
|---|---|---|
| 安装包共享 | /export/software |
NFS + Samba 双共享 |
| 配置文件共享 | /export/properties |
实时同步 |
| 日志集中 | /var/log |
每日备份 |
| 备份目标 | /all_server_data_log/ |
在 node3 |
架构
- node1 / node2:Linux 服务器(互为客户/服务端)
- node3:备份服务器(通过 rsync 或脚本同步)
- Windows:通过 Samba 访问
/export/software
💡 实现建议:
- 使用
rsync+cron实现定时/实时同步- NFS 用于 Linux 间高效共享
- Samba 用于 Windows 接入
四、清理命令(实验后)
客户端(node1)
dnf -y remove nfs-utils samba-client
dnf clean all
rm -rf /export/software
服务端(node2)
dnf -y remove nfs-utils samba
dnf clean all
rm -rf /export/software /sambda/share
# 注意:/etc/samba 和 /etc/exports 也会被删除
✅ 总结:
- NFS:适合 Linux 间高性能文件共享,配置简单,依赖网络稳定。
- Samba:解决 Linux 与 Windows 跨平台共享问题,需用户认证。
- 生产环境中应结合权限控制、防火墙策略与定期备份,保障数据安全。

浙公网安备 33010602011771号