話不多說,鍵盤敲起來!
1. 准備環境:
1. 兩台虛擬機(CentOS7),一台為服務器(192.168.1.10),一台為客戶端(192.168.1.20)。
2. 配置靜態ip、主機名,並寫/etc/hosts記錄。
3. 關閉防火牆和selinux。
2. 安裝NFS相關組件
nfs-utils:包含NFS服務端守護進程和NFS客戶端的工具
rpcbind:提供RPC的端口映射的守護進程及其相關文檔、執行文件等
3. 使用yum源安裝nfs、rpcbind軟件包
yum -y install nfs-utils rpcbind
4. 配置NFS服務
NFS使用/etc/exports定義需要共享的目錄及訪問對象的控制,NFS在默認情況下不共享任何目錄(/etc/exports文件為空)當需要共享目錄時管理員需要手動設置。
編輯格式:
[共享目錄] [客戶端1(參數項)] [客戶端2(參數項)]
客戶端常用的指定方式:
指定ip地址的主機:192.168.1.10
指定子網中的所有主機:192.168.1.0/24 或192.168.1.0/255.255.255.0
指定域名的主機:www.abc.com
指定域中所有的主機: *.abc.com
所有主機: *
常用選項:
ro 設置共享目錄為只讀的權限
rw 設置共享目錄為可讀寫的權限
all_squash 將遠程訪問的所有普通用戶以及所屬組都映射為匿名用戶或用戶組,相當於使用nobody用戶訪問該共享目錄(此參數為默認設置)
no_all_squash 與all_squash相反
root_squash 將root用戶及其所屬組都映射為匿名用戶或用戶組(默認設置)
no_root_squash 與root_squas相反,即以root身份訪問
anonuid和anongid 將遠程訪問的所有用戶以及所屬組都映射為匿名用戶或用戶組,並指定其uid,gid
sync 將數據同步寫入內存緩沖區與磁盤中,效率低,但可以保證數據的一致性
async 將數據先保存在內存緩沖區中,必要時才寫入磁盤
5. NFS服務配置實例
在/etc/exports文件中,每一行代表一個共享目錄,並且描述了該目錄如何被共享
vim /etc/exports
/test 192.168.1.20(rw,no_root_squash) #/test為共享目錄,ip為192.168.1.20主機有可讀可寫權限,並以root身份訪問。
6. 服務端創建共享目標:
mkdir /test
啟動NFS服務
systemctl restart rpcbind.service
systemctl restart nfs.service
查看服務是否啟動成功:
showmount -e 127.0.0.1 --下面的顯示表示已經啟動
Export list for 127.0.0.1:
/test 192.168.1.20
7. 客戶端查看nfs服務器共享列表:
showmount -e 192.168.1.10
Export list for 192.168.1.10:
/share 192.168.1.20
8. NFS文件系統掛載與卸載:
掛載格式:mount -t nfs 服務器地址:/共享目錄 /本機掛載點
卸載格式:umount 掛載目標
客戶端操作:
mkdir /share #創建本機掛載點
mount 192.168.1.10:/test /share #將共享目錄掛載到本地的/share目錄
df -h #查看掛載是否成功
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/cl-root 17G 4.2G 13G 25% /
devtmpfs 473M 0 473M 0% /dev
tmpfs 489M 144K 489M 1% /dev/shm
tmpfs 489M 7.1M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 1014M 173M 842M 18% /boot
tmpfs 98M 8.0K 98M 1% /run/user/0
/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64
192.168.1.10:/test 17G 4.8G 13G 28% /share
9. 測試共享文件:
服務器:
cd /test
cp /etc/passwd /test
客戶端:
ls /share
cat /share/passwd #可以查看到/share/passwd中的內容