目录
NFS
1. 安装
2. 配置
3. 启动并添加到开机自启
4. NFS 客户端挂载
5 报错与解决办法
6. Win 系统安装 NFS client
NFS
1. 安装
yum install nfs-utils -y
2. 配置
主要配置文件: /etc/exports
示例配置:
/nfsfile 192.168.10.*(rw,sync,root_squash)
/nfsfile 表示 共享的目录, 注意该目录的权限, 如果我们设置好了其他的内容时, 访问还是报错的话, 我们可以试着将该目录的权限设置为 777.
192.168.10.* , 指定 IP 允许访问, 我们可以设置我们需要访问的客户端 IP 或者网段, 不限制的话设置为 *.
(rw,sync,root_squash)
参数 | 作用 |
---|---|
ro | 只读 |
rw | 读写 |
root_squash | 当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的匿名用户 |
no_root_squash | 当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的 root 管理员 |
all_squash | 无论 NFS 客户端使用什么账户访问,均映射为 NFS 服务器的匿名用户 |
sync | 同步,同时将数据写入到内存与硬盘中,保证不丢失数据 |
async | 异步,优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 |
anonuid | 匿名用户 ID |
anongid | 匿名组 ID |
请注意, NFS 客户端地址与权限之间没有空格.
NFS 指定端口
- # 查看基础信息
- [root@djx ~]# rpcinfo -p localhost
- program vers proto port service
- 100000 4 tcp 111 portmapper
- 100000 3 tcp 111 portmapper
- 100000 2 tcp 111 portmapper
- 100000 4 udp 111 portmapper
- 100000 3 udp 111 portmapper
- 100000 2 udp 111 portmapper
- 100005 1 udp 20048 mountd
- 100005 1 tcp 20048 mountd
- 100005 2 udp 20048 mountd
- 100005 2 tcp 20048 mountd
- 100005 3 udp 20048 mountd
- 100005 3 tcp 20048 mountd
- 100003 3 tcp 2049 nfs
- 100003 4 tcp 2049 nfs
- 100227 3 tcp 2049 nfs_acl
- 100003 3 udp 2049 nfs
- 100003 4 udp 2049 nfs
- 100227 3 udp 2049 nfs_acl
- 100021 1 udp 36449 nlockmgr
- 100021 3 udp 36449 nlockmgr
- 100021 4 udp 36449 nlockmgr
- 100021 1 tcp 40638 nlockmgr
- 100021 3 tcp 40638 nlockmgr
- 100021 4 tcp 40638 nlockmgr
- # 指定 mountd 端口
- [root@djx ~]# VIM /etc/sysconfig/nfs
- # 取消注释 MOUNTD_PORT=892
3. 启动并添加到开机自启
由于在使用 NFS 服务进行文件共享之前, 需要使用 RPC(Remote Procedure Call, 远程过程调用)服务将 NFS 服务器的 IP 地址和端口号等信息发送给客户端. 因此, 在启动 NFS 服务之前, 还需要顺带重启并启用 rpcbind 服务程序, 并将这两个服务一并加入开机启动项中.
- [root@djx ~]# systemctl restart rpcbind
- [root@djx ~]# systemctl enable rpcbind
- [root@djx ~]# systemctl restart nfs-server
- [root@djx ~]# systemctl enable nfs-server
nfs 防火墙需要设置的端口 : 见文章 使用 NFS 时在防火墙上要开放的端口
4. NFS 客户端挂载
NFS 客户端的配置步骤也十分简单. 先使用 showmount 命令 (以及必要的参数, 见下表) 查询 NFS 服务器的远程共享信息, 其输出格式为 "共享的目录名称 允许使用客户端地址".
showmount 命令中可用的参数以及作用
参数 | 作用 |
---|---|
-e | 显示 NFS 服务器的共享列表 |
-a | 显示本机挂载的文件资源的情况 NFS 资源的情况 |
-v | 显示版本号 |
- [root@djx ~]# showmount -e 192.168.10.10
- Export list for 192.168.10.10:
- /nfsfile 192.168.10.*
然后在 NFS 客户端创建一个挂载目录. 使用 mount 命令并结合 - t 参数, 指定要挂载的文件系统的类型, 并在命令后面写上服务器的 IP 地址, 服务器上的共享目录以及要挂载到本地系统 (即客户端) 的目录.
- [root@linuxprobe ~]# mkdir /nfsfile
- [root@linuxprobe ~]# mount -t nfs 192.168.10.10:/nfsfile /nfsfile
挂载成功后就应该能够顺利地看到在执行前面的操作时写入的文件内容了. 如果希望 NFS 文件共享服务能一直有效, 则需要将其写入到 fstab 文件中:
- [root@linuxprobe ~]# cat /nfsfile/readme
- welcome to linuxprobe.com
- [root@linuxprobe ~]# VIM /etc/fstab
- #
- # /etc/fstab
- # Created by anaconda on Wed May 4 19:26:23 2017
- #
- # Accessible filesystems, by reference, are maintained under '/dev/disk'
- # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
- #
- /dev/mapper/RHEL-root / xfs defaults 1 1
- UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults 1 2
- /dev/mapper/RHEL-swap swap swap defaults 0 0
- /dev/cdrom /media/cdrom iso9660 defaults 0 0
- 192.168.10.10:/nfsfile /nfsfile nfs defaults 0 0
5 报错与解决办法
5.1 NFS root 用户挂载但普通用户无写入权限.
最近在使用 NFS 的过程中遇到了这样的问题, 就是我们挂载好共享的文件后(挂载只能 root 用户进行挂载), 我们用普通用户来对挂载的目录进行创建文件是发现会报错的, 会提示权限不足.
这个问题的解决办法是 : 通过设置 anonuid=0 和 anongid=0 和 all_squash. 这个设置实现了无论 NFS 客户端使用什么账户访问, 均映射为 NFS 服务器的 id 为 0 的用户, 也就是 root 用户. 这样普通用户也会有权限在该目录下面创建文件的权限, 并且创建的文件的所有者是属于 root 的.
扩展: 当我们在客户端和服务端有相同的用户, 而且 id 一致的时候, 我们可以 设置 anonuid 为一致的 id., 这样我们创建文件的所有者就是 该 id 的所对应的用户了. 注意需要 id 一致哦.
5.2 网络错误 53 内容一
Windows 连接 Linux nfs 服务器 -- 网络错误 53
需要修改配置 , 增加参数: insecure
5.3 网络错误 53 内容二
针对的是 Windows 2008 server 作为客户端 mount 的时候
如果我们设置为上面的内容后, 发现连接的时候还是报 53 的错误. 我们可以进行下面的第二步设置.
在 配置文件 /etc/exports 设置读写权限的时候 设置参数 no_root_squash, 不设置这个不行.
更改配置后需要重启 nfs server .
systemctl start nfs-server
5.4 网络错误 53 内容三
我们映射的目录权限最好为 777 , 否则可能访问不到.
5.5 网络错误 53 内容四
客户端进行 mount 路径有误. 看下面示例:
例如映射的 目录是 /home , 那么 mount 的命令是 :
mount \\192.168.1.23\home X:\
例如映射的 目录是 /home/test , 那么 mount 的命令是 :
mount \\192.168.1.23\home/test X:\
注意多级目录后面就不是使用 \ 而是用 / .
5.6 网络错误 53 内容五
映射为本地的磁盘时, 我们要选择我们没有使用的磁盘符. 选用 X,Y,W 等这些平常一般不使用的盘符号.
6. Win 系统安装 NFS client
Windows 2008 server 安装 NFS Client 所需软件
通过 Server Manager,
1. 添加角色, 选中 File Services, 然后按照向导提示安装.
2. 添加 Features, 安装 Remote Server Administration Tools/Role Administration Tools/File Services Tool/Services for Network File System Tools
需要安装 Services For Network File System
然后运行 Services For Network File system, 启动 client for NFS
Win10 安装 NFS client
来源: https://www.cnblogs.com/operationhome/p/11700700.html