서버 설정 · 5 min read · Dec 08, 2025

CentOS 7.2에서 NFS 서버 및 클라이언트 설정하기

이 가이드는 CentOS 7에서 NFS 서버와 NFS 클라이언트를 설정하는 방법을 설명합니다. NFS는 Network File System의 약자입니다. 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에 대한 접근을 root로 하도록 지시합니다(자세한 내용은 /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
[root@client ~]# 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
[root@client ~]# 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/
[root@server1 ~]# 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
[root@server1 ~]# 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 공유 마운트하기

클라이언트에서 NFS 공유를 수동으로 마운트하는 대신, /etc/fstab을 수정하여 클라이언트가 부팅할 때 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
[root@client ~]# 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
[root@client ~]# 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 링크

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.