网络文件系统
1.NFS UNIX/LINUX <---> UNIX/LINUX 2.CIFS UNIX/LINUX/WINDOWS <---> UNIX/LINUX/WINDOWS NFS 红帽5 port mapper 端口映射表红帽6 rpcbind 远程过程调用NFS Network File System v1:SUN内部使用 v2:开始开放使用 v3:用的最多 v4:最新版,mount -t nfs 192.168.100.2:/abc /mnt/nfs RPC服务器组件:rpcbind 监听tcp的111端口NFS服务器组件:nfs-utils/usr/sbin/rpc.mountd/usr/sbin/rpc.nfsd[root@localhost ~]# service nfs startStarting NFS services: [ OK ]Starting NFS quotas: [ OK ]Starting NFS daemon: [ OK ]Starting NFS mountd: [ OK ][root@localhost ~]# service nfs statusrpc.svcgssd is stoppedrpc.mountd (pid 22958) is running...nfsd (pid 22955 22954 22953 22952 22951 22950 22949 22948) is running...rpc.rquotad (pid 22942) is running...[root@localhost ~]# rpcinfo -p localhost program vers(版本) proto port serviceNFS主配置文件 /etc/exports --->叫 导出分为两部分:第一部分 第二部分要导出的目录(必须是绝对路径) 访问控制和选项(要用小括号括起来) 中间不能有空格访问控制: 主机验证: 特定的IP地址,如:192.168.100.2 特定的网络地址,如:192.168.100.0/255.255.255.0 域名,如:*.qhdlink.com client2.qhdlink.com 所有,*代表所有主机 选项:(多个选项用逗号分隔",") rw: ro: async:异步 sync:同步 nohide:不隐藏 在导出的文件系统中,挂在了其他的文件系统,在客户端挂载被导出的文件系统的时候,其内部的其他文件系统也能被访问 root_squash:将uid/gid 为0的用户强行限制为匿名用户(默认) no_root_squash:让uid/gid 为0的用户以原有的身份完成操作 all_squash:将所有用户强行限制为匿名用户 no_all_squash:让所有用户以原有的身份完成操作(默认) anonuid=UID:强行的指定 anongid=GID: uid/gid只要合法就行,随便写 /var/shared 192.168.100.0/24(rw,all_squash,anonuid=2000,anongid=2000)/var/shared 192.168.100.0/24(ro) 192.168.100.2(rw,all_squash) [root@localhost ~]# man 5 exports 可以查看访问控制的格式 showmount -a: 查看NFS服务器上有哪些已经被挂载的文件系统 -e: 查看NFS服务器上导出了哪些文件系统客户端[root@localhost ~]# showmount -e 192.168.100.2Export list for 192.168.100.2:/var/shared 192.168.100.0/24[root@localhost ~]# showmount -a 192.168.100.2All mount points on 192.168.100.2: 没有一个被挂载[root@localhost ~]# mount -t nfs 192.168.100.2:/var/shared /mnt/[root@localhost ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda3 20024188 3279988 15727012 18% /tmpfs 59324 0 59324 0% /dev/shm/dev/sda1 99150 23827 70203 26% /bootdf: `/mnt/cdrom': No such file or directory192.168.100.2:/var/shared 20024192 1276160 17730816 7% /mnt[root@localhost ~]# exportfs/var/shared 192.168.100.0/24exportfs - maintain list of NFS exported file systems 以防重启exportfs -r: reload 重新导出。重新加载 -u: unreload 撤销导出或叫卸载,客户端不能访问 -a: 一般会与-r或-u同时使用,导出所有在/etc/exports文件中列出的目录或者撤销所有已经导出的目录 -v: verbose显示详细信息 [root@localhost ~]# exportfs -arvexporting 192.168.100.0/24:/var/shared要写需要给文件夹的写权限root -- nfsnobody 强制映射为nfs的匿名用户lisi -- nobody [root@localhost ~]# grep nfsnobody /etc/passwdnfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologinroot_squash root压制 识别的是uid为0的用户的请求 都映射为匿名 Map requests from uid/gid 0 to the anonymous uid/gid. Note that this does not apply to any other uids or gids that might be equally sensitive, such as user bin or group staff. nfs服务启动脚本的配置文件,固定服务启动的进程所监听的端口 [root@localhost ~]# vim /etc/sysconfig/nfs 让其有固定端口:取消注释即可#RQUOTAD_PORT=875# TCP port rpc.lockd should listen on.#LOCKD_TCPPORT=32803# UDP port rpc.lockd should listen on.#LOCKD_UDPPORT=32769#MOUNTD_PORT=892#STATD_PORT=662#STATD_OUTGOING_PORT=2020[root@localhost ~]# rpcinfo -p localhost100011 2 tcp 875 rquota100011 2 udp 875 rquotad100011 1 tcp 875 rquotad100011 2 tcp 875 rquotad100021 1 udp 32769 nlockmgr100021 3 udp 32769 nlockmgr100021 4 udp 32769 nlockmgr100021 1 tcp 32803 nlockmgr100021 3 tcp 32803 nlockmgr100021 4 tcp 32803 nlockmgr100005 1 udp 892 mountd100005 1 tcp 892 mountd100005 2 udp 892 mountd100005 2 tcp 892 mountd100005 3 udp 892 mountd100005 3 tcp 892 mountdnohide选项 [root@localhost ~]# mkdir /var/shared/cdrom [root@localhost ~]# mount /dev/sr0 /var/shared/cdrom/ 客户端 [root@localhost ~]# mount -t nfs 192.168.100.1:/var/shared /mnt/ [root@localhost ~]# ls /m media/ misc/ mnt/ [root@localhost ~]# ls /mnt/ cdrom [root@localhost ~]# ls /mnt/cdrom/ [root@localhost ~]# 内容为空 服务器 [root@localhost ~]# vim /etc/exports /var/shared 192.168.100.0/24(ro) 192.168.100.2(rw,all_squash) /var/shared/cdrom *(nohide) 加一条 [root@localhost ~]# exportfs -ra 客户机 [root@localhost ~]# umount /mnt/ [root@localhost ~]# mount -t nfs 192.168.100.1:/var/shared /mnt/ [root@localhost ~]# ls /mnt/cdrom/ EULA RELEASE-NOTES-bn-IN.html RELEASE-NOTES-ko-KR.html RELEASE-NOTES-zh-CN.html GPL RELEASE-NOTES-de-DE.html RELEASE-NOTES-ml-IN.html RELEASE-NOTES-zh-TW.html HighAvailability RELEASE-NOTES-en-US.html RELEASE-NOTES-mr-IN.html repodata p_w_picpaths RELEASE-NOTES-es-ES.html RELEASE-NOTES-or-IN.html ResilientStorage isolinux RELEASE-NOTES-fr-FR.html RELEASE-NOTES-pa-IN.html RPM-GPG-KEY-redhat-beta LoadBalancer RELEASE-NOTES-gu-IN.html RELEASE-NOTES-pt-BR.html RPM-GPG-KEY-redhat-release media.repo RELEASE-NOTES-hi-IN.html RELEASE-NOTES-ru-RU.html Server Packages RELEASE-NOTES-it-IT.html RELEASE-NOTES-si-LK.html TRANS.TBL README RELEASE-NOTES-ja-JP.html RELEASE-NOTES-ta-IN.html RELEASE-NOTES-as-IN.html RELEASE-NOTES-kn-IN.html RELEASE-NOTES-te-IN.html 客户机 [root@localhost ~]# showmount -e 192.168.100.1 Export list for 192.168.100.1: /var/shared/cdrom * /var/shared 192.168.100.0/24 [root@localhost ~]# mount -t nfs 192.168.100.1:/var/shared/cdrom /media/ 挂载/var/shared/cdrom [root@localhost ~]# df -hTP Filesystem Type Size Used Avail Use% Mounted on /dev/sda3 ext4 20G 1.3G 17G 7% / tmpfs tmpfs 504M 0 504M 0% /dev/shm /dev/sda1 ext4 97M 24M 69M 26% /boot /dev/sr0 iso9660 2.8G 2.8G 0 100% /mnt/cdrom 192.168.100.1:/var/shared nfs 20G 1.3G 17G 7% /mnt 192.168.100.1:/var/shared/cdrom nfs 2.8G 2.8G 0 100% /media [root@localhost ~]# df -hTP | column -t Filesystem Type Size Used Avail Use% Mounted on /dev/sda3 ext4 20G 1.3G 17G 7% / tmpfs tmpfs 504M 0 504M 0% /dev/shm /dev/sda1 ext4 97M 24M 69M 26% /boot /dev/sr0 iso9660 2.8G 2.8G 0 100% /mnt/cdrom 192.168.100.1:/var/shared nfs 20G 1.3G 17G 7% /mnt 192.168.100.1:/var/shared/cdrom nfs 2.8G 2.8G 0 100% /media 开机自动挂载的方法(避免挂载不上,进入不了系统)[root@localhost ~]# vim /etc/fstab 192.168.100.1:/var/shared /mnt nfs defaults,_netdev 0 0网络文件系统挂载宕机 挂载失败 不能启系统mount -t nfs -o _netdev_netdev The filesystem resides on a device that requires network access (used to prevent the system from attempting to mount these filesystems until the network has been enabled on the system).网络服务器nfs宕机之后跳过挂载还有一种方法是auto.master自动挂载--->待补充ftp和nfs的区别是 nfs支持在线改,nfs需要下载下来改