NFS 설정 · 4 min read · Dec 26, 2025
데비안 레니에서 NFS 서버 및 클라이언트 설정하기
데비안 레니에서 NFS 서버 및 클라이언트 설정하기
버전 1.0
저자: Falko Timme
이 가이드는 데비안 레니에서 NFS 서버와 NFS 클라이언트를 설정하는 방법을 설명합니다. NFS는 네트워크 파일 시스템을 의미하며, NFS를 통해 클라이언트는 NFS 서버의 원격 공유에 접근(읽기, 쓰기)할 수 있습니다. 마치 로컬 하드 디스크에 있는 것처럼요.
이것이 여러분에게 작동할 것이라는 보장을 하지 않습니다!
1 사전 참고
여기서 두 개의 데비안 시스템을 사용하고 있습니다:
- NFS 서버: server.example.com, IP 주소: 192.168.0.100
- NFS 클라이언트: client.example.com, IP 주소: 192.168.0.101
2 NFS 설치하기
서버:
NFS 서버에서 다음을 실행합니다:
apt-get install nfs-kernel-server nfs-common portmap클라이언트:
클라이언트에서 NFS를 다음과 같이 설치할 수 있습니다:
apt-get install nfs-common portmap3 서버에서 디렉토리 내보내기
서버:
클라이언트가 접근할 수 있도록 /home 및 /var/nfs 디렉토리를 만들고 싶습니다. 따라서 서버에서 이들을 “내보내야” 합니다.
클라이언트가 NFS 공유에 접근할 때, 이는 일반적으로 nobody 사용자로 발생합니다. 보통 /home 디렉토리는 nobody가 소유하지 않으며(그리고 소유권을 nobody로 변경하는 것을 추천하지 않습니다!), /home에서 읽고 쓰기를 원하기 때문에 NFS에 접근이 root로 이루어져야 한다고 알려줍니다(만약 /home 공유가 읽기 전용이라면, 이는 필요하지 않습니다). /var/nfs 디렉토리는 존재하지 않으므로, 이를 생성하고 소유권을 nobody 및 nogroup으로 변경할 수 있습니다:
mkdir /var/nfs
chown nobody:nogroup /var/nfs이제 /etc/exports를 수정해야 합니다. 여기서 NFS 공유를 “내보냅니다”. /home 및 /var/nfs를 NFS 공유로 지정하고 NFS에 /home에 대한 접근을 root로 하도록 지시합니다(자세한 내용은 /etc/exports, 그 형식 및 사용 가능한 옵션에 대해 보려면 다음을 참조하십시오:
man 5 exports)
vi /etc/exports| # /etc/exports: NFS 클라이언트에 내보낼 수 있는 파일 시스템에 대한 접근 제어 목록입니다. # exports(5)를 참조하십시오. # # NFSv2 및 NFSv3의 예: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # NFSv4의 예: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # /home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check) /var/nfs 192.168.0.101(rw,sync,no_subtree_check) |
(no_root_squash 옵션은 /home에 root로 접근할 수 있도록 합니다.)
/etc/exports를 수정할 때마다, 변경 사항을 적용하기 위해 다음을 실행해야 합니다:
exportfs -a4 클라이언트에서 NFS 공유 마운트하기
클라이언트:
먼저 NFS 공유를 마운트할 디렉토리를 생성합니다. 예를 들어:
mkdir -p /mnt/nfs/home
mkdir -p /mnt/nfs/var/nfs그 후, 다음과 같이 마운트할 수 있습니다:
mount 192.168.0.100:/home /mnt/nfs/home
mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs이제 다음의 출력에서 두 개의 NFS 공유를 확인할 수 있어야 합니다:
df -hclient:~# df -h
파일 시스템 크기 사용 사용 가능 사용% 마운트 지점
/dev/mapper/vg0-root 19G 676M 17G 4% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 80K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sda1 471M 20M 427M 5% /boot
192.168.0.100:/home 29G 684M 27G 3% /mnt/nfs/home
192.168.0.100:/var/nfs
29G 684M 27G 3% /mnt/nfs/var/nfs
client:~#그리고
mountclient:~# mount
/dev/mapper/vg0-root on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,addr=192.168.0.100)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,addr=192.168.0.100)
client:~#5 테스트
클라이언트에서 이제 NFS 공유에 테스트 파일을 생성해 볼 수 있습니다:
클라이언트:
touch /mnt/nfs/home/test.txt
touch /mnt/nfs/var/nfs/test.txt이제 서버로 가서 두 개의 테스트 파일이 보이는지 확인하세요:
서버:
ls -l /home/server:~# ls -l /home/
total 4
drwxr-xr-x 2 administrator administrator 4096 2009-02-16 13:18 administrator
-rw-r--r-- 1 root root 0 2009-03-12 17:08 test.txt
server:~#ls -l /var/nfsserver:~# ls -l /var/nfs
total 0
-rw-r--r-- 1 nobody nogroup 0 2009-03-12 17:08 test.txt
server:~#(테스트 파일의 소유권이 다르다는 점에 유의하세요: /home NFS 공유는 root로 접근되므로 /home/test.txt는 root가 소유합니다; /var/nfs 공유는 nobody로 접근되므로 /var/nfs/test.txt는 nobody가 소유합니다.)
6 부팅 시 NFS 공유 마운트하기
클라이언트에서 NFS 공유를 수동으로 마운트하는 대신, /etc/fstab을 수정하여 클라이언트가 부팅할 때 NFS 공유가 자동으로 마운트되도록 할 수 있습니다.
클라이언트:
/etc/fstab을 열고 다음 줄을 추가합니다:
vi /etc/fstab| [...] 192.168.0.100:/home /mnt/nfs/home nfs rw,sync,hard,intr 0 0 192.168.0.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 -hclient:~# df -h
파일 시스템 크기 사용 사용 가능 사용% 마운트 지점
/dev/mapper/vg0-root 19G 676M 17G 4% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 80K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sda1 471M 20M 427M 5% /boot
192.168.0.100:/home 29G 684M 27G 3% /mnt/nfs/home
192.168.0.100:/var/nfs
29G 684M 27G 3% /mnt/nfs/var/nfs
client:~#그리고
mountclient:~# mount
/dev/mapper/vg0-root on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
192.168.0.100:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,addr=192.168.0.100)
192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,addr=192.168.0.100)
client:~#7 링크
- 리눅스 NFS: http://nfs.sourceforge.net
- 데비안: http://www.debian.org
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.