ubuntu 18.04 安裝NFS 共享文件夾,Linux掛載,Mac 掛載

20190102 ubuntu 18.04 安裝NFS 共享文件夾

一、官網文檔

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

三、服務端 (192.168.1.191)安裝 nfs 服務

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)

四、服務端 (192.168.1.191)設置共享文件夾

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
再次本身掛載本身!
結果同上!

** 爲何不容許?之後再來理解!

五、客戶端 (192.168.1.192) 安裝 nfs-common 服務

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)開啓

六、客戶端 (192.168.1.192)掛載共享盤

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

能夠看到服務端也同時創建了相同的文件!

七、客戶端 (192.168.1.192)開機自動掛載共享盤

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)
	而後在查看,服務端、客戶端都正確的共享個掛載了!

八、Mac 上掛載以上共享文件夾

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

以上是最簡化環境下的操做,實際環境下須要配合防火牆等進行進一步配置!

相關文章
相關標籤/搜索