详解NFS文件传输服务

简介

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

[[email protected] ~]# vim /etc/sysconfig/selinux

[[email protected] ~]# chkconfig iptables off #开机启动关闭防火墙

2、安装并启动服务

[[email protected] ~]# rpm -qa | grep nfs
[[email protected] ~]# rpm -qa | grep rpc

[[email protected] ~]# service rpcbind start #先启动rpc,nfs需要rpc的存在
[[email protected] ~]# service nfs start

二、搭建NFS服务

1、编辑配置文件并详解

[[email protected] ~]# vim /etc/exports

/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、创建共享目录

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

3、挂载共享目录

[[email protected] ~]# exportfs -arv

挂载目录(修改了配置文件不需要重启服务,通过以下命令,挂载、卸载即可)
选项:
-a: 按照配置文件挂载/卸载所有目录
-r: 重新挂载
-u: 卸载
-v: 显示详细信息

三、NFS客户端使用

1、启动服务

[[email protected] ~]# service rpcbind start

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

[[email protected] ~]# showmount -e 192.168.1.77 #查看服务器端共享目录

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

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

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

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

[[email protected] ~]# useradd -u 500 zhangsan
[[email protected] ~]# passwd zhangsan

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

[[email protected] ~]# useradd -u 500 zhangsan
[[email protected] ~]# passwd zhangsan

[[email protected] ~]# su - zhangsan
[[email protected] ~]$ cd /opt/client/
[[email protected] client]$ touch abc.txt
[[email protected] client]$ ll

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

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

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

[[email protected] ~]# useradd -u 501 jack
[[email protected] ~]# passwd jack

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

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

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

[[email protected] ~]# cd /opt/test/
[[email protected] test]# ll

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

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

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

[[email protected] ~]# cat /etc/passwd | grep ‘503‘ #客户端没有UID为503的用户

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

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

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

[[email protected] ~]# cd /opt/test/
[[email protected] test]# ll aaa.txt

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

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

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

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

[[email protected] ~]# cd /opt/client/
[[email protected] client]# touch hello.txt
[[email protected] client]# ll

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

[[email protected] ~]# vim /etc/exports

[[email protected] ~]# exportfs -auv
[[email protected] ~]# exportfs -arv

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

[[email protected] ~]# cd /opt/client/
[[email protected] client]# touch love.txt

原文地址:http://blog.51cto.com/11905606/2147846

时间: 2024-10-28 23:01:45

详解NFS文件传输服务的相关文章

详解“FTP文件传输服务”安装配置实例

"FTP文件传输服务"安装配置实例 家住海边喜欢浪:zhang789.blog.51cto.com 目录 简介 ftp工作原理 常见的FTP服务 Vsftpd服务器的安装 Vsftpd.conf配置文件详解 配置FTP服务器实例 实例:配置匿名用户 实例:配置本地用户登录 实例:配置虚拟用户登录(MySQL认证) 实例:控制用户登录 实例:设置欢迎信息 分析vsftpd日志管理 FTP服务器配置与管理 简介 FTP 是File Transfer Protocol(文件传输协议)的英文简

详解dataguard 日志传输服务(参数解析)

dataguard 日志传输服务(参数解析) 1> dg的三种模式1. 最大保护模式1)这种模式提供了最高级别的数据保护能力:2)要求至少一个物理备库收到重做日志后,主库的事务才能够提交:3)主库找不到合适的备库写入时,主库会自动关闭,防止未受保护的数据出现:4)优点:该模式可以保证备库没有数据丢失:5)缺点:主库的自动关闭会影响到主库的可用性,同时需要备库恢复后才能提交,对网络等客观条件要求非常的高,主库的性能会因此受到非常大的冲击. 2. 最大可用性模式1)该模式提供了仅次于“最大保护模式”

Linux 指令详解 curl 文件传输

指令:curl 在linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具. 工作原理:curl命令使用了libcurl库来实现,libcurl库常用在C程序中用来处理HTTP请求,curlpp是libcurl的一个C++封装,这几个东西可以用在抓取网页.网络监控等方面的开发,而curl命令可以帮助来解决开发过程中遇到的问题. 语法:# curl [option] [ur

Linux网络服务04——FTP文件传输服务

Linux网络服务04--FTP文件传输服务 一.FTP连接及传输模式 1.控制连接:TCP 21,用于发送FTP命令信息 2.数据连接:TCP 20,用于上传.下载数据 3.数据连接的建立类型: (1)主动模式:服务器主动发起数据连接 首先由客户端向服务端的21端口建立FTP控制连接.当需要传输数据时,客户端以PORT命令告知服务器"我打开了某端口,你过来连接我",预算服务器从20端口向客户端的该端口发送请求并建立数据连接. (2)被动模式:服务器被动等待数据连接 如果客户端所在网络

FTP文件传输服务

FTP文件传输服务 需求描述: ? 采用FTP虚拟用户的方式,添加三个用户:zhangsan.lisi.wangwu. ? 用户访问及文件权限控制 u 开放匿名访问,任何用户均可下载服务器/var/ftp/soft/目录中的软件资料. u 用户zhangsan可以对服务器的/var/ftp/soft/目录进行上传.删除等操作. u 用户lisi可以下载服务器/var/market/目录中的市场活动.销售方案的资料. u 用户wangwu可以对服务器/var/market/目录进行上传.删除等操作

事故·由于经验不足冒失关闭NFS文件同步服务

····按照整改文件,冒失的把NFS文件同步服务给删了,造成服务器间文件同步不了的问题.虽然没造成什么严重后果,但是影响不好. ····以后万万不可冒失了,RM一定要慎重,一定要做备份,做整改前一定要和接口人.业务负责人充分协商好.

搭建FTP文件传输服务

实验要求:搭建FTP文件传输服务 实验步骤: 1.匿名访问 首先挂载并安装软件包,顺便再查看下,在启动 防火墙要关掉   然后在WIN7上远程登陆FTP 然后我在/vra/ftp/下面创建hu.txt文件, 在win7系统上连接ftp,可以下载文件(为了方便查看,将目录切换到E盘) 我在看下能不能上传,这边显示不能 在这边如果想要他能上传必须开启一些服务,进入linux系统VI编辑器配置文件 将允许匿名上传的配置选项前面的#去掉,使这条命令生效-(允许创建目录和允许上传文件)   这条是没有的,

WCF大文件传输服务

由于项目需要,自己写一个基于WCF的大文件传输服务雏形.觉得有一定的参考价值,因此放在网上分享. 目前版本为v1.1特点如下: 1.文件传输端口为18650 2.上传和下载文件 3.支持获取文件传输状态(未开始.传输中.传输完成.出现错误) 4.支持获取文件传输进度(范围0~1) 5.支持获取文件传输速度速度(按文件传输速度大小 自动切换 KB/s 和 MB/s显示) 项目解决方案如下: 服务断包括WCF寄宿的控制台服务和Windows 服务以及文件传输服务核心 公共包括一些帮助类(文件HASH

转发:ZIP文件格式详解(一)——文件数据格式

ZIP文件格式详解(一)——文件数据格式 ---------------------------------------------------------------------------------- 文档说明 ZIP 格式的压缩文件是我们常用的压缩格式之一,他以其通用性.压缩比高而在全球范围内有很多的用户,本文简单介绍 ZIP 文件格式和算法.本文主要参照 http://www.pkware.com 提供的 appnote.txt 文件,你可以从http://www.pkware.com