nfs
1.yum install nfs-utils
systemctl enable nfs-server
systemctl start nfs-server
2.systemctl start firewalld
systemctl enable firewalld
firewall-cmd --permanent --add-service=nfs
##可以访问nfs协议,但国在时会出错,无端口
firewall-cmd --permanent --add-service=rpc-bind
##rpc-bind协议可以提供端口分配,但仍不能挂载
firewall-cmd --permanent --add-service=mountd
##mountd可实现挂载
firewall-cmd --reload ##使生效
3.测试--客户端
showmount -e 服务端IP
如:showmount -e 172.25.254.109,如下显示:挂载成功
二、nfs共享目录
1.systemctl start nfs-server
2.vim /etc/exports
编辑格式如下:
共享目录 用户身份(共享方式)
:wq
其中,用户身份表示方式如下:
* ##表示任何用户
指定IP ##表示指定IP所在主机可以访问
IP/子网掩码 ##该网段的IP所在的主机可以访问
指定域名 ##同一域名的主机可以访问
注:可以同时使用多个身份表示方式,以逗号“,”间隔开使用
如:172.25.254.209,172.25.254.90 ##同时允许这两个IP所在主机访问
共享方式表示如下:
(ro) ##以只读方式共享
(rw) ##以读写方式共享
(sync) ##可以实时同步
(no_root_squash) ##普通用户读写共享文件时将不再是nfsnobody身份
(anonuid=ID号,anongid=ID号) ##用户实际以该身份对文件读写
注:共享方式同样可以指定多种,以逗号“,”间隔开使用。此时其他用户可以实现showmount,但是不能使用mount命令
如:(rw,sync,anonuid=1001) ##用户以1001身份可以对文件读写、实现数据实时同步
3.exportfs -rv ##使文件生效,注意一定不能重启服务
4.测试
mount 服务端IP:/共享目录或文件 /mnt ##挂载至/mnt
示例如下:
(1)mkdir /public ##新建共享目录,所属用户为root用户
touch /public/file{1..3}
(2)编辑主配置文件及测试
vim /etc/exports
/public *(ro) ##以只读方式共享文件,任何用户均可访问
/public *(rw) ##以读写方式共享文件,任何用户均可以访问
此时在客户端不能实现写操作,因为共享文的权限,可以给共享文件777权限,如下:
未指定用户身份,所以在客户端建立目录的用户所属者为nfsnobody
/public *(rw,no_root_squash)
##以root用户挂载时,对文件的读写操作时不转换root身份,即不转为nfsnobody