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 過去了! 管他呢!繼續使用,發現都是正常的!