如何在Linux上安裝和配置NFS伺服器


在這篇文章中,我們將學習和配置NFS(網路檔案系統),它主要用於在Linux系統之間共享檔案和資料夾。它由Sun Microsystems於1980年開發,允許我們在網路中掛載檔案系統,遠端使用者可以像訪問本地檔案和資料夾一樣與共享進行互動。

NFS的特點

  • NFS可以配置為集中式儲存解決方案。
  • 無需在兩臺機器上執行相同的作業系統。
  • 可以使用防火牆進行保護。
  • 可以與所有*nix系統共享。
  • NFS共享資料夾可以作為本地檔案系統掛載。

設定NFS

NFS掛載至少需要兩臺機器。託管共享資料夾的機器稱為伺服器,連線的機器稱為客戶端。

伺服器和客戶端的IP地址詳情

  • 伺服器:192.168.87.156
  • 客戶端:192.168.87.158

配置NFS伺服器

我們需要安裝NFS的軟體包。

# yum install nfs-utils nfs-utils-lib
Output:
Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
epel/metalink | 4.0 kB 00:00
* base: mirror.digistar.vn
* epel: mirrors.ustc.edu.cn
* extras: mirror.digistar.vn
* updates: mirror.digistar.vn
Resolving Dependencies
--> Running transaction check
---> Package nfs-utils.x86_64 1:1.2.3-64.el6 will be installed
---> Package nfs-utils-lib.x86_64 0:1.1.5-11.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================================
Package             Arch             Version             Repository                Size
================================================================================================
Installing:
nfs-utils          x86_64             1:1.2.3-64.el6       base                   331 k
nfs-utils-lib      x86_64             1.1.5-11.el6         base                   68 k
Transaction Summary
================================================================================================
Install 2 Package(s)
Total download size: 399 k
Installed size: 1.1 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): nfs-utils-1.2.3-64.el6.x86_64.rpm | 331 kB 00:00
(2/2): nfs-utils-lib-1.1.5-11.el6.x86_64.rpm | 68 kB 00:00
------------------------------------------------------------------------------------------------
Total 60 kB/s | 399 kB 00:06
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : nfs-utils-lib-1.1.5-11.el6.x86_64 1/2
Installing : 1:nfs-utils-1.2.3-64.el6.x86_64 2/2
Verifying : 1:nfs-utils-1.2.3-64.el6.x86_64 1/2
Verifying : nfs-utils-lib-1.1.5-11.el6.x86_64 2/2
Installed:
nfs-utils.x86_64 1:1.2.3-64.el6 nfs-utils-lib.x86_64 0:1.1.5-11.el6
Complete!

之後執行以下命令啟動NFS伺服器並確保它在啟動時啟動。

# chkconfig nfs on
# service rpcbind start
# service nfs start

Output:
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Starting RPC idmapd: [ OK ]

匯出共享目錄

我們需要確定一個要與客戶端共享的目錄。該目錄應新增到`/etc/exports`檔案中。

# vi /etc/exports

將以下所有行新增到檔案中。

/share 192.168.87.158(rw,sync,no_root_squash,no_subtree_check)

解釋

  • /share – 伺服器要共享的共享資料夾
  • 192.168.87.158 – 要共享到的客戶端的IP地址
  • rw – 允許所有客戶端讀取和寫入共享目錄中的檔案。
  • sync – 提交更改後確認共享目錄。
  • no_subtree_check – 將阻止掃描共享目錄,因為nfs會掃描每個共享目錄,停用子樹檢查將提高可靠性,但會降低安全性。
  • no_root_squash – 允許root使用者連線到指定的目錄。

一旦我們在配置檔案中輸入共享的詳細資訊,執行以下命令來匯出它們:

# exportfs -a

配置客戶端

安裝連線到NFS所需的軟體包。

# yum install nfs-utils nfs-utils-lib -y

為共享目錄建立掛載點

在客戶端安裝軟體包後,建立目錄來掛載共享資料夾。

# mkdir -p /mnt/share

掛載共享目錄

# mount 192.168.87.156:/share /mnt/share/

要確認共享是否已掛載,執行命令“df -h”,這將顯示已掛載資料夾的列表。

# df -h
Output:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
50G 5.2G 42G 12% /
tmpfs 427M 80K 427M 1% /dev/shm
/dev/sda1 477M 42M 410M 10% /boot
/dev/mapper/VolGroup-lv_home
95G 60M 90G 1% /home
192.168.87.156:/share
18G 2.0G 15G 13% /mnt/share

檢視所有已掛載檔案系統的列表。

# mount
Output:
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/VolGroup-lv_home on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.87.156:/share on /mnt/share type nfs (rw,vers=4,addr=192.168.87.156,clientaddr=192.168.87.158)

檢查NFS掛載

在伺服器共享目錄中建立檔案和資料夾。

# touch test1
# mkdir test

然後轉到客戶端機器並檢查`/mnt/share`資料夾。

# ls /mnt/share/ -lh
total 4.0K
drwxr-xr-x 2 root root 4.0K Apr 20 2016 test
-rw-r--r-- 1 root root 0 Apr 20 2016 test1

要在客戶端機器啟動時永久自動掛載共享資料夾,請在`/etc/fstab`檔案中新增條目。

# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Apr 2 00:11:04 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root / ext4 defaults 1 1
UUID=1adb2ad5-d0c7-48a5-9b10-f846a3f9258c /boot ext4 defaults 1 2
/dev/mapper/VolGroup-lv_home /home ext4 defaults 1 2
/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
192.168.87.156:/share /mnt/share nfs auto,noatime,nolock,bg,nfsvers=3,intr,tcp,actimeo=1800 0 0

一些NFS選項和重要命令

# showmount -e
Export list for localhost.localdomain:
/share 192.168.87.158

這將顯示本地機器上可用的共享,因此需要在伺服器端執行。

# showmount -e 192.168.87.156
Export list for 192.168.87.156:
/share 192.168.87.158

這將顯示遠端伺服器共享資料夾,需要在客戶端執行 –

# exportfs -v
/share 192.168.87.158(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,no_root_squash,no_all_squash)

列出伺服器上所有共享檔案和資料夾以及選項。

# exportfs -u
/share 192.168.87.158

這將取消匯出`/etc/exports`中存在的共享資料夾或檔案。

# exports -r

這將重新整理伺服器列表並檢查是否有任何更改。

完成此配置和設定後,您應該能夠毫無問題地使用NFS在*nix機器之間共享檔案,然後我們應該能夠僅與我們想要共享資料夾的客戶端共享資料夾,這將提高安全性。

更新於:2020年1月20日

10K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告