在 CentOS 上设置 NFS 共享并确保 Windows 客户端能够挂载该共享时,需要确保 NFS 服务所需的端口已经开放并且正确配置。以下是配置 CentOS 服务器并确保它允许 Windows 客户端访问 NFS 共享的步骤:
1. NFS 服务所需的端口
NFS 和其依赖的 RPC 服务使用以下端口:
- RPC 端口映射器:端口 111(TCP 和 UDP)
- NFS 服务:端口 2049(TCP 和 UDP)
- Mountd 服务:动态分配端口,通常是 20048(TCP 和 UDP)
- RPC 的锁服务:端口 4045(TCP 和 UDP)
- NFS 相关的其他服务(如
statd):端口 32803(TCP 和 UDP)
2. 配置 CentOS 防火墙
确保 CentOS 的防火墙允许这些端口通过。你可以使用 firewalld(CentOS 7 及以上版本)来配置防火墙规则,或者使用 iptables。
使用 firewalld 开放端口:
- 首先,确认
firewalld服务正在运行:
bash
复制代码
sudo systemctl status firewalld- 然后,开启 NFS 所需的端口:
bash
复制代码
sudo firewall-cmd --permanent --zone=public --add-port=111/tcp
sudo firewall-cmd --permanent --zone=public --add-port=111/udp
sudo firewall-cmd --permanent --zone=public --add-port=2049/tcp
sudo firewall-cmd --permanent --zone=public --add-port=2049/udp
sudo firewall-cmd --permanent --zone=public --add-port=20048/tcp
sudo firewall-cmd --permanent --zone=public --add-port=20048/udp
sudo firewall-cmd --permanent --zone=public --add-port=4045/tcp
sudo firewall-cmd --permanent --zone=public --add-port=4045/udp
sudo firewall-cmd --permanent --zone=public --add-port=32803/tcp
sudo firewall-cmd --permanent --zone=public --add-port=32803/udp- 重新加载防火墙配置:
bash
复制代码
sudo firewall-cmd --reload使用 iptables 开放端口:
如果你使用的是 iptables,你可以手动打开这些端口:
bash
复制代码
sudo iptables -A INPUT -p tcp --dport 111 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 111 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2049 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 2049 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20048 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 20048 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 4045 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 4045 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 32803 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 32803 -j ACCEPT3. 配置 NFS 服务
确保 CentOS 上的 NFS 服务和相关服务已启动,并配置正确。
- 安装 NFS 相关软件包(如果未安装):
bash
复制代码
sudo yum install nfs-utils- 启动并使 NFS 服务开机启动:
bash
复制代码
sudo systemctl start nfs-server
sudo systemctl enable nfs-server- 确保 NFS 相关服务也正在运行(
rpcbind,mountd,nfs等):
bash
复制代码
sudo systemctl start rpcbind
sudo systemctl enable rpcbind- 检查 NFS 共享目录是否正确配置:
- 编辑
/etc/exports文件,确保共享目录正确配置。例如:
bash
复制代码
/path/to/share *(rw,sync,no_root_squash)这表示将 /path/to/share 目录共享给所有主机(*),并允许读写。
- 重新导出 NFS 共享:
bash
复制代码
sudo exportfs -a- 检查 NFS 服务状态:
bash
复制代码
sudo systemctl status nfs-server4. 在 Windows 上挂载 CentOS 的 NFS 共享
- 确保你已经启用了 Windows 上的 NFS 客户端功能。
- 你可以通过以下命令在 PowerShell 中启用:
powershell
复制代码
Enable-WindowsOptionalFeature -Online -FeatureName NFS-Client -All- 使用
mount命令挂载 NFS 共享:
cmd
复制代码
mount -o anon \\192.168.4.200\nfsdrive Z:- 将
192.168.4.200替换为 CentOS 服务器的 IP 地址,nfsdrive替换为实际共享目录,Z:是本地 Windows 上的驱动器字母。
5. 确认共享成功
在 CentOS 上,执行以下命令确认共享目录已正确导出:
bash
复制代码
showmount -e 127.0.0.1这将列出已共享的目录。如果共享目录列表正确,说明配置没有问题。
总结
- CentOS 防火墙配置:确保开放 RPC 映射端口(111)、NFS 服务端口(2049)及其它相关端口。
- CentOS NFS 配置:启动并配置 NFS 服务,正确设置共享目录。
- Windows 客户端:在 Windows 上启用 NFS 客户端并使用
mount命令挂载共享。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




