目錄
一、服務端
1、安裝nfs服務端組件
sudo apt install nfs-kernel-server
2、配置共享目錄
(1)新建即將共享出去的目錄
例如,我想在/mnt目錄下建一個testdir目錄
sudo mkdir /mnt/testdir
(2)配置/etc/exports
sudo vi /etc/exports
在最下邊加入
/mnt/testdir *(rw,sync,no_subtree_check,no_root_squash)
其中
- /mnt/testdir表示將要共享出去的目錄;
- 後邊的星號(*)表示所有用戶都可連接這臺服務器,如果想限定某個網段的用戶可以寫成類似192.168.1.*這樣的形式,如果想限定只有某個用戶可以訪問可以直接寫這個用戶的IP;
- 括號中的部分,rw代表客戶端將來可讀可寫,如果寫成ro就是隻讀;
- sync表示同步?表示所有數據在請求時寫入共享,這個不太理解;
- no_subtree_check表示不檢測父目錄的權限;
- no_root_squash表示不能降低root用戶的權限;
3、重啓nfs服務
sudo /etc/init.d/nfs-kernel-server restart
4、查詢nfs是否啓動
ps -A|grep nfs
如果輸入以下類似內容則證明已啓動
3662 ? 00:00:00 nfsd4_callbacks
3664 ? 00:00:00 nfsd
3665 ? 00:00:00 nfsd
3666 ? 00:00:00 nfsd
3667 ? 00:00:00 nfsd
3668 ? 00:00:00 nfsd
3669 ? 00:00:00 nfsd
3670 ? 00:00:00 nfsd
3671 ? 00:00:00 nfsd
3711 ? 00:00:00 nfsiod
二、客戶端
Windows客戶端就不多說了,除了企業版和旗艦版自帶的nfs服務似乎沒有任何第三方nfs客戶端可選,只討論ubuntu客戶端的連接方式(ubuntu也可以自己訪問自己,可以用來測試nfs服務有無建立成功)。
1、客戶端安裝nfs-common
sudo apt install nfs-common
2、查看服務端共享出來了哪些目錄
例如我的服務器地址是192.168.86.132
showmount -e 192.168.86.132
由於我之前在服務器端共享出的目錄是/mnt/testdir,所以會顯示如下內容
Export list for 192.168.86.132:
/mnt/testdir *
這樣客戶端就知道服務器提供了哪些目錄可供連接。
3、掛載服務器端目錄至客戶端本地
(1)在客戶端建一個目錄用於接收nfs
比如我的目錄建在/mnt/nfsclient
sudo mkdir /mnt/nfsclient
(2)開始掛載
sudo mount 192.168.86.132:/mnt/testdir /mnt/nfsclient/
其中:
- 192.168.86.132是我的服務器地址,你應該換成你的;
- /mnt/testdir是我的服務器共享出來的目錄,你應該換成你的;
- /mnt/nfsclient是我客戶端用來掛載共享的目錄,你應該換成你的;
掛載完成,可以cd到掛載的目錄下查看文件。
4、客戶端查看掛載情況
命令行輸入df回車,可以看到類似如下內容
Filesystem 1K-blocks Used Available Use% Mounted on
udev 477296 0 477296 0% /dev
tmpfs 99756 4844 94912 5% /run
/dev/sda2 19548440 2017744 16514632 11% /
tmpfs 498768 0 498768 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 498768 0 498768 0% /sys/fs/cgroup
vmhgfs-fuse 124054524 89496464 34558060 73% /mnt/hgfs
tmpfs 99756 0 99756 0% /run/user/1000
192.168.86.132:/mnt/testdir 19548544 2017792 16514688 11% /mnt/nfsclient
其中最後一行可以看到我的客戶端已經掛載了192.168.86.132這臺服務器的/mnt/testdir目錄,掛載到了我這臺客戶端的/mnt/nfsclient下。
5、客戶端取消掛載
取消掛載需要先退出掛載的目錄,否則會顯示device is busy,cd到根目錄或其它目錄,輸入以下命令解除掛載
sudo umount /mnt/nfsclient
其中/mnt/nfsclient是我的客戶端的目錄,注意這裏應該填寫客戶端接收掛載的這個目錄名,而不是服務端的目錄名,這裏你應該換成你的客戶端用於接收的目錄。
再次輸入df可以看到已經取消掛載了
xyvm@ubuntu:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 477296 0 477296 0% /dev
tmpfs 99756 4840 94916 5% /run
/dev/sda2 19548440 2017744 16514632 11% /
tmpfs 498768 0 498768 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 498768 0 498768 0% /sys/fs/cgroup
vmhgfs-fuse 124054524 89496464 34558060 73% /mnt/hgfs
tmpfs 99756 0 99756 0% /run/user/1000