在 CentOS 7.2 上设置 NFS 服务器和客户端在 CentOS 7.2 上设置 NFS 服务器和客户端在 CentOS 7.2 上设置 NFS 服务器和客户端在 CentOS 7.2 上设置 NFS 服务器和客户端
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

在 CentOS 7.2 上设置 NFS 服务器和客户端

本教程适用于这些操作系统版本

  • CentOS 7.2
  • CentOS 5.5

在此页

  1. 1 条初步说明
  2. 2 配置防火墙
  3. 3 安装 NFS
  4. 4 在服务器上导出目录
  5. 5 在客户端上安装 NFS 共享
  6. 6 测试
  7. 7 在启动时挂载 NFS 共享
  8. 8 个链接

本指南解释了如何在 CentOS 7 上设置 NFS 服务器和 NFS 客户端。NFS 代表网络文件系统;通过 NFS,客户端可以访问(读取、写入)NFS 服务器上的远程共享,就好像它在本地硬盘上一样。我将使用 CentOS 7.2 最小服务器作为安装的基础。

1 初步说明

我在这里使用两个 CentOS 系统:

  • NFS 服务器:server.example.com,IP 地址:192.168.1.100
  • NFS 客户端:client.example.com,IP 地址:192.168.1.101

我将在本教程中使用 nano 编辑器来编辑配置文件。 Nano可以这样安装。

yum -y install nano

2 配置防火墙

我建议安装防火墙。如果你还没有安装 firewalld 并且想使用防火墙,那么使用这些命令安装它:

yum -y install firewalld

启动防火墙并使其在引导时启动。

systemctl start firewalld.service
systemctl enable firewalld.service

接下来,打开 SSH 和 NFS 端口,以确保您能够通过 SSH 连接到服务器以进行管理,并通过 NFS 从我们的 NFS 客户端连接到服务器。

firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload

3 安装 NFS

在我们运行的 NFS 服务器上:

yum -y install nfs-utils

然后启用并启动 nfs 服务器服务。

systemctl enable nfs-server.service
systemctl start nfs-server.service

在客户端,我们可以按如下方式安装NFS(这个其实和服务端是一样的):

yum install nfs-utils

4 在服务器上导出目录

我想让客户端可以访问目录 /home 和 /var/nfs;因此我们必须在服务器上“导出”它们。

当客户端访问 NFS 共享时,这通常以用户 nfsnobody 的身份发生。通常 /home 目录不属于 nfsnobody(我不建议将其所有权更改为 nfsnobody!),并且因为我们想在 /home 上读写,所以我们告诉 NFS 访问应该以 root 身份进行(如果我们的 /home共享是只读的,这不是必需的)。 /var/nfs 目录不存在,因此我们可以创建它并将其所有权更改为用户和组 nfsnobody。

mkdir /var/nfs
chown nfsnobody:nfsnobody /var/nfs
chmod 755 /var/nfs

现在我们必须修改 /etc/exports 来“导出”我们的 NFS 共享。我们将 /home 和 /var/nfs 指定为 NFS 共享,并告诉 NFS 以根用户身份访问 /home(要了解更多关于 /etc/exports、其格式和可用选项的信息,请查看

man 5 exports

)

nano /etc/exports
/home           192.168.1.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs        192.168.1.101(rw,sync,no_subtree_check)

(no_root_squash 选项使得 /home 将作为 root 访问。)

每当我们修改 /etc/exports 时,我们必须运行:

exportfs -a

之后,使更改生效。

5 在客户端挂载 NFS 共享

首先,我们创建要挂载 NFS 共享的目录,例如:

mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs

之后,我们可以按如下方式安装它们:

mount 192.168.1.100:/home /mnt/nfs/home
mount 192.168.1.100:/var/nfs /mnt/nfs/var/nfs

您现在应该在输出中看到两个 NFS 共享

df -h
[ ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
tmpfs 184M 0 184M 0% /run/user/0
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

和

mount
[ ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
192.168.1.100:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)
192.168.1.100:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

6 测试

在客户端,您现在可以尝试在 NFS 共享上创建测试文件:

touch /mnt/nfs/home/test.txt
touch /mnt/nfs/var/nfs/test.txt

现在转到服务器并检查是否可以看到两个测试文件:

ls -l /home/
[ ~]# ls -l /home/
total 0
drwx------. 2 administrator administrator 59 Jun 21 16:13 administrator
-rw-r--r--. 1 root root 0 Jun 29 13:07 test.txt
ls -l /var/nfs
[ ~]# ls -l /var/nfs
total 0
-rw-r--r--. 1 nfsnobody nfsnobody 0 Jun 29 13:07 test.txt

(请注意测试文件的不同所有权:/home NFS 共享以 root 身份访问,因此 /home/test.txt 由 root 拥有;/var/nfs 共享以 nobody/65534 访问,因此 /var/ nfs/test.txt 归 65534 所有。)

7 在启动时挂载 NFS 共享

您可以修改 /etc/fstab 以便在客户端启动时自动挂载 NFS 共享,而不是在客户端上手动挂载 NFS 共享。

打开 /etc/fstab 并附加以下行:

nano /etc/fstab
[...]
192.168.1.100:/home  /mnt/nfs/home   nfs      rw,sync,hard,intr  0     0
192.168.1.100:/var/nfs  /mnt/nfs/var/nfs   nfs      rw,sync,hard,intr  0     0

您可以使用不同的挂载选项来代替 rw,sync,hard,intr。要了解有关可用选项的更多信息,请查看

man nfs

要测试修改后的 /etc/fstab 是否正常工作,请重新启动客户端:

reboot

重新启动后,您应该在输出中找到两个 NFS 共享

df -h
[ ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
tmpfs 184M 0 184M 0% /run/user/0
192.168.1.100:/home 28G 1.2G 27G 5% /mnt/nfs/home
192.168.1.100:/var/nfs 28G 1.2G 27G 5% /mnt/nfs/var/nfs

和

mount
[ ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=930320k,nr_inodes=232580,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=25,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
192.168.1.100:/home on /mnt/nfs/home type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)
192.168.1.100:/var/nfs on /mnt/nfs/var/nfs type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.101,local_lock=none,addr=192.168.1.100)

8个链接

  • Linux NFS:http://nfs.sourceforge.net/
  • CentOS:http://www.centos.org/

©2015-2025 艾丽卡 support@alaica.com