如何在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在* inx机器之间共享文件,而不会出现任何问题,那么我们应该能够仅将文件夹共享给要与之共享文件夹的客户端,这将改善安全。