본문 바로가기

쿠분투

쿠분투(Kubuntu)에서 NFS를 이용해 파일을 공유하자

*본 글은 ChatGPT와 Gemini를 활용하여 작성하였습니다.

*NFS(Network File System)는 네트워크를 통해 다른 컴퓨터의 파일을 마치 내 로컬 하드 디스크에 있는 것처럼 사용할 수 있게 해주는 프로토콜이다. 주로 리눅스나 유닉스 환경에서 서버 간 데이터 공유를 위해 표준처럼 사용된다. NFS의 주요 특징과 장점은 다음과 같다.

특징
내용
투명성
사용자는 네트워크 너머에 파일이 있다는 것을 의식하지 않고 작업 가능
효율성
파일 전체를 다운로드하지 않고 필요한 부분만 읽기/쓰기 수행
보안
주로 신뢰할 수 있는 내부 네트워크(LAN)에서 사용 권장

(1) NFS 서버를 설치하고, 공유할 디렉토리를 만든다.

sudo apt install nfs-kernel-server
sudo mkdir -p ~/data

(2) 다음의 파일을 불러들어 수정한 후 공유할 폴더와 허용할 IP를 등록한다.

sudo nano /etc/exports
/home/[서버의 사용자명]/data 192.168.0.0/24(rw,sync,no_subtree_check)

* 192.168.0.0/24 (24비트 마스크, 192.168.0.1 ~ 254 까지 특정 네트워크의 범위 전체를 허용한다.)

(3) 수정 후 서버 재시작 없이 바로 적용하려면 아래 명령어를 사용한다.

sudo exportfs -a
sudo systemctl restart nfs-kernel-server

(4) 클라이언트 PC에 NFS 클라이언트를 설치하고, 마운트할 디렉토리를 생성한다.

sudo apt install nfs-common
mkdir -p ~/nfs_share

(5) 클라이언트 PC에 NFS를 마운트한다. IP의 주소는 다음의 명령어를 입력해 서버 PC의 IP 주소를 확인하여 입력한다. 여기서는 서버 PC의 IP가 192.168.0.16 임을 확인할 수 있다.

ip a
sudo mount -t nfs 192.168.0.16:/home/[서버의 사용자명]/data ~/nfs_share

(6) 부팅시 자동으로 마운트 되려고 하면 fstab 파일을 연다.

sudo nano /etc/fstab

(7) 파일에 다음의 내용을 추가한다.

192.168.0.16:/home/[서버의 사용자명]/data /home/[클라이언트의 사용자명]/nfs_share nfs defaults 0 0

(8) 부팅을 다시 한 후 네트워크 항목을 보면 공유된 디렉토리가 보이는 것을 확인할 수 있다. 여기다 파일을 넣으면 서버 PC의 공유 폴더에 파일이 저장된다. 또한 서버 PC의 공유 폴더에 파일을 넣으면 클라이언트 PC에서 공유된 파일을 작업할 수 있다. 다만 클라이언트 PC에서 파일을 추가한 경우 전송 속도가 느리다는 것이 단점이다.