凌峰创科服务平台

Ubuntu如何搭建NFS服务器?

在Ubuntu系统中搭建NFS(Network File System)服务器可以让多台客户端计算机通过网络共享文件,这对于团队协作、数据集中管理以及跨设备访问文件非常实用,以下是详细的搭建步骤,包括环境准备、服务安装、配置文件修改、权限设置、服务启动与测试,以及常见问题的解决方案。

Ubuntu如何搭建NFS服务器?-图1
(图片来源网络,侵删)

环境准备

在开始之前,需要确保Ubuntu服务器已经正确安装并更新了系统软件包,假设服务器IP地址为192.168.1.100,客户端IP地址为192.168.1.x段(可根据实际网络环境调整),通过以下命令更新系统:

sudo apt update
sudo apt upgrade -y

为了确保服务器和客户端之间的网络通信正常,建议在服务器上安装nfs-common工具包(包含NFS客户端工具),以便后续测试:

sudo apt install nfs-common -y

安装NFS服务器软件

Ubuntu默认的软件源中包含NFS服务器软件包nfs-kernel-server,该包提供了内核级的NFS支持,性能较好,使用以下命令安装:

sudo apt install nfs-kernel-server -y

安装完成后,系统会自动启动NFS服务,但为了确保配置生效,后续需要手动重启服务。

Ubuntu如何搭建NFS服务器?-图2
(图片来源网络,侵删)

创建共享目录

选择一个目录作为NFS共享目录,例如/home/nfs_share,首先创建该目录,并设置合适的权限:

sudo mkdir -p /home/nfs_share
sudo chown -R nobody:nogroup /home/nfs_share
sudo chmod -R 777 /home/nfs_share

这里将目录所有者设置为nobody和组nogroup,是为了避免客户端访问时因权限问题导致错误;777权限允许所有用户读写执行,实际生产环境中可根据需求调整(如设置为755770)。

配置NFS共享目录

NFS服务器的核心配置文件是/etc/exports,该文件定义了哪些目录可以被哪些客户端访问,以及访问权限,编辑该文件:

sudo nano /etc/exports

在文件末尾添加以下内容(根据实际需求修改):

Ubuntu如何搭建NFS服务器?-图3
(图片来源网络,侵删)
/home/nfs_share 192.168.1.0/24(rw,sync,no_subtree_check)

参数说明:

  • 168.1.0/24:允许访问的客户端IP段,/24表示子网掩码255.255.255.0,即该网段所有设备;若指定单个IP,如168.1.101;若允许所有客户端,可使用(不推荐,存在安全风险)。
  • rw:允许客户端读写共享目录;若只读,则使用ro
  • sync:数据同步写入磁盘,确保数据安全性;若追求性能,可使用async(但可能丢失数据)。
  • no_subtree_check:不检查子目录,避免某些场景下的挂载错误。

保存文件后,执行以下命令使配置生效:

sudo exportfs -a

启动并设置NFS服务开机自启

确保NFS相关服务正在运行,并设置开机自启:

sudo systemctl restart nfs-kernel-server
sudo systemctl enable nfs-kernel-server

检查服务状态:

sudo systemctl status nfs-kernel-server

若显示active (running),则服务运行正常。

防火墙配置

若服务器启用了UFW防火墙,需要开放NFS相关端口(默认2049端口)以及rpcbind端口(111端口):

sudo ufw allow 111/tcp
sudo ufw allow 2049/tcp
sudo ufw reload

若使用iptables,需手动添加规则:

sudo iptables -A INPUT -p tcp --dport 111 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2049 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4

客户端挂载测试

在客户端(可以是另一台Ubuntu或其他Linux系统),首先安装nfs-common

sudo apt install nfs-common -y

创建本地挂载目录,例如/mnt/nfs_client

sudo mkdir -p /mnt/nfs_client

挂载NFS共享目录:

sudo mount 192.168.1.100:/home/nfs_share /mnt/nfs_client

挂载成功后,可通过df -h查看挂载信息,或在/mnt/nfs_client中创建文件测试读写权限,若希望开机自动挂载,可编辑/etc/fstab文件:

168.1.100:/home/nfs_share /mnt/nfs_client nfs defaults 0 0

常见问题排查

  1. 权限问题:客户端挂载后提示“Permission denied”,可能是共享目录权限或NFS配置问题,检查/home/nfs_share的权限是否为777,以及/etc/exports中是否正确设置了rw选项。
  2. 端口未开放:客户端挂载超时,可能是防火墙或NFS服务端口未开放,检查服务器防火墙规则,确保1112049端口已开放,并使用rpcinfo -p确认NFS服务端口状态。

相关问答FAQs

问题1:如何查看NFS服务已开放的共享目录?
解答:可以使用showmount命令查看服务器端开放的共享目录,在客户端执行以下命令:

showmount -e 192.168.1.100

若显示/home/nfs_share 192.168.1.0/24,则表示共享目录配置正确。

问题2:NFS挂载后,客户端无法删除文件,提示“Operation not permitted”,如何解决?
解答:这通常是由于NFS服务器的root_squash选项默认将客户端root用户映射为匿名用户(nobody)导致的,若需要客户端root用户拥有完全权限,可在/etc/exports中添加no_root_squash选项,

/home/nfs_share 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)

修改后执行sudo exportfs -a重新加载配置,并重启NFS服务,注意:此选项会降低安全性,仅在可信网络环境中使用。

分享:
扫描分享到社交APP
上一篇
下一篇