Appearance
20. 网络文件系统与共享
本章节指导在 RHEL 8.10(主机名 ZSLinux)上使用 SecureCRT 配置网络文件系统和共享服务,配合 SecureFX 传输配置文件。内容涵盖 NFS、Samba 和 iSCSI 配置,遵循 Red Hat 官方文档,简洁实用,适合初学者快速上手和运维人员实践。所有操作在 ZSLinux 环境中测试,确保实验一致性。
20.1 前提条件
- RHEL 8.10 已安装(参考第 1 章),主机名设置为
ZSLinux。 - 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 6 章)。
- 使用 SecureFX 传输文件(SFTP 协议)。
- 具有 root 或 sudo 权限。
- 系统已订阅并启用 RHEL 仓库(参考第 4 章)。
- 防火墙启用,SELinux 设置为 enforcing 模式(参考第 13 章)。
- 网络连接正常,时间同步配置完成(参考第 3 章)。
20.2 NFS 配置
20.2.1 NFS 服务器配置
- 安装 NFS 工具:bash
dnf install -y nfs-utils # 安装 NFS 服务器工具 - 创建共享目录:bash
mkdir -p /nfs_share chown nobody:nobody /nfs_share chmod 755 /nfs_share - 编辑导出配置文件:bash
vi /etc/exports # 编辑 NFS 导出文件 # 添加: /nfs_share 192.168.1.0/24(rw,sync,no_root_squash) - 配置 SELinux:bash
setsebool -P nfs_export_all_rw 1 # 允许 NFS 导出读写 - 配置防火墙:bash
firewall-cmd --permanent --add-service=nfs firewall-cmd --permanent --add-service=mountd firewall-cmd --permanent --add-service=rpc-bind firewall-cmd --reload # 应用防火墙规则 - 启动服务:bash
systemctl enable --now nfs-server exportfs -arv # 应用导出配置
20.2.2 NFS 客户端配置
- 安装 NFS 客户端工具:bash
dnf install -y nfs-utils # 安装 NFS 客户端工具 - 创建挂载点:bash
mkdir /mnt/nfs - 挂载 NFS 共享:bash
mount -t nfs ZSLinux:/nfs_share /mnt/nfs # 挂载 NFS 共享 - 永久挂载:bash
vi /etc/fstab # 编辑 fstab 文件 # 添加: ZSLinux:/nfs_share /mnt/nfs nfs defaults 0 0 - 配置防火墙(如果需要客户端访问):bash
firewall-cmd --permanent --add-service=nfs firewall-cmd --reload
20.2.3 NFS 验证
- 服务器验证:bash
exportfs -v # 检查导出列表 showmount -e localhost # 查看本地共享 - 客户端验证:bash
showmount -e ZSLinux # 查看远程共享 df -h /mnt/nfs # 检查挂载点
20.3 Samba 配置
20.3.1 Samba 服务器配置
- 安装 Samba:bash
dnf install -y samba # 安装 Samba 服务器 - 创建共享目录和用户:bash
mkdir /samba_share groupadd sambagroup useradd -M -G sambagroup sambauser smbpasswd -a sambauser # 设置 Samba 用户密码 chown -R sambauser:sambagroup /samba_share chmod 2775 /samba_share - 编辑 Samba 配置:bash
vi /etc/samba/smb.conf # 编辑 Samba 配置文件 # 添加: [global] workgroup = WORKGROUP server string = Samba Server security = user [share] comment = Samba Share path = /samba_share browseable = yes writable = yes valid users = @sambagroup - 配置 SELinux:bash
setsebool -P samba_enable_home_dirs on # 允许 Samba 访问家目录(如果需要) chcon -t samba_share_t /samba_share # 设置 SELinux 上下文 - 配置防火墙:bash
firewall-cmd --permanent --add-service=samba firewall-cmd --reload - 启动服务:bash
systemctl enable --now smb nmb
20.3.2 Samba 客户端配置
- 安装 Samba 客户端工具:bash
dnf install -y samba-client cifs-utils # 安装 Samba 客户端工具 - 创建挂载点:bash
mkdir /mnt/samba - 挂载 Samba 共享:bash
mount -t cifs //ZSLinux/share /mnt/samba -o username=sambauser,password=<password> - 永久挂载:bash
vi /etc/fstab # 编辑 fstab 文件 # 添加: //ZSLinux/share /mnt/samba cifs credentials=/etc/samba/credentials,vers=3.0 0 0 - 创建凭据文件:bash
vi /etc/samba/credentials # 创建凭据文件 # 添加: username=sambauser password=<password> chmod 600 /etc/samba/credentials
20.3.3 Samba 验证
- 服务器验证:bash
testparm # 检查 smb.conf 配置 smbstatus # 查看 Samba 状态 - 客户端验证:bash
smbclient -L ZSLinux -U sambauser # 列出共享 df -h /mnt/samba # 检查挂载点
20.4 iSCSI 配置
20.4.1 iSCSI 目标(Target)配置
- 安装 iSCSI 目标工具:bash
dnf install -y targetcli # 安装 targetcli 工具 - 配置 iSCSI 目标:bash
targetcli # 进入 targetcli 交互模式 # 执行以下命令: /> backstores/block create lun0 /dev/vg_data/lv_iscsi # 创建 block backstore /> iscsi/ create iqn.2025-10.com.example:target1 # 创建 iSCSI IQN /> /iscsi/iqn.2025-10.com.example:target1/tpg1/luns create /backstores/block/lun0 # 添加 LUN /> /iscsi/iqn.2025-10.com.example:target1/tpg1/acls create iqn.2025-10.com.example:initiator1 # 创建 ACL /> /iscsi/iqn.2025-10.com.example:target1/tpg1 set attribute authentication=0 # 禁用认证(生产环境启用) /> saveconfig /> exit - 配置 SELinux:bash
setsebool -P iscsi_target_tcp_access 1 # 允许 iSCSI 目标 TCP 访问 - 配置防火墙:bash
firewall-cmd --permanent --add-port=3260/tcp firewall-cmd --reload - 启动服务:bash
systemctl enable --now target
20.4.2 iSCSI 发起者(Initiator)配置
- 安装 iSCSI 发起者工具:bash
dnf install -y iscsi-initiator-utils # 安装 iSCSI 发起者工具 - 设置发起者名称:bash
vi /etc/iscsi/initiatorname.iscsi # 编辑发起者 IQN # 添加: InitiatorName=iqn.2025-10.com.example:initiator1 - 发现和登录目标:bash
iscsiadm -m discovery -t sendtargets -p 192.168.1.100 # 发现目标(替换 IP) iscsiadm -m node -T iqn.2025-10.com.example:target1 -p 192.168.1.100 -l # 登录目标 - 格式化和挂载:bash
mkfs.xfs /dev/sdX # 格式化磁盘(替换 sdX) mkdir /mnt/iscsi mount /dev/sdX /mnt/iscsi - 永久挂载:bash
vi /etc/fstab # 编辑 fstab 文件 # 添加: /dev/sdX /mnt/iscsi xfs defaults,_netdev 0 0 - 配置自动登录:bash
iscsiadm -m node -T iqn.2025-10.com.example:target1 -p 192.168.1.100 --op=update -n node.startup -v automatic
20.4.3 iSCSI 验证
- 目标验证:bash
targetcli ls # 检查目标配置 systemctl status target # 检查服务状态 - 发起者验证:bash
iscsiadm -m session # 检查会话 df -h /mnt/iscsi # 检查挂载点
20.5 实践任务
- 配置 NFS 服务器并在客户端挂载
/nfs_share。 - 配置 Samba 共享并在客户端挂载
/samba_share。 - 配置 iSCSI 目标并在发起者挂载 LUN。
- 验证所有共享的访问和权限。
20.6 自测问题
- 问题:如何导出 NFS 共享?
- 答案:编辑
/etc/exports,添加/nfs_share 192.168.1.0/24(rw,sync),然后exportfs -arv。
- 答案:编辑
- 问题:如何配置 Samba 用户?
- 答案:
useradd sambauser,smbpasswd -a sambauser。
- 答案:
- 问题:如何发现 iSCSI 目标?
- 答案:
iscsiadm -m discovery -t sendtargets -p <target-ip>。
- 答案:
