在Linux中,NFS(网络文件系统)服务器用于在网络上共享文件和目录
在Debian/Ubuntu系统上,使用以下命令安装NFS服务器:
sudo apt-get update
sudo apt-get install nfs-kernel-server nfs-common
在CentOS/RHEL系统上,使用以下命令安装NFS服务器:
sudo yum install nfs-utils
首先,创建一个要共享的目录,并设置适当的权限。例如,创建一个名为/shared
的目录:
sudo mkdir /shared
sudo chown nfsnobody:nfsnobody /shared
sudo chmod 755 /shared
这里,我们将目录的所有者设置为nfsnobody
,这是一个特殊的组,用于NFS访问。我们还设置了目录的权限为755
,以便所有用户都可以读取和执行文件。
编辑/etc/exports
文件以配置NFS共享。例如,要共享/shared
目录,您可以添加以下行:
/shared *(rw,sync,no_subtree_check)
这里,我们允许所有客户端以读写权限访问共享目录。sync
选项表示每次写入后立即同步到磁盘,以提高数据安全性。no_subtree_check
选项用于提高性能,但可能会导致某些安全问题。
保存并关闭文件。然后,重启NFS服务以应用更改:
在Debian/Ubuntu系统上:
sudo systemctl restart nfs-kernel-server
在CentOS/RHEL系统上:
sudo systemctl restart nfs-server
如果您的服务器启用了防火墙,您需要允许NFS相关端口(通常为111,2049和4049)的传入连接。例如,使用iptables
时,您可以添加以下规则:
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 4049 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 4049 -j ACCEPT
如果您使用的是firewalld
,则可以添加以下规则:
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-port=111/tcp
sudo firewall-cmd --permanent --add-port=111/udp
sudo firewall-cmd --permanent --add-port=2049/tcp
sudo firewall-cmd --permanent --add-port=2049/udp
sudo firewall-cmd --permanent --add-port=4049/tcp
sudo firewall-cmd --permanent --add-port=4049/udp
sudo firewall-cmd --reload
现在,您的Linux NFS服务器已设置并准备好共享文件。客户端可以使用mount
命令将共享目录挂载到本地文件系统,然后访问共享文件。