网络共享服务(二)之NFS

NFS: Network File System,是一种基于TCP/IP传输的网络文件系统协议,最初由SUN公司开发。通过使用NFS协议,客户机可以像访问本地目录一样访问服务器中的共享资源。但是,NFS没有用户验证机制,而且数据在网络上传输是明文传输的,所以安全性较差,一般只能在局域网中使用。

Note: RPC: Remote Procedure Call protocol, 远程过程调用,函数调用(远程主机上的函数), 一部分功能由本地程序完成,另一部分由远程主机上的函数完成  

NFS的工作流程如下图所示:

用户请求访问的文件系统在另一台主机上,那么客户端(内核发起)第一次请求的是portmapper(提供RPC服务,mountd服务进程启动时会向portmapper注册端口号),然后portmapper将mountd的端口号告知客户端,
接着客户端第二次请求mountd,mountd根据IP进行认证,如果认证通过,将给客户端一个令牌;
然后客户端拿着令牌第三次去访问nfsd服务进程,nfsd访问资源后通过idmapd(属主属组映射)再返回给客户端。

 

NFS启动后端口监听情况:

nfs服务进程监听端口: 2049/tcp,2049/udp
mound监听的是半随机端口
idmapd不需要监听端口

RPC服务:portmapper

portmapper默认监听端口是111

查看portmapper监听的端口: 

rpcinfo: report RPC information
# rpcinfo -p [IPADDR] //默认查看的是本地主机,也可以查看其他主机:比如: # rpcinfo -p 192.168.1.102

配置NFS服务:

NFS服务的配置文件:/etc/exports
定义的内容格式为:
文件系统    客户端(选项)    客户端(选项) 
Note:   
   客户端:IP、FQDN或DOMAIN、NETWORK 选项:secure(默认,使用1024以下的端口实现NFS的连接,指定insecure可以禁用这个选项),
       rw(默认是ro只读的),
       async(默认是该选项异步的),sync,
       root_squash(默认是该选项挤压管理员,使用该选项即使客户端可以写但是以root身份也不能修改,root会被挤压为nobody),no_roots_quash,
       all_squash(限制所有的UID和GID,只使用匿名用户,缺省设置为no_all_squash),
       anonuid,anongin(这两个选项将匿名UID和GID修改成特定用户和组账号)

实现NFS共享服务:这里以103作为nfs服务器,102和104作为客户端

1.确保rpc服务portmapper处于工作状态

查看rpc相关信息
  # rpcinfo -p [IPADDR]

2.服务器端安装NFS服务:nfsd, mountd, idmapd

  # rpm -q nfs-utils
  # lsmod | grep nfs
  # rpm -ql nfs-utils  //系统默认是安装的  

3. 服务器端创建共享文件目录 

# mkdir /shared/nfs

4.服务器端配置共享客户端

# vim /etc/exports
/shared/nfs 192.168.1.104(rw) 192.168.1.102(ro)  //指定104对共享文件系统有读写权限,102度共享文件系统有只读权限  

重启NFS服务

# service nfs restart
# ss -tunlp | grep :2049  //nfs服务监听在tcp的2049端口和udp的2049端口。

不重启NFS服务重新导出文件系统

  exportfs -ar: 重新导出所有的文件系统
  exportfs -au: 关闭导出的所有文件系统
  exportfs -u FS: 关闭指定的导出的文件系统

5.客户端挂载NFS文件系统

mount -t nfs SERVER:/path/to/sharedfs  /path/to/mount_point
   比如: # mount -t nfs 192.168.1.103:/shared/nfs /mnt

开机自动挂载NFS文件系统

 # vim  /etc/fstab
    SERVER:/PATH/TO/EXPORTED_FS    /mount_point    nfs    defaults,_netdev    0  0
挂载选项示例:rw,relatime,vers=4.0,rsize=8192,wsize=8192,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.102,local_lock=none,addr=192.168.1.101
Note: rsize的值是从服务器读取的字节数,wsize是写入到服务器的字节数,默认都是1024,如果使用比较高的值,如8192,可以提高传输速率

6. 查看NSF服务器共享的文件系统

showmount -e NFSSERVER_IP    //服务器端可使用localhost,客户端查看需要指定服务器IP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/ckh2014/p/10803766.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值