如何在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机器之间共享文件,然后我们应该能够仅与我们想要共享文件夹的客户端共享文件夹,这将提高安全性。
广告