详解NFS文件传输服务

栏目: 服务器 · 发布时间: 5年前

内容简介:NFS(Network File System),NFS可以让客户端把服务器的共享目录,挂载到本机使用,就像使用本机分区一样,使用非常方便。RPC(远程调用)服务,NFS是被RPC服务管理的,所以必须安装RPC的主程序rpcbind。NFS端口:2049

简介

NFS(Network File System),NFS可以让客户端把服务器的共享目录,挂载到本机使用,就像使用本机分区一样,使用非常方便。

RPC服务

RPC(远程调用)服务,NFS是被RPC服务管理的,所以必须安装RPC的主程序rpcbind。

关于端口

NFS端口:2049

RPC端口:111

NFS守护进程端口:为随机端口,但是能够实现访问,访问不好解决。而RPC端口是111(固定的),当客户端访问的时候,找的不是NFS,也不是NFS的守护进程,而是RPC,告知服务器端连接本机的NFS服务,此时RPC可以帮忙确认NFS端口是哪一个,只要启动NFS,NFS端口以及守护进程都会去先到RPC注册,告知RPC主、守护进程端口号。此时,当有用户访问NFS服务器,RPC会返回给客户端NFS主、守护进程的端口号。

文件服务器比较

服务器名称 使用范围 服务器端 客户端 局限性
FTP 局域网、广域网 Windws、Linux Windws、Linux 无法直接在服务器端修改数据
Samba 局域网 Windws、Linux Windws、Linux 只能在内网使用
NFS 局域网、广域网 Linux Linux(Windows) 客户端需要挂载使用,对普通用户有一定技术要求

用户身份映射(系统权限)

NFS没有用户登陆认证机制,所以客户端登陆到服务器之后,会把客户端的身份映射到服务器端。就会出现以下四种可能:

1、客户端和服务器端上刚好有相同的帐号和用户组(用户名和UID都要相同)。

2、当客户端和服务器端上拥有相同的UID,但是用户名不同。

3、服务器端上没有客户端的UID。

4、客户端上是root使用共享。

实验环境

  • 系统环境:centos6.5
  • NFS服务器端IP:192.168.1.77
  • NFS客户端IP :192.168.1.20
  • 光盘挂载目录:/mnt/sr0
  • 相关软件包:NFS主程序:nfs-utils
  • RPC主程序:rpcbind

搭建步骤:

一、准备工作

1、关闭服务器端、客户端防火墙、Selinux

[root@client ~]# vim /etc/sysconfig/selinux
详解NFS文件传输服务

[root@client ~]# chkconfig iptables off #开机启动关闭防火墙
详解NFS文件传输服务

2、安装并启动服务

[root@redhat6 ~]# rpm -qa | grep nfs
[root@redhat6 ~]# rpm -qa | grep rpc

详解NFS文件传输服务

[root@redhat6 ~]# service rpcbind start #先启动rpc,nfs需要rpc的存在
[root@redhat6 ~]# service nfs start

二、搭建NFS服务

1、编辑配置文件并详解

[root@redhat6 ~]# vim /etc/exports
详解NFS文件传输服务

/etc/exports:

  1. 格式:共享目录 客户端[可以写IP、域名](权限) 空格隔开可以写多个客户端……

2.可以识别的客户端:

指定IP:192.168.1.20

指定网段: 192.168.1.0/24或192.168.1.0/255.255.255.0

指定主机名:www.test.com

所有主机:*

3.常用权限(NFS服务权限)

rw: 读写(read&&write)

ro: 只读(readonly)

all_squash:不论登陆是谁(UID),都压缩为匿名用户nfsnobody

root_squash:如果登陆的是root,压缩为nfsnobody,默认root不能登陆

no_root_squash:允许root身份登陆,不推荐

anonuid:把所有的登陆用户,不再压缩为nfsnobody用户,而是压缩为指定uid用户

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

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

2、创建共享目录

[root@redhat6 ~]# mkdir /opt/test #创建共享目录
[root@redhat6 ~]# chmod 777 /opt/test/ #修改共享目录权限

3、挂载共享目录

[root@redhat6 ~]# exportfs -arv

挂载目录(修改了配置文件不需要重启服务,通过以下命令,挂载、卸载即可)

选项:

-a: 按照配置文件挂载/卸载所有目录

-r: 重新挂载

-u: 卸载

-v: 显示详细信息

三、NFS客户端使用

1、启动服务

[root@raid ~]# service rpcbind start

2、将服务器的共享目录挂载到本地

