# Debian 계열(Debian, Ubuntu, Linux Mint, ...)
sudo apt install nfs-kernel-server rpcbind
# RedHat 계열(RHEL, Fedora, CentOS, Oracle Linux, ...)
sudo yum install nfs-utils rpcbind
# /home/mirinae 디렉토리 하위에 Share 디렉토리를 NFS 서버 디렉토리로 사용한다고 가정
sudo mkdir -p /home/mirinae/Share
# Share 디렉토리에 누구나 접근할 수 있게 권한 및 소유권 수정
chmod 777 /home/mirinae/Share
sudo chown -R nobody:nogroup /home/mirinae/Share
# NFS 서버 설정 파일 수정
sudo vi /etc/exportfs
/etc/exportfs
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
# Server IP가 10.20.30.40이고 서브넷 마스크가 255.255.255.0이라고 가정
/home/mirinae/Share/ 10.20.30.40/24(ro,sync,root_squash,subtree_check)
/etc/exportfs 파일 수정 후 바뀐 설정 적용
sudo exportfs -a
서비스 재시작
sudo systemctl restart nfs-server rpcbind
방화벽 설정
# 접속할 IP가 12.34.56.78이고 서브넷 마스크가 255.255.255.0이라고 가정
sudo iptables -A INPUT -p tcp -s 12.34.56.78/24 -j ACCEPT
# Debian 계열(Debian, Ubuntu, Linux Mint, ...)
sudo apt install nfs-common
# RedHat 계열(RHEL, Fedora, CentOS, Oracle Linux, ...)
sudo yum install nfs-utils
# NFS 서버 디렉토리를 마운트할 로컬 디렉토리가 /mnt/nfsdisk라고 가정
sudo mkdir -p /mnt/nfsdisk
sudo mount -t nfs 10.20.30.40:/home/mirinae/Share /mnt/nfsdisk
sudo umount /mnt/nfsdisk
sudo vi /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# Server IP가 10.20.30.40이고 서브넷 마스크가 255.255.255.0이라고 가정
//10.20.30.40/home/mirinae/Share/ /mnt/nfsdisk nfs iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0
Network File System (NFS)
https://ubuntu.com/server/docs/service-nfs