共享文件与目录服务(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 端口,管理动态端口注册(如 mountdstatd
    • 客户端先查 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 跨平台共享问题,需用户认证。
  • 生产环境中应结合权限控制、防火墙策略与定期备份,保障数据安全。

posted @ 2025-12-24 17:38  ShiLiCoder  阅读(1)  评论(0)    收藏  举报