Linux_Service—NFS
来源:互联网 发布:tensorflow finetune 编辑:程序博客网 时间:2024/05/24 05:02
NFS服务
NFS简介
什么是NFS:
NFS(Network File System,网络文件系统),它允许网络中的计算机之间通过TCP/IP网络共享资源。NFS可以让客户端把服务器的共享目录挂载到本机使用,就像使用本地计算机的分区一样。
RPC服务:
RPC(远程调用)服务:NFS是被RPC服务管理的,所以必须按照RPC的主程序rpcbind
NFS端口:
NFS端口:2049
RPC端口:111
NFS daemon端口:随机
NFS与其他文件共享服务(FTP/Samba/NFS)对比:
NFS权限说明
权限说明
Linux系统目录权限会生效
NFS服务共享权限也会生效
用户身份映射(系统权限)
NFS没有用户登陆认证机制,所以客户端登陆到服务器之后,会把客户端的身份映射到服务器端。可能会出现一下四种可能:
1.Client和Server上刚好有相同的账号和用户组(用户名和UID都要相同);
Client上用户可以做Server上按照用户权限使用文件
2.当Client和Server上拥有相同的UID,但是用户名不同;
假设Client上有用户a(UID:500),Server上有用户b(UID:500)。在Client使用Server共享目录时,身份识别为b(因为Linux权限绑定在UID上)
(此种情况尽量避免出现,容易逻辑混乱)
3.Server上没有Client的UID;
Client用户访问Server时,Server上没有此UID,则把此用户自动转变为nfsnobody(UID:65534)用户(NFS的匿名用户)
4.Client上是root使用共享
默认把root也转变呢为nfsnobody。服务器端可以修改配置文件,允许root访问nfs服务器
NFS服务器端设置
服务端安装
默认已经安装,如果需要,手工安装
NFS主程序:nfs-utils
RPC主程序:rpcbind(旧版本portmap)
配置文件
/etc/exports(此文件为空)
启动NFS服务
启动NFS服务
[root@TestServer ~]# /etc/init.d/rpcbind restart停止 rpcbind: [确定]正在启动 rpcbind: [确定][root@TestServer ~]# /etc/init.d/nfs restart关闭 NFS 守护进程: [失败]关闭 NFS mountd: [失败]关闭 NFS quotas: [失败]启动 NFS 服务: [确定]关掉 NFS 配额: [确定]启动 NFS mountd: [确定]启动 NFS 守护进程: [确定]正在启动 RPC idmapd: [确定]
设置NFS为自启动服务
[root@TestServer ~]# chkconfig --list | grep nfsnfs 0:关闭1:关闭2:关闭3:关闭4:关闭5:关闭6:关闭nfslock 0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭[root@TestServer ~]# chkconfig nfs on[root@TestServer ~]# chkconfig --list | grep nfsnfs 0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭nfslock 0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭
NFS|RPC的守护进程[root@TestServer ~]# ps aux | grep -E 'nfs|rpc'rpcuser 38139 0.0 0.1 23352 1380 ? Ss 04:54 0:00 rpc.statdroot 38597 0.0 0.0 0 0 ? S 05:11 0:00 [rpciod/0]rpc 38887 0.0 0.0 18980 948 ? Ss 05:15 0:00 rpcbindroot 38967 0.0 0.0 107304 280 ? Ss 05:15 0:00 rpc.rquotadroot 38971 0.0 0.1 21672 1032 ? Ss 05:15 0:00 rpc.mountdroot 38977 0.0 0.0 0 0 ? S 05:15 0:00 [nfsd4]root 38978 0.0 0.0 0 0 ? S 05:15 0:00 [nfsd4_callbacks]root 38979 0.0 0.0 0 0 ? S 05:15 0:00 [nfsd]root 38980 0.0 0.0 0 0 ? S 05:15 0:00 [nfsd]root 38981 0.0 0.0 0 0 ? S 05:15 0:00 [nfsd]root 38982 0.0 0.0 0 0 ? S 05:15 0:00 [nfsd]root 38983 0.0 0.0 0 0 ? S 05:15 0:00 [nfsd]root 38984 0.0 0.0 0 0 ? S 05:15 0:00 [nfsd]root 38985 0.0 0.0 0 0 ? S 05:15 0:00 [nfsd]root 38986 0.0 0.0 0 0 ? S 05:15 0:00 [nfsd]root 39009 0.0 0.0 25164 576 ? Ss 05:15 0:00 rpc.idmapdroot 39037 0.0 0.0 103256 844 pts/1 S+ 05:21 0:00 grep -E nfs|rpc
rpc.rquotad /*NFS配额*/
rpc.mountd /*处理客户端挂载*/
nfsd /*NFS守护进程*/
RPC服务注册情况rpcbind /*RPC守护进程*/
[root@TestServer ~]# rpcinfo -p 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 100011 1 udp 875 rquotad 100011 2 udp 875 rquotad 100011 1 tcp 875 rquotad 100011 2 tcp 875 rquotad 100005 1 udp 39825 mountd 100005 1 tcp 60867 mountd 100005 2 udp 57691 mountd 100005 2 tcp 60811 mountd 100005 3 udp 54603 mountd 100005 3 tcp 33591 mountd 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 2 tcp 2049 nfs_acl 100227 3 tcp 2049 nfs_acl 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 2 udp 2049 nfs_acl 100227 3 udp 2049 nfs_acl 100021 1 udp 35105 nlockmgr 100021 3 udp 35105 nlockmgr 100021 4 udp 35105 nlockmgr 100021 1 tcp 50624 nlockmgr 100021 3 tcp 50624 nlockmgr 100021 4 tcp 50624 nlockmgr
NFS服务端配置文件
配置文件:
/etc/exports
可识别的客户端格式:格式:共享目录 客户端(权限)
指定IP:192.168.1.10
指定网段:192.168.1.0/24 或 192.168.1.0/255.255.255.0
指定主机名:www.itxdl.cn所有主机:*
常用权限:
rw /*读写*/
ro /*只读*/
all_squash /*不论登陆是谁,都压缩为匿名用户nfsnobody*/
root_squash /*如果登陆的是root,压缩为nfsnobody*/
no_root_squash /*允许root身份登陆,不推荐*/
anonuid /*把所有的登陆用户,不再压缩为nfsnobody用户,而是压缩为指定uid用户*/
sync /*将数据同步写入内存缓冲区与磁盘中,效率低,但可保证数据的一致性*/
async /*将数据先保存在内存缓冲区中,必要时才写入磁盘*/
例:
[root@TestServer /]# vi /etc/exports
/nfsshare 192.168.1.104(rw,no_root_requash)/*允许192.168.1.104可以访问,允许root访问*/
同时共享多个目录
匿名用户访问/nfsshare 192.168.1.105(rw,no_root_squash) *(ro)/*除192.168.1.105为读写权限,允许root访问;其他人为只读*/
/NFSshare 192.168.1.0/24(rw) /*192.168.1网络中的所有主机为读写权限*//nfsshare 192.168.1.0/24(rw,all_squash,anonuid=600)/*192.168.1网络的中的主机无论谁登陆,都使用UID为600的用户*/
exportfs [选项]
选项:
-a /*按照配置文件挂载/卸载所有目录*/
-r /*重新挂载*/
-u /*卸载*/
-v /*显示详细信息*/
例:exportfs -arv /*重新挂载所有目录,不用重启NFS服务*/
exportfs -auv /*全部卸载所有目录*/
showmount查看共享目录
showmount -e [IP或主机名]
选项:
-e/*查看某个主机的共享目录*/
[root@TestServer /]# showmount -e 127.0.0.1Export list for 127.0.0.1:/nfsshare 192.168.1.0/24(127.0.0.1是本地回环地址,一般用于网络测试)
NFS客户端使用
客户端需要启动的服务
需要启动rpcbind,默认已经启动
手工启动命令
service rpcbind start 或/etc/init.d/rpcbind start
查看服务端共享的目录
[root@JinDaoer ~]# showmount -e 192.168.1.103Export list for 192.168.1.103:/nfsshare 192.168.1.0/24
把服务器共享目录挂载到本地
建立共享目录挂载点
[root@JinDaoer ~]# mkdir /mnt/remoteshare挂载到本地使用[root@JinDaoer ~]# mount -t nfs 192.168.1.103:/nfsshare /mnt/remoteshare/查看挂载信息[root@JinDaoer ~]# mount/dev/sda2 on / type ext4 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=620)tmpfs on /dev/shm type tmpfs (rw)/dev/sda1 on /boot type ext4 (rw)none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)192.168.1.103:/nfsshare on /mnt/remoteshare type nfs (rw,vers=4,addr=192.168.1.103,clientaddr=192.168.1.105)开机自动挂载[root@JinDaoer remoteshare]# vi /etc/fstab ## /etc/fstab# Created by anaconda on Mon Feb 13 21:14:45 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#UUID=b6ea8758-dff3-41fb-bf05-050e3e2f930a / ext4 defaults 1 1UUID=06877cfa-8fb6-40ca-a9f9-94e160f57995 /boot ext4 defaults 1 2tmpfs /dev/shm tmpfs defaults 0 0devpts /dev/pts devpts gid=5,mode=620 0 0sysfs /sys sysfs defaults 0 0proc /proc proc defaults 0 0192.168.1.103:/nfsshare /mnt/remoteshare nfs defaults 0 0测试自动挂载是否成功
卸载NFS共享目录
[root@JinDaoer mnt]# umount /mnt/remoteshare/[root@JinDaoer mnt]# mount/dev/sda2 on / type ext4 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=620)tmpfs on /dev/shm type tmpfs (rw)/dev/sda1 on /boot type ext4 (rw)none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)使用mount -a重新读取/etc/fstab文件,自动挂载[root@JinDaoer mnt]# mount -a[root@JinDaoer mnt]# mount/dev/sda2 on / type ext4 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=620)tmpfs on /dev/shm type tmpfs (rw)/dev/sda1 on /boot type ext4 (rw)none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)192.168.1.103:/nfsshare on /mnt/remoteshare type nfs (rw,vers=4,addr=192.168.1.103,clientaddr=192.168.1.105(说明/etc/fstab文件配置正确,自动挂载成功)
- Linux_Service—NFS
- Linux_Service——Samba
- Linux_Service—DHCP-Service
- Linux_Service—vsftp_Service
- Linux_Service-SSH_Servcie
- Day002——NFS
- 文件服务器——NFS
- Linux——nfs
- Linux——nfs
- 文件服务器—NFS
- NFS
- NFS
- nfs
- NFS
- NFS
- nfs
- NFS
- NFS
- 观察者模式
- Tornado自定义分布式session框架
- compareTo方法和compare方法
- 认识Xcode的调试器:LLDB调试技术
- uva129||hdu 1627 Krypton Factor 回溯法
- Linux_Service—NFS
- random.nextInt()与Math.random()基础用法
- bzoj1078: [SCOI2008]斜堆
- MyBatis(二)
- 数据库oracle,pgsq,mysql.相关设置
- HTML 语言代码参考手册
- 【图像处理】图像的极坐标变换
- c++中指针与引用的区别
- 蓝鸥Unity入门刚体学习笔记