Ubuntu最新版本(Ubuntu22.04LTS)安装nfs服务器及使用教程
ubuntu16.04挂载_如何在Ubuntu 20.04上设置NFS挂载
Ubuntu 20.04 设置时区、配置NTP同步 timesyncd 代替 ntpd
服务器 10.0.2.11
客户端 10.0.2.12
1 NFS简介
(1)什么是NFS
NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。
NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利。
NFS一般用来存储共享视频,图片等静态数据。
(2)NFS挂载原理
当我们在NFS服务器设置好一个共享目录/home/public后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义,如上图客户端A与客户端B挂载的目录就不相同。
并且挂载好后我们在本地能够看到服务端/home/public的所有数据。如果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。
挂载后,NFS客户端查看磁盘信息命令:#df –h。
既然NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有想对应的网络端口,NFS服务器到底使用哪个端口来进行数据传输呢?基本上NFS这个服务器的端口开在2049,但由于文件系统非常复杂。因此NFS还有其他的程序去启动额外的端口,这些额外的用来传输数据的端口是随机选择的,是小于1024的端口;既然是随机的那么客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?这时就需要通过远程过程调用(Remote Procedure Call,RPC)协议来实现了!
2 安装nfs服务
2.1 服务端安装nfs-server
在主机服务器上,安装nfs-kernel-server软件包,这将允许您共享目录。
sudo dpkg -i keyutils_1.6-6ubuntu1_amd64.deb
sudo dpkg -i libtirpc-common_1.2.5-1_all.deb
sudo dpkg -i libtirpc3_1.2.5-1_amd64.deb
sudo dpkg -i libnfsidmap2_0.25-5.1ubuntu1_amd64.deb
sudo dpkg -i rpcbind_1.2.5-8_amd64.deb
sudo dpkg -i nfs-common_1.3.4-2.5ubuntu3_amd64.deb
sudo dpkg -i nfs-kernel-server_1.3.4-2.5ubuntu3_amd64.deb
systemctl status rpcbind
systemctl status nfs-server
systemctl start nfs-server
systemctl start rpcbind
sudo systemctl enable rpcbind
sudo systemctl enable nfs-server
2.2 服务端创建共享目录
首先创建共享目录,然后在/etc/exports配置文件中编辑配置即可。
#sudo mkdir -p /some/path
#sudo vi /etc/exports
/some/path *(no_root_squash,rw,sync,no_subtree_check)
参数说明
其中,rw:读/写权限,只读权限的参数为ro;
其中,sync:数据同步写入内存和硬盘,也可以使用async,
此时数据会先暂存于内存中,而不立即写入硬盘。
其中,no_root_squash:NFS 服务器共享目录用户的属性,
如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。
例如/some/path 10.23.241.0/24(rw)
如上,共享目录为/some/path , 允许访问的客户端为10.23.241.0/24网络用户,权限为读写。
请注意,NFS客户端地址与权限之间没有空格。
#重新加载NFS服务,使配置文件生效
systemctl reload nfs-server
2.3 客户端安装nfs-common
在客户端服务器上,我们需要安装一个名为nfs-common的软件包,该软件包提供NFS功能而不包含任何服务器组件。
sudo dpkg -i keyutils_1.6-6ubuntu1_amd64.deb
sudo dpkg -i libtirpc-common_1.2.5-1_all.deb
sudo dpkg -i libtirpc3_1.2.5-1_amd64.deb
sudo dpkg -i libnfsidmap2_0.25-5.1ubuntu1_amd64.deb
sudo dpkg -i rpcbind_1.2.5-8_amd64.deb
sudo dpkg -i nfs-common_1.3.4-2.5ubuntu3_amd64.deb
mkdir -p /some/pathcopy
sudo mount -t nfs 10.0.2.11:/some/path /some/pathcopy/
3 测试使用
验证测试是否可用
3.1 客户端挂载
**(3-1)客户端挂载**
sudo mount -t nfs 10.0.2.11:/some/path /some/pathcopy/
**(3-2)查看挂载情况**
df -h查看挂载情况
3.2 查看挂载情况
使用showmount命令查看nfs服务器共享信息。
-e或–exports显示NFS服务器的输出清单。
输出格式为“共享的目录名称 允许使用客户端地址”。
3.3 取消客户端挂载
umount /some/pathcopy/或者
umount -l /some/pathcopy/
第二个命令中加了-l ,是强制执行的命令,
对于出现device is busy时才可以使用
df -h查看挂载情况
4 开机自动挂载
sudo vi /etc/fstab
10.0.2.11:/some/path /some/pathcopy nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0