https://help.ubuntu.com/lts/serverguide/serverguide.pdflinux
参考文档
https://edu.aliyun.com/a/10469ubuntu
** 不少文档中安装的包为portmap,可是这个包已经被rpcbind替代 ** 这文档写的很是清楚!我基本上是照抄的!感谢!
https://www.howtoing.com/how-to-set-up-an-nfs-mount-on-ubuntu-18-04vim
Mac 下 VisualBox 安装的 2 个虚拟机 192.168.1.191 ubuntu 18.04 Server,做为 NFS 服务端,对外提供共享文件夹 192.168.1.192 ubuntu 18.04 Server,做为 linux 客户端,获取共享文件夹 ** 排除防火墙因素,因此服务端和客户端,都关闭防火墙 sudo ufw status Status: inactive
1). sudo apt install nfs-kernel-server 2).确认一下安装包 dpkg -l |grep nfs ii libnfsidmap2:amd64 0.25-5.1 amd64 NFS idmapping library ii nfs-common 1:1.3.4-2.1ubuntu5 amd64 NFS support files common to client and server ii nfs-kernel-server 1:1.3.4-2.1ubuntu5 amd64 support for NFS kernel server 3). 确认一下nfs 服务是否已经运行 ps -ef |grep nfs root 737 2 0 14:21 ? 00:00:00 [nfsd] root 738 2 0 14:21 ? 00:00:00 [nfsd] root 739 2 0 14:21 ? 00:00:00 [nfsd] root 740 2 0 14:21 ? 00:00:00 [nfsd] root 741 2 0 14:21 ? 00:00:00 [nfsd] root 742 2 0 14:21 ? 00:00:00 [nfsd] root 743 2 0 14:21 ? 00:00:00 [nfsd] root 744 2 0 14:21 ? 00:00:00 [nfsd] dhbm 2189 2069 0 16:22 pts/0 00:00:00 grep --color=auto nfs 4).确认一下 nfs 状态 ** centos 7 和 ubuntu 18 缺省支持 nfs v4 ** nfs v4 和以前主要差异在于支持并行 ** 协议具体细节不在这里多讨论 nfsstat Server rpc stats: calls badcalls badfmt badauth badclnt 0 0 0 0 0 5).设置对外(共享)输出目录 sudo vim /etc/exports 增长如下 2 行 内容 /var/nfs/general 192.168.1.*(rw,sync,no_subtree_check) /home 192.168.1.*(rw,sync,no_root_squash,no_subtree_check)
1).创建共享文件夹 sudo mkdir -p /var/nfs/general 另一个共享文件夹直接使用 /home,无需再创建 2).设置共享目录权限 ** /var/nfs/general: 不属于任何人、任何组!谁均可以读写! sudo chown nobody:nogroup /var/nfs/general 确认一下: ls -la /var/nfs/general drwxr-xr-x 2 nobody nogroup 4096 Jan 2 11:51 . drwxr-xr-x 3 root root 4096 Jan 2 11:33 .. -rw-r--r-- 1 nobody nogroup 15 Jan 2 11:51 1 -rw-r--r-- 1 nobody nogroup 15 Jan 2 11:51 test20190102 home 不能乱容许!它属于 dhbm (我这里给 dhbm 具备root 权限) 确认一下: ls -la /home drwxr-xr-x 5 dhbm dhbm 4096 Jan 2 11:58 dhbm 3).看看哪些文件夹已经被共享 showmount -e Export list for ubuntu1804-191: /home 192.168.1.* /var/nfs/general 192.168.1.* 4).本身共享本身试试 ** 习惯性思惟!本身挂载本身会是什么样?windows 下是能够的! sudo mount 192.168.1.191:/var/nfs/general /common/general access denied by server while mounting 192.168.1.191:/var/nfs/general sudo mount 192.168.1.191:/home /common/home mount.nfs: access denied by server while mounting 192.168.1.191:/home ** 虽然提示不是 does not exist ,我也试试看 sudo mkdir -p /common/general sudo mkdir -p /common/home 再次本身挂载本身! 结果同上! ** 为何不容许?之后再来理解!
1).sudo apt install nfs-common 2).看看哪些文件夹已经被共享 showmount -e 192.168.1.191 Export list for 192.168.1.191: /home 192.168.1.* /var/nfs/general 192.168.1.* ** 说明有能够共享的文件夹,可供挂载! ** 实践过程当中,务必保证 服务端(192.168.1.191)开启
1).直接挂载试试 sudo mount 192.168.1.191:/var/nfs/general /common/general mount.nfs: mount point /common/general does not exist sudo mount 192.168.1.191:/home /common/home mount.nfs: mount point /common/home does not exist ** 显然,客户端没有创建对应的共享目录! ** 出错了!linux 挂载设备或文件夹,都要先设置一个挂载目标路径(或者叫:挂载点、挂载目录) 2).新建共享文件夹 挂载目录 sudo mkdir -p /common/general sudo mkdir -p /common/home ** 重复以上步骤 1)再来挂载,ok! 3).查看客户端挂载的磁盘 df -h Filesystem Size Used Avail Use% Mounted on ... tmpfs 395M 0 395M 0% /run/user/1000 192.168.1.191:/var/nfs/general 98G 6.8G 87G 8% /common/general 192.168.1.191:/home 98G 6.8G 87G 8% /common/home 4).查看共享目录占用状况 du -sh /common/home 60K /common/home du -sh /common/general 4.0K /common/general 5).实际测试共享状况 ** 这里只列出一个共享目录操做状况 cd /common/home/ sudo vim home20191002.test 随便输入一些内容,保存!退出! /common/home/dhbm$ ls 1 2_nfs_root home20191002.test 回到服务端 192.168.1.191 pwd /home/dhbm ls 1 2_nfs_root home20191002.test 能够看到服务端也同时创建了相同的文件!
1).直接重启服务端(192.168.1.192)和客户端(192.168.1.192) 2).服务端 ps -ef |grep nfs 和 showmount -e ,都是正确的! 3).客户端 df -h 发现并无挂载以上 2 个共享文件夹 4).须要修改的文件是/etc/fstab 命令格式以下: <NFS服务端>:<共享目录> <本地目录> <文件系统类型> <选项> <dump> <pass> *** 参数具体意义之后慢慢体会,照猫画虎作一次! sudo vim /etc/fstab,在文件中添加下面这行配置 192.168.1.191:/home /common/home nfs defaults 0 0 192.168.1.191:/var/nfs/general /common/general nfs defaults 0 0 参数说明: 前面 2 个参数和以上操做是同样的,最后 2 个0 的意思以下 第一个数字:0表示开机不检查磁盘,1表示开机检查磁盘; 第二个数字:0表示交换分区,1表明启动分区(Linux),2表示普通分区 6).直接重启服务端(192.168.1.192)和客户端(192.168.1.192) 而后在查看,服务端、客户端都正确的共享个挂载了!
1).参考
https://www.cyberciti.biz/faq/apple-mac-osx-nfs-mount-command-tutorial/windows
2).打开 mac 终端,一样方式创建一个供挂载的空目录 sudo mkdir -p /common/general ** 这里就只实践一个 3).挂载到 /common/general sudo mount -t nfs 192.168.1.191:/var/nfs/general /common/general 错误提示 mount_nfs: can't mount /var/nfs/general from 192.168.1.191 onto /common: Operation not permitted 4).按照以上官网提示修改没加上共享权限 sudo mount -t nfs -o resvport,rw 192.168.1.191:/var/nfs/general /common/general ok! 4).尝试从mac电脑 cp 一个 zip 文件到 /common/general,提示如下错误 sudo cp ca* /common/general/ Password: cp: ca.crt: could not copy extended attributes to /common/general/ca.crt: Operation not permitted cp: ca.key: could not copy extended attributes to /common/general/ca.key: Operation not permitted ...could not copy extended attributes to .... 可是,发现文件实际已经 cp 过去了! 管他呢!继续使用,发现都是正常的!