设置服务器
安装软件包
Linux NFS使用Client-Server模型,因此设置NFS的第一步是设置服务器。由于核心NFS功能植根于内核,因此软件包的方式并不需要太多,但无论分布和配置如何,仍然有一些需求。几乎所有主要发行版都启用了NFS,因此,除非您运行的是自定义版本,否则应该已经进行了设置。设置服务器的下一步是安装软件包。
在Ubuntu /Debian上:
$ sudo apt-get install nfs-kernel-headers
在Fedora上
$ sudo yum install nfs-utils system-config-nfs
配置导出
软件包安装完成后,就可以配置导出文件了。导出文件指定服务器将…导出到网络的目录。该文件的结构非常简单。左侧是应共享的目录,右侧是应与任何特定选项共享的计算机的IP地址和子网。看起来像这样:
/export 192.168.1.0/255.255.255.0(rw,sync,no_subtree_check)
/home/user/shared 192.168.1.122/255.255.255.0(rw,sync,no_subtree_check)
在第一个示例中,目录/export
与该特定子网上的所有计算机共享。通过指定一个地址192.168.1.0
“0”充当子网中任何IP的通配符。第二个示例类似,但是它指定只有该地址才能访问共享目录。 NFS共享只有少数选项。
- RO:指定目录只能以只读方式挂载
- w:授予目录的读写权限
- no_root_squash:是一个非常危险的选项,它允许远程“root”用户与主机的“root”用户具有相同的特权
- subtree_check:指定在导出目录而不是整个文件系统的情况下,主机应验证主机文件系统上文件和目录的位置
- no_subtree_check:指定主机不应检查通过主机文件系统访问的文件的位置
- 同步:这只是确保主机保持上传到共享目录的所有更改同步
- 异步的:忽略同步检查以提高速度
与Systemd一起运行
一旦导出文件准备就绪,就可以启动服务器,并使其在Systemd引导下启动。当然,如果您碰巧正在运行非Systemd发行版,那么它也可以与其他init系统一起使用。启动NFS服务器有两个部分,即rpcbind和nfs-server。通过以下两种方式启动它们:
$ sudo systemctl start rpcbind
$ sudo systemctl start nfs-server
在Debian和Ubuntu上,服务器将自动启动,因此您可能需要运行:
$ sudo systemctl restart rpcbind
$ sudo systemctl restart nfs-server
之后,服务器将启动并运行。再一次,由于Debian和Ubuntu在默认情况下在引导时运行服务,因此不需要任何使NFS在引导时自动运行的功能。要使NFS在Fedora引导下启动,请运行:
$ sudo systemctl enable rpcbind
$ sudo systemctl enable nfs-server
可以使用主机文件Portmap来实现附加的安全性,但这超出了本基础文章的范围。上面的设置提供了一个很好的起点,并且将适用于家庭网络。
连接客户端
设置客户端以连接到NFS共享所需的工作量要少得多。同样,对于Debian发行版和
Debian /Ubuntu:
$ sudo apt-get install nfs-common rpcbind
软呢帽:
$ sudo yum install nfs-utils
一旦完成,或者重新启动Debian /Ubuntu,请rpcbind。
$ sudo systemctl (re)start rpcbind
当然,与服务器一样,使rpcbind在启动时运行可能是一个好主意。对于客户端来说,这甚至是一个更大的问题,它必须能够在引导时挂载删除卷。实际上,安装NFS卷与安装本地卷几乎相同。对于一次安装,语法是相同的。挂载NFS目录/export
在服务器上找到192.158.1.15
到本地目录/media/nfs-volume
类型:
# mount 192.168.1.15:/export /media/nfs-volume
NFS卷可以在引导时挂载,或使用以下方式指定挂载点:/etc/fstab
。要在启动时自动挂载与上述相同的卷,请将以下行添加到/etc/fstab
。
192.168.1.15:/export /media/nfs-volume nfs defaults,user,exec 0 0
指定的选项将允许用户访问目录并允许在目录上执行。如果您不想在启动时挂载驱动器,但仍可以在/etc/fstab
添加noauto
选项。对于建立基本NFS配置所花费的时间来说,它可以是在网络上的Linux计算机之间共享数据的非常有用的工具。