웹사이트 검색

Ubuntu 22.04에 NFS 서버 및 클라이언트를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • Ubuntu 22.04(Jammy Jellyfish)
  • Ubuntu 10.04(Lucid Lynx)

이 페이지에서

  1. 전제 조건
  2. NFS 서버 설치 및 구성
  3. NFS 서버 패키지 설치
  4. 공유 디렉토리 설정
  5. 방화벽으로 NFS 서버 보호\n
  6. NFS 클라이언트 설치 및 구성
  7. NFS 클라이언트 패키지 설치
  8. 마운트 디렉토리 설정
  9. NFS 서버에 대한 쓰기 액세스 확인\n
  10. /etc/fstab을 사용하여 NFS 서버 자동 마운트\n
  11. 결론

NFS란 무엇입니까? NFS 또는 네트워크 파일 시스템은 로컬 사용자가 로컬 액세스와 동일한 방식으로 여러 디스크 및 디렉토리에서 원격 데이터에 액세스할 수 있도록 하는 프로토콜입니다. NFS 프로토콜은 원래 Sun Microsystem에서 개발했으며 네트워크를 통해 파일을 공유하기 위한 표준 프로토콜이 되었습니다. 사용자 또는 클라이언트 컴퓨터가 하나의 중앙 집중식 원격 서버에 데이터를 저장하고 액세스할 수 있는 중앙 집중식 환경에서 널리 사용됩니다.

대부분의 Linux 시스템에서 NFS는 NFS 서버와 클라이언트 모두에 대해 쉽게 설치하고 구성할 수 있습니다. 거의 모든 Linux 배포판은 자체 리포지토리에서 기본적으로 NFS 패키지를 제공합니다. 패키지 이름은 다르지만 대부분의 Linux 배포판에서 구성은 여전히 동일합니다.

이 자습서에서는 Ubuntu 22.04 서버에 NFS 서버 및 클라이언트를 설치하는 방법을 배웁니다. 또한 클라이언트 시스템에서 시스템 부팅 시 NFS 공유 디렉토리를 자동으로 마운트하는 방법도 배웁니다.

전제 조건

이 가이드에는 다음 전제 조건이 필요합니다.

  • Ubuntu Server 22.04 - NFS 서버 설치용.
  • Linux 클라이언트 시스템 - 이 예는 Ubuntu 클라이언트 시스템에서 사용됩니다.
  • 루트/관리자 권한이 있는 루트가 아닌 사용자.\n

NFS 서버 설치 및 구성

여기서 가장 먼저 할 일은 NFS 서버를 설치하고 구성하는 것입니다. 시작하기 전에 서버에 로그인하고 루트 권한을 얻으십시오.

아래의 ssh 명령을 사용하여 로그인할 수 있습니다. 그런 다음 "sudo su" 명령을 실행하여 루트 권한을 얻으십시오.

ssh 
sudo su

NFS 서버 패키지 설치

패키지를 설치하기 전에 아래의 apt 명령을 실행하여 Ubuntu 리포지토리를 업데이트하고 새로 고칩니다.

sudo apt update

이제 아래 명령을 사용하여 NFS 서버 패키지를 설치하십시오. Y를 입력하여 설치를 확인하고 ENTER를 누르면 설치가 시작됩니다.

sudo apt install nfs-kernel-server

NFS 서버 설치가 완료되면 다음 명령을 사용하여 NFS 서버 서비스를 확인하고 확인합니다. Ubuntu 설치 시 NFS 서버가 자동으로 활성화되고 시스템 부팅 시 자동으로 실행됩니다.

sudo systemctl is-enabled nfs-server
sudo systemctl status nfs-server

Ubuntu 22.04 서버에서 NFS 구성이 변경되었습니다. NFS의 기본 구성은 NFS 서버를 설정하고 구성할 수 있는 "/etc/nfs.conf" 파일에 있습니다. NFS 서비스에 대한 또 다른 구성은 "/etc/default/nfs-*"에 있으며 서비스 실행 방법에 대한 NFS 서비스를 설정하는 데 사용할 수 있습니다.

또한 기본 설치에서 활성화된 기본 NFS 버전은 NFSv3 및 NFSv4입니다. 아래 명령을 사용하여 기본적으로 활성화된 NFS 버전을 확인할 수 있습니다.

cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2

공유 디렉토리 설정

NFS 서버 패키지를 설치한 후 이제 공유 디렉토리를 설정하게 됩니다. NFS 공유 디렉토리는 "/etc/exports" 파일을 통해 정의할 수 있습니다. 또한 공유 디렉터리에 대한 클라이언트 IP 주소를 지정하거나 공유 디렉터리에 대한 읽기/쓰기를 설정할 수 있습니다.