[root@raid ~]# showmount -e 192.168.1.77 #查看服务器端共享目录
详解NFS文件传输服务

[root@raid ~]# mkdir /opt/client#建立挂载点
[root@raid ~]# mount -t nfs 192.168.1.77:/opt/test /opt/client ##将服务器端共享目录挂载至本地
[root@raid ~]# df -h

详解NFS文件传输服务

四、用户身份映射第一种可能

客户端和服务器端上有相同的帐号和用户组(UID也要相同),客户端上用户可以在服务器端上按照用户权限使用文件

1、服务器端添加测试用户

[root@redhat6 ~]# useradd -u 500 zhangsan
[root@redhat6 ~]# passwd zhangsan

2、客户端添加测试用户、并写入文件测试

[root@raid ~]# useradd -u 500 zhangsan
[root@raid ~]# passwd zhangsan

[root@raid ~]# su - zhangsan
[zhangsan@raid ~]$ cd /opt/client/
[zhangsan@raid client]$ touch abc.txt
[zhangsan@raid client]$ ll

详解NFS文件传输服务

五、用户身份映射第二种可能

当客户端和服务器端上拥有相同的UID,但是用户名不同,假设clinet上有用户aa(UID500),服务器端上有用户bb(UID:500)。在客户端在使用服务器共享目录时,身份识别为bb(因为 Linux 权限绑定在UID上)此种情况尽量避免出现,容易逻辑混乱

1、服务器端添加测试用户

[root@redhat6 ~]# useradd -u 501 jack
[root@redhat6 ~]# passwd jack

2、客户端添加测试用户、并写入文件测试

[root@raid ~]# useradd -u 501 tom
[root@raid ~]# passwd tom
[root@raid ~]# su - tom
[tom@raid ~]$ cd /opt/client/
[tom@raid client]$ touch 123.txt
[tom@raid client]$ ll 123.txt

详解NFS文件传输服务

3、服务器端查看写入的文件属性

[root@redhat6 ~]# cd /opt/test/
[root@redhat6 test]# ll

详解NFS文件传输服务

六、用户身份映射第三种可能

服务器端上没有客户端的UID(客户端上有此uid,服务器上没有此uid)。客户端用户访问服务器端时,服务器端上没有此UID,则把此用户自动转变为nfsnobody伪用户(UID:65534)

1、服务器端查看对应用户

[root@redhat6 ~]# cat /etc/passwd | grep '503' #客户端没有UID为503的用户

2、客户端添加测试用户、并写入文件测试

[root@raid ~]# useradd -u 503 zhaoliu
[root@raid ~]# passwd zhaoliu
[root@raid ~]# su - zhaoliu
[zhaoliu@raid ~]$ cd /opt/client/
[zhaoliu@raid ~]$ ll aaa.txt

详解NFS文件传输服务

3、服务器端查看写入的文件属性

[root@redhat6 ~]# cd /opt/test/
[root@redhat6 test]# ll aaa.txt

详解NFS文件传输服务

七、用户身份映射第四种可能

clinet上是root使用共享默认把root也转变为nfsnobody。服务器端可以修改配置文件,允许root访问nfs服务器

1、服务器端不允许root访问,将配置文件中no_root_squash删除

2、客户端使用root写入文件测试

[root@raid ~]# cd /opt/client/
[root@raid client]# touch hello.txt
[root@raid client]# ll

详解NFS文件传输服务

3、服务器端修改配置允许以root身份登录

[root@redhat6 ~]# vim /etc/exports 详解NFS文件传输服务

[root@redhat6 ~]# exportfs -auv 
[root@redhat6 ~]# exportfs -arv

4、服务器端查看写入的文件属性

[root@raid ~]# cd /opt/client/
[root@raid client]# touch love.txt

详解NFS文件传输服务


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

网页艺术设计

网页艺术设计

彭钢 / 高等教育出版社 / 2006-9 / 39.00元

《网页艺术设计》将软件技术与艺术理论进行整合,注重知识性与研究性、实践性与理论性、系统性与逻辑性,全面介绍网页艺术设计的基础知识与基本实践技能,既培养学习者的网页技术应用能力,又培养学习者的艺术审美、艺术创新和研究性学习能力,使学习者在有效的课时内学习和掌握网页艺术设计的理论与实践。 《网页艺术设计》的特点是具有完整的知识结构、合理的教学设计以及立体化的教学资源。教材共分为8章,包括网页艺术......一起来看看 《网页艺术设计》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具