简要描述

比如现在有两台服务器A与B。
A服务器IP:127.0.0.1
B服务器IP:127.0.0.2
将A作为服务器端,将B作为客户端。

服务端

1、首先检查服务器是否安装了NFS服务

service nfs status

如果没有显示unrecognized service则说明未安装

# 通过如下代码安装服务
yum install nfs-utils

2、编辑配置文件

# 编辑文件
vim /etc/exports

格式:共享文件夹 客户端IP(访问权限,用户映射,其他)

# 输入
/data 127.0.0.2(rw,sync,no_root_squash)

NFS参数

参数名

解释说明

ro

共享目录只读

rw

共享目录可读可写

all_squash

所有访问用户都映射为匿名用户或用户组(可选)

no_all_squash(默认)

访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组

root_squash(默认)

将来访的root用户映射为匿名用户或用户组(可选)

no_root_squash

来访的root用户保持root帐号权限(安全隐患)

anonuid=

指定匿名访问用户的本地用户UID,默认为nfsnobody(65534)

anongid=

指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534)

secure

限制客户端只能从小于1024的tcp/ip端口连接服务器

insecure

允许客户端从大于1024的tcp/ip端口连接服务器

sync

将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性

async

将数据先保存在内存缓冲区中,必要时才写入磁盘

备注:mount_nfs: can’t mount /xxx/xxx from XXX.XXX.XXX.XXX onto /xxx/xxx: Permission denied
出现此问题是因为配置中对应挂载目录没有设置insecure选项,默认为secure,限制客户端只能从小于1024的tcp/ip端口连接服务器。

启动NFS服务

service nfs-server start

service rpcbind start

3、查询RPC信息

rpcinfo -p

linux看nfs挂载路径 linux挂载nfs问题_网络


获取到上图相关信息,然后在防火墙与安全组把这几个端口号放行给要共享的服务器127.0.0.2

4、查看共享目录和参数设置

cat /var/lib/nfs/etab

5、使用showmount命令查看共享目录发布及使用情况

showmount -e localhost

客户端

1、挂载目录

mount -t nfs 服务端IP:服务端共享目录 客户端挂载目录(目录一定要存在)

mount -t nfs 127.0.0.1:/data /data

服务端目录名称与客户端目录名称可以不相同。

2、取消挂载
umount 服务端目录 客户端目录

umount /data /data

备注:当服务器重启时,需要重新执行挂载命令,也可以设置成自动挂载,挂载方式如下。

# 编辑文件
vim /etc/rc.local

#输入
mount -t nfs 127.0.0.1:/data /data

因为rc.local是Linux启动程序在login程序前执行的最后一个脚本