아래 명령을 실행하여 새 공유 디렉터리를 만듭니다. 이 예에서는 클라이언트에 사용할 수 있는 두 개의 공유 디렉터리인 "/srv/backups" 및 "/mnt/shared"가 있습니다.

sudo mkdir -p /srv/backups /mnt/shared

이제 아래 명령을 사용하여 공유 디렉토리의 소유권과 권한을 변경하십시오. 사용자와 그룹은 "nobody:nogroup"이어야 하며 권한은 "777"이어야 공유 디렉토리에 쓰기가 가능합니다.

sudo chown -R nobody:nogroup /srv/backups /mnt/shared
sudo chmod 777 /srv/backups /mnt/shared

그런 다음 다음 명령을 사용하여 "/etc/exports" 파일을 수정합니다.

sudo nano /etc/exports

파일에 다음 구성을 추가합니다.

/srv/backups  192.168.5.100(rw,sync,no_subtree_check)
/mnt/shared 192.168.10.0/24(rw,sync,no_subtree_check)

완료되면 파일을 저장하고 닫습니다.

  • "/srv/backups" 디렉토리는 IP 주소가 "192.168.5.100"인 NFS 클라이언트에서만 사용할 수 있습니다.\n
  • 디렉토리 "/mnt/shared"는 전체 네트워크 "192.168.10.0/24"의 모든 클라이언트에서 사용할 수 있습니다.\n
  • rw - 공유 디렉토리에 대한 읽기 및 쓰기를 활성화합니다.\n
  • 동기화 - NFS가 클라이언트 시스템에 응답하기 전에 변경 사항을 기록하고 NFS 서버가 항상 클라이언트에 제공되도록 합니다.\n
  • no_subtree_check - 하위 트리 검사를 비활성화하고 사용자가 파일 이름을 변경할 때 충돌이 없는지 확인합니다.\n

그런 다음 다음 명령을 실행하여 모든 디렉터리를 적용하고 내보냅니다. 메시지가 표시되지 않으면 설정이 올바른 것입니다.

sudo exportfs -a

이제 다음 명령을 실행하여 NFS 서비스를 다시 시작하고 확인하십시오. 그리고 NFS 서비스가 새로 내보낸 디렉토리와 함께 실행 중인 것을 볼 수 있습니다.

sudo systemctl restart nfs-server
sudo systemctl status nfs-server

다음 명령을 실행하여 NFS 서버에서 사용 가능한 공유 디렉토리를 확인하십시오. 클라이언트의 공유 디렉터리로 사용할 수 있는 "/srv/backups" 및 "/mnt/shared" 두 개의 디렉터리가 표시되어야 합니다.

sudo exportfs -v

방화벽으로 NFS 서버 보호

NFS 공유 디렉터리를 설정한 후 방화벽을 사용하여 NFS 서버를 보호할 차례입니다. 이 경우 Ubuntu의 기본 방화벽은 UFW입니다.

위에서 볼 수 있듯이 각 공유 디렉터리는 특정 클라이언트 IP 주소와 네트워크를 통해 액세스할 수 있습니다. 따라서 NFS 서비스 포트에 액세스할 수 있는 UFW 방화벽 규칙에서 클라이언트 IP 주소 또는 네트워크를 지정해야 합니다.

아래 ufw 명령을 실행하여 클라이언트 IP 주소 "192.168.5.100" 및 네트워크 "192.168.10.0/24"가 NFS 서비스 포트에 액세스하도록 허용합니다. .

sudo ufw allow from 192.168.5.100 to any port nfs
sudo ufw allow from 192.168.10.0/24 to any port nfs

이제 UFW 방화벽 규칙을 다시 로드하고 아래 명령을 사용하여 방화벽 규칙 목록을 확인합니다. 특정 클라이언트 IP 주소 및 네트워크를 통해 액세스할 수 있는 기본 NFS 서비스 포트 "2049"가 표시되어야 합니다.

sudo ufw reload
sudo ufw status

NFS 클라이언트 설치 및 구성

NFS 서버를 설치했으면 이제 NFS 클라이언트를 설정하고 공유 디렉토리를 클라이언트 시스템에 마운트할 차례입니다. 이 예에서 클라이언트는 Ubuntu 머신이기도 합니다.

Ubuntu 클라이언트 시스템에 로그인합니다. Ubuntu Desktop을 사용하는 경우 시스템에서 터미널을 열면 됩니다. 하지만 클라이언트에 Ubuntu Server 버전을 사용하는 경우 아래와 같이 ssh 명령을 사용하여 연결할 수 있습니다.

ssh 

NFS 클라이언트 패키지 설치

