一、NFS原理
## 本次實驗以CentOS7.7爲例
[root@qll251 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@qll251 ~]#
- NFS,是Network File System的簡寫,即網絡文件系統。
- 功能:不同操作系統的機器實現數據共享,使用RPC協議。
- 模式: C/S 模式(Client/Server模式)
- 端口號:2049
[root@qll251 ~]# grep nfs /etc/services
nfs 2049/tcp nfsd shilp # Network File System
nfs 2049/udp nfsd shilp # Network File System
nfs 2049/sctp nfsd shilp # Network File System
[root@qll251 ~]#
5.版本:RHEL7是以NFSv4作爲默認版本
[root@qll251 ~]# nfsstat -s
Error: No Server Stats (/proc/net/rpc/nfsd: No such file or directory).
[root@qll251 ~]#
#############爲什麼出現Error呢?因爲咱們的NFS服務還沒有安裝呀
二、NFS-server服務安裝
NFS-server必需安裝兩個安裝包:
nfs-utils
和rpcbind
nfs-utils :包括基本的NFS命令與監控的程序
rpcbind :支持安全NFS RPC服務的連接
1)安裝NFS-server
[root@qll251 ~]# yum -y install nfs-utils
2)驗證是否安裝成功
## ·&&
[root@qll251 ~]# rpm -qa | grep nfs && rpm -qa | grep rpcbind
libnfsidmap-0.25-19.el7.x86_64
nfs-utils-1.3.0-0.65.el7.x86_64
rpcbind-0.2.0-48.el7.x86_64
[root@qll251 ~]#
三、NFS服務器端配置
1)在NFS-Server上創建共享目錄,比如創建/tmp/share並設置權限
[root@qll251 ~]# mkdir -p /tmp/share
[root@qll251 ~]# chmod o+rwx /tmp/share
[root@qll251 ~]# ll -d /tmp/share
drw-rw-rw- 2 root root 6 2月 3 16:38 /tmp/share
[root@qll251 ~]#
2)編輯NFS的配置文件:/etc/exports
NFS服務器通過讀取/etc/exports配置文件設定哪些客戶端可以訪問及訪問的權限。
/etc/exports文件格式
共享路徑 客戶端主機1(選項) 客戶端主機2 (選項) ...
/tmp/share 192.168.1.0/24(rw,sync,all_squash) #常用all_squash參數,將所有來訪用戶變成nfsnobody用戶訪問。
3)啓動NFS服務,並使配置生效
[root@qll251 ~]# systemctl start rpcbind
[root@qll251 ~]# systemctl start nfs
[root@qll251 ~]# exportfs -rv
exporting 192.168.1.0/24:/tmp/share #我這裏是允許192.168.1.0/24整個網段下的主機訪問
[root@qll251 ~]#
4)NFS服務器端先自我測試下是否可以聯機
[root@qll251 ~]# showmount -e localhost //-e:Show the NFS server's export list.
Export list for localhost:
/tmp/share 192.168.1.0/24
[root@qll251 ~]#
到此,NFS服務側的配置已完成,下面我們來討論Linux及Windows客戶端如何訪問NFS共享資源
四、Linux客戶端訪問NFS資源
1)安裝nfs-utils客戶端
[root@qll252 ~]# yum -y install nfs-utils
2)創建掛載目錄
[root@qll252 opt]# mkdir /shares
3)查看服務器端所共享的目錄信息
[root@qll252 ~]# showmount -e 192.168.1.251
Export list for 192.168.1.251:
/tmp/share 192.168.1.0/24
[root@qll252 ~]#
4)掛載NFS服務器所共享的/tmp/share
目錄
# 格式: mount -t nfs `NFS服務器的IP`:`共享的目錄` 客戶端掛載點
[root@qll252 ~]# mount -t nfs 192.168.1.251:/tmp/share /shares
[root@qll252 ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
192.168.1.251:/tmp/share 37G 1.6G 36G 5% /shares
[root@qll252 ~]#
以上mount方式爲臨時性掛載,重啓後失效
若改爲永久性開機自動掛載,則在/etc/fstab
最後一行加入
192.168.1.251:/tmp/share /shares nfs _netdev 0 0
5)客戶端使用NFS所共享的資源
[root@qll252 ~]# cd /shares/
[root@qll252 shares]# touch 123.txt
[root@qll252 shares]# mkdir dir
[root@qll252 shares]# ls
123.txt dir
[root@qll252 shares]#
6)取消掛載
[root@qll252 ~]# umount /shares
五、Windows客戶端掛載NFS
開頭說過,NFS是C/S架構。因此Windows客戶端同樣需要安裝NFS客戶端軟件,我們以Win7爲例
1)點擊開始 -> 控制面板->點擊程序
2)點擊“打開或關閉windows功能”
3)展開NFS服務,勾選“NFS客戶端”和“管理工具”;同時勾選上“基於unix的應用程序子系統”,然後點確定
4)等待安裝
5)安裝完畢,窗口會自動關閉。
這時我們按下win + r,輸入cmd,進入命令提示符。
輸入mount -h,查看下mount幫助信息(小技巧:未提示錯誤,也側面說明咱正確安裝了NFS客戶端)
6)Win7執行掛載NFS操作
掛載格式:mount \NFS的IP\NFS目錄名 掛載盤符
取消掛載:umount 掛載盤符
7)我們按下win+e,打開計算機資源管理器。可以看到,我們掛載的Z盤已存在
如果小夥們對DOS命令不太熟悉,我們也可以採用如下方式
(和第六步實現效果一樣)
點擊完成,完成網絡驅動器映射
以兩種方式,重啓主機都需要手動從新映射。真是不厭其煩,因此我們可以寫一個批處理文件,並設置開啓啓動。步驟如下:
# 編寫nfs.txt文件
@echo off
start "C:\Windows\System32\cmd.exe"
net use Z: \\192.168.1.251\tmp\test
taskkill /f /im cmd.exe
exit
# 編寫完畢,修改nfs.txt後綴爲:nfs.bat。(後綴爲bat結尾的,爲Windows可識別的批處理腳本)
#以下是命令介解釋:
#第一行命令作用:關閉腳本中命令執行的回顯過程,那@echo on呢?聰明的您應該知道命令作用了
#第二行:啓動cmd.exe程序
#第三行:將NFS服務器共享目錄映射至本地Z盤
#第四行:命令執行完畢,關閉cmd命令窗口
#第五行:退出
批處理腳本編寫完畢,我們可雙擊nfs.bat
,手動查看是否映射成功。
接下來完成最後一步,將nfs.bat
批處理文件加入Windows開啓自啓動目錄
開始-->所有程序-->啓動;右鍵打開-->將桌面上的
nfs.bat放入
拉進去!
重啓之後,效果如下:
重啓電腦的圖片就不展現了,在此保證任何實驗都是經過本人親自反覆驗證的。
更多IT技術,請微信搜索公衆號“秦露露
”或者掃描下方二維碼關注