본문 바로가기
서버/Linux

[Linux] NFS 리눅스 - 리눅스 or 윈도우(데비안)

by jamong1014 2024. 1. 14.
반응형

가정

  • 192.168.1.4 : Server ip
  • 192.168.1.5 : Client ip

서버

NFS 서버 설치

$ sudo apt-get update
$ sudo apt-get install nfs-kernel-server

 

공유 디렉터리 설정

$ sudo mkdir /nfs_share
$ chown nobody:nogroup /nfs_share
$ chmod 777 /nfs_share
  • 공유 디렉터리 소유자와 소유그룹을 nobody와 nogroup으로 변경
  • nobody와 nogroup으로 변경하는 이유는 클라이언트와 서버간에 UID와 GID를 매핑하는 과정에서 식별자들이 서로 일치하지 않는 경우 다양한 문제가 발생
  • 즉 nobody와 nogroup은 일반적으로 모든 시스템에서 사용 가능한 사용자와 그룹으로 UID와 GID의 일치성을 보장하기 위해 선택됨

 

/etc/exports 공유 설정 추가

$ sudo vi /etc/exports
/nfs_share 192.168.1.5(rw,sync,no_subtree_check) # 192.168.1.5는 접속 클라이언트 아이피
  1.  ro: 읽기 전용 (기본값)
  2.  rw: 읽기/쓰기
  3.  no_root_squash: 클라이언트에서 접근하는 root 인정
  4.  root_squash: 클라이언트에서 접근하는 root 무시. 서버 상의 nobody로 매핑 (기본값)
  5.  all_squash: root를 포함하여 모든 사용자의 권한을 nobody로 매핑
  6.  no_subtree_check: 하위 디렉터리를 검사하지 못하도록 설정
  7.  secure: 포트 번호가 1024 이하의 요청에만 허가
  8.  async: 데이터 변경을 비동기식으로 처리. 쓰기가능한 디스크 스토리지에 사용하면 유용
  9.  anonuid: 접근하는 사용자 권한을 지정한 uid로 매핑
  10.  anongid: 접근하는 그룹 권한을 지정한 gid로 매핑

* subtree check의 역할은 클라이언트가 서버에 연결할 때 클라이언트가 지정한 경로가 서버의 /etc/exports 에 정의된 공유 경로의 하위 경로인지를 확인하는 기능

 

즉 서버에서는 /nfs_share 을 공유하고 있는데 클라이언트에서 /nfs_share/subdir 에 연결할려고 할 때 subtree checking이 활성화되어 있다면 이 경로가 서버에 정의된 공유 경로의 하위 경로인지를 확인

 

보안적인 측면, 특정 디렉터리의 액세스를 제한하는데 있어서는 subtree_check을 활성화하는 것이 좋고, 이 기능이 필요하지 않은 상황이면 no_subtree_check를 통해 서버의 부하를 줄일 수 있음 

 

각 목적에 따라 다른 옵션을 사용하면 됨

 

설정된 모든 공유를 저장

$ sudo exportfs -a

 

NFS 서버 재시작

$ sudo service nfs_kernel_server restart

클라이언트 접속(리눅스)

nfs 클라이언트 설치

$ sudo apt-get update
$ sudo apt-get install nfs-common

 

nfs 디렉터리 마운트

sudo mount 192.168.1.4:/nfs_share /mnt # 192.168.1.4는 서버 ip

 

마운트 확인

$ df -h

클라이언트 접속(윈도우)

 

 

윈도우 nfs 기능 켜기

재시작 문구가 뜨면 재시작

 

네트워크 드라이브 연결

네트워크 드라이브 연결

 

서버 정보 입력

\\server_ip\공유 디렉터리

 

반응형

댓글