클라이언트 시스템에서 수행할 첫 번째 단계는 NFS 서버를 클라이언트 시스템에 마운트할 수 있는 "nfs-common" 패키지를 설치하는 것입니다.

아래의 apt 명령을 실행하여 Ubuntu 리포지토리를 업데이트하고 새로 고칩니다.

sudo apt update

이제 다음 명령을 사용하여 "nfs-common" 패키지를 설치하십시오. Y를 입력하여 설치를 확인하고 ENTER를 누르십시오. 이제 설치가 시작됩니다.

sudo apt install nfs-common

마운트 디렉토리 설정

NFS 공유 디렉토리 마운트를 시작하기 전에 마운트 대상에 대한 새로운 특정 디렉토리를 생성하게 됩니다. 이 예에서. NFS 공유를 마운트하기 위한 대상 디렉토리는 "/mnt/data" 디렉토리입니다.

아래 명령을 실행하여 새 디렉터리 "/mnt/data"를 만듭니다.

sudo mkdir -p /mnt/data

NFS 공유 디렉토리를 마운트하려면 아래 마운트 명령을 실행하십시오. 이 데모에서는 공유 디렉터리 "/srv/backups"를 대상 디렉터리 "/mnt/data"에 마운트합니다.

sudo mount nfs_server_ip:/srv/backups /mnt/data

이제 다음 명령을 실행하여 Ubuntu 머신에 마운트된 디스크 목록을 확인하고 확인하십시오. NFS 공유 디렉토리 \/srv/backups\가 \/mnt/data\ 디렉토리의 로컬 시스템에 마운트된 것을 볼 수 있습니다.

sudo df -h

NFS 서버에 대한 쓰기 액세스 확인

NFS 공유 디렉토리를 성공적으로 마운트한 후 NFS 공유 디렉토리에 대한 쓰기 액세스를 확인할 시간입니다.

이제 다음 명령을 실행하여 NFS 대상 마운트 디렉토리 "/mnt/data/"에 새 파일 "write.txt"을 작성하고 씁니다.

echo "This file from client" > /mnt/data/write.txt
cat /mnt/data/write.txt

그런 다음 NFS 서버로 돌아가 다음 명령을 실행하여 "write.txt" 파일을 확인하고 확인합니다. NFS 클라이언트 시스템에서 방금 생성한 것과 똑같은 파일이 표시되어야 합니다.

cat /srv/backups/write.txt
ls /srv/backups/

/etc/fstab을 사용하여 NFS 서버 자동 마운트

이 시점에서 Ubuntu 클라이언트 시스템에 NFS 공유 디렉토리를 성공적으로 마운트하고 공유 디렉토리에 대한 쓰기 액세스를 확인했습니다. 이제 시스템 부팅 중에 자동으로 마운트되도록 NFS 공유 디렉토리를 설정합니다. 이 작업은 /etc/fstab 파일을 통해 수행할 수 있습니다.

/etc/fstab 파일을 편집하기 전에 다음 명령을 실행하여 대상 "/mnt/data"에서 NFS 공유 디렉토리를 마운트 해제하십시오.

sudo umount /mnt/data

아래 명령을 사용하여 "/etc/fstab" 파일을 편집합니다.

sudo nano /etc/fstab

파일에 다음 구성을 추가합니다.

nfs_server_ip:/srv/backups    /mnt/data   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

완료되면 파일을 저장하고 닫습니다.

다음으로 아래의 마운트 명령을 실행하여 "/etc/fstab" 파일을 확인하고 확인합니다. 구성이 올바르면 \/etc/fstab\ 파일의 모든 파일 시스템이 시스템에 마운트됩니다.

sudo mount -a

아래 명령을 사용하여 클라이언트 시스템에 마운트된 디스크 목록을 확인합니다. 그리고 NFS 공유 디렉토리 \/srv/backups\가 대상 디렉토리 \/mnt/data\에 마운트된 것을 볼 수 있습니다. 클라이언트 시스템을 다시 시작/재부팅하면 NFS 공유 디렉토리가 자동으로 "/mnt/data" 디렉토리에 마운트됩니다.

sudo df -h

결론

축하합니다! 이제 Ubuntu 22.04 서버에 NFS 서버를 성공적으로 설치했습니다. 또한 UFW 방화벽을 사용하여 NFS 서버 액세스를 보호했습니다. 마지막으로 NFS 공유 디렉토리를 마운트하기 위해 Ubuntu 클라이언트 시스템을 설정하는 방법도 배웠습니다. 여기에는 "/etc/fstab" 파일을 통해 시스템 시작 시 NFS 공유 디렉토리를 자동으로 마운트하는 방법이 포함됩니다.