搭建 NFS 服务器并进行跨平台挂载
在这篇文章中,我们将详细介绍如何在 Linux 系统上搭建 NFS(网络文件系统)服务器,并演示如何在 Linux 和 Windows 客户端上挂载该共享目录。通过逐步指南,您将了解如何安装配置 NFS 服务、共享目录的设置,以及如何解决跨平台访问问题。无论是 Linux 还是 Windows 环境,您都能轻松实现文件共享与管理,提升数据访问效率和网络协作能力。
在 Linux 上搭建 NFS 服务器
安装 NFS 服务器
首先,根据您的 Linux 发行版安装 NFS 服务。
对于基于 Debian 的系统(如 Ubuntu):
sudo apt update |
对于基于 RPM 的系统(如 CentOS 或 Fedora):
sudo yum install nfs-utils |
配置 NFS 共享
创建一个共享目录并配置 NFS 来共享此目录。以下以 /var/nfs_share 目录为例:
sudo mkdir /var/nfs_share |
接下来,编辑 /etc/exports 文件,添加共享目录的配置项:
sudo vim /etc/exports |
在文件中添加如下行,允许特定客户端(例如,IP 地址为 <client_ip> 的机器)访问共享目录:
/var/nfs_share <client_ip>(rw,sync,no_subtree_check) |
例如,允许整个子网 192.168.1.0/24 访问:
/var/nfs_share 192.168.1.0/24(rw,sync,no_subtree_check) |
保存并关闭文件。
启动并配置 NFS 服务
启动 NFS 服务,并确保它在系统启动时自动启动:
sudo systemctl start nfs-kernel-server |
验证 NFS 服务是否正在运行:
sudo systemctl status nfs-kernel-server |
在客户端挂载 NFS 共享
Linux 客户端
安装 NFS 客户端工具
根据客户端系统类型安装 NFS 客户端工具:
对于 Debian/Ubuntu:
sudo apt install nfs-common |
对于 CentOS/Fedora:
sudo yum install nfs-utils |
挂载 NFS 共享
使用 mount 命令挂载共享目录:
sudo mount -t nfs <nfs_server_ip>:/var/nfs_share /mnt |
将 <nfs_server_ip> 替换为您的 NFS 服务器的 IP 地址,/mnt 为本地挂载点。
配置开机自动挂载(可选)
如果您希望在每次启动时自动挂载 NFS 共享,可以编辑 /etc/fstab 文件:
sudo nano /etc/fstab |
添加如下行:
<nfs_server_ip>:/var/nfs_share /mnt nfs defaults 0 0 |
Windows 客户端
启用 NFS 客户端功能
在 Windows 10 或 Windows Server 上,首先需要启用 NFS 客户端功能。打开“控制面板”,依次点击“程序和功能” > “启用或关闭 Windows 功能”,勾选“服务于 NFS 的子系统”。
挂载 NFS 共享
打开命令提示符(以管理员身份),并使用如下命令:
mount <nfs_server_ip>:/var/nfs_share Z: |
将 <nfs_server_ip> 替换为 NFS 服务器的 IP 地址,Z: 为您希望挂载的驱动器字母。
验证挂载
在 Linux 上验证挂载
可以使用 ls 命令查看挂载点内容,确认共享目录是否成功挂载:
ls /mnt |
在 Windows 上验证挂载
可以在命令提示符中使用 dir 命令来验证挂载是否成功:
dir Z: |
配置防火墙以支持 NFS 服务
NFS 服务所需的主要端口
NFS 服务依赖于多个网络端口,确保防火墙正确配置是至关重要的。以下是主要端口:
- TCP/UDP 2049:NFS 主端口,用于文件系统操作。
- TCP/UDP 111:RPC(远程过程调用)端口,用于客户端与 NFS 服务器之间的通信。
此外,NFS 还可能使用一些额外的端口:
- TCP/UDP 3270-3280:这些端口用于 NFS 的附加服务,如
mountd、statd和lockd。
配置 UFW 防火墙(Debian 系列)
在基于 Debian 的 Linux 系统(如 Ubuntu)中,可以使用 UFW 来配置防火墙规则:
sudo ufw allow 2049/tcp |
配置 firewalld 防火墙(RHEL 系列)
对于基于 RHEL 的 Linux 系统(如 CentOS 或 Fedora),可以使用 firewalld 配置防火墙规则:
启用
firewalld服务sudo systemctl start firewalld
sudo systemctl enable firewalld添加防火墙规则
开放 NFS 所需的端口:
sudo firewall-cmd --permanent --add-port=2049/tcp
sudo firewall-cmd --permanent --add-port=2049/udp
sudo firewall-cmd --permanent --add-port=111/tcp
sudo firewall-cmd --permanent --add-port=111/udp
sudo firewall-cmd --permanent --add-port=3270-3280/tcp
sudo firewall-cmd --permanent --add-port=3270-3280/udp重新加载防火墙规则
sudo firewall-cmd --reload
验证防火墙规则
使用以下命令检查防火墙规则是否已正确配置:
sudo firewall-cmd --list-all
确保防火墙规则正确无误,避免由于端口未开放而导致客户端无法访问 NFS 服务。
总结
通过本文提供的步骤,您已经学会如何在 Linux 系统上搭建并配置 NFS 服务器,以及如何在 Linux 和 Windows 客户端上挂载 NFS 共享。确保在生产环境中使用适当的安全配置和网络策略,以防止未经授权的访问。