/etc/exports 파일이 우분투 시스템에서 존재하지 않는다면, 이를 직접 생성하고 구성할 수 있습니다. /etc/exports 파일은 NFS(Network File System) 서버에서 공유할 디렉토리를 정의하는 파일입니다. 다음은 이 파일을 생성하고 구성하는 방법입니다.

NFS 서버 설치: 먼저 NFS 서버 패키지를 설치해야 합니다. 터미널을 열고 다음 명령을 실행하세요.

bash 코드 복사 sudo apt update sudo apt install nfs-kernel-server /etc/exports 파일 생성 및 편집: /etc/exports 파일을 생성하고 편집합니다. nano 또는 vi 편집기를 사용할 수 있습니다.

bash 코드 복사 sudo nano /etc/exports 파일에 공유할 디렉토리 추가: 파일에 공유할 디렉토리를 추가합니다. 예를 들어, /srv/nfs 디렉토리를 모든 클라이언트에게 읽기/쓰기 권한으로 공유하려면 다음과 같이 입력합니다.

plaintext 코드 복사 /srv/nfs *(rw,sync,no_subtree_check) rw: 읽기/쓰기 권한. sync: 변경 사항이 즉시 디스크에 기록됨. no_subtree_check: 서브트리 검사를 비활성화. 디렉토리 생성 및 권한 설정: 공유할 디렉토리를 생성하고 필요한 권한을 설정합니다.

bash 코드 복사 sudo mkdir -p /srv/nfs sudo chown nobody:nogroup /srv/nfs NFS 서버 재시작: NFS 서버를 재시작하여 설정을 적용합니다.

bash 코드 복사 sudo systemctl restart nfs-kernel-server 방화벽 설정 (필요시): UFW를 사용하는 경우, NFS 서버를 허용하도록 방화벽 규칙을 설정해야 합니다.

bash 코드 복사 sudo ufw allow from [클라이언트 IP 또는 네트워크 범위] to any port nfs sudo ufw enable 이제 NFS 서버가 설정되었으며, 클라이언트에서 해당 공유 디렉토리에 접근할 수 있습니다. 클라이언트 측에서는 /etc/fstab 파일을 편집하여 공유 디렉토리를 자동으로 마운트하도록 설정할 수 있습니다.

문제가 계속 발생하면, 상세한 오류 메시지를 제공해주시면 추가적인 도움을 드릴 수 있습니다.

nfs의 포트는 뭐야? ChatGPT NFS(Network File System)는 여러 포트를 사용하여 작동합니다. 기본적으로 NFS는 다음과 같은 주요 포트를 사용합니다:

2049: NFS 서버가 사용하는 기본 포트입니다. 111: Portmapper (또는 rpcbind) 서비스가 사용하는 포트입니다. NFS는 동적으로 포트를 할당받기 때문에 클라이언트가 NFS 서버의 서비스 위치를 찾기 위해 이 포트를 사용합니다. 20048: NFS 잠금 매니저(nlockmgr)가 사용하는 포트입니다. 추가적으로, NFSv4는 단일 포트인 2049만을 사용합니다. 반면 NFSv3 및 이전 버전은 여러 포트를 사용하며, 보통 rpcbind를 통해 관리됩니다.

방화벽 설정을 할 때는 다음과 같이 포트를 허용해야 합니다:

UFW를 사용하는 경우: bash 코드 복사 sudo ufw allow 2049/tcp sudo ufw allow 2049/udp sudo ufw allow 111/tcp sudo ufw allow 111/udp 기타 포트 확인 방법: 만약 NFS 서비스가 사용하는 다른 포트를 확인하려면, 다음 명령어를 사용할 수 있습니다:

bash 코드 복사 sudo rpcinfo -p 이 명령은 현재 NFS 서버에서 사용 중인 모든 포트의 목록을 보여줍니다. 이러한 포트를 방화벽 규칙에 추가하여 클라이언트가 NFS 서버에 접속할 수 있도록 설정합니다.

rpcinfo

이건 뭐야 ChatGPT rpcinfo 명령은 RPC(Remote Procedure Call) 서비스와 관련된 정보를 조회하는 데 사용되는 유틸리티입니다. 이 명령을 사용하면 시스템에서 실행 중인 RPC 서비스를 나열하고, 각 서비스가 어떤 포트를 사용하고 있는지 확인할 수 있습니다.

rpcinfo 명령을 사용하는 방법과 예제를 아래에 설명하겠습니다.

rpcinfo 명령 사용법 기본 사용법:

bash 코드 복사 rpcinfo -p 이 명령은 로컬 호스트에서 실행 중인 모든 RPC 프로그램의 정보를 출력합니다. 출력 정보에는 프로그램 번호, 버전, 프로토콜, 포트 번호 등이 포함됩니다.

원격 호스트의 RPC 정보 조회: 원격 호스트의 RPC 서비스를 확인하려면, 다음과 같이 호스트 이름 또는 IP 주소를 지정할 수 있습니다.

bash 코드 복사 rpcinfo -p 예를 들어, 192.168.1.100 IP 주소를 가진 서버의 RPC 정보를 조회하려면:

bash 코드 복사 rpcinfo -p 192.168.1.100 rpcinfo -p 명령 예제 출력 다음은 rpcinfo -p 명령을 실행했을 때의 예제 출력입니다:

plaintext 코드 복사 program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100005 1 udp 20048 mountd 100005 1 tcp 20048 mountd 100005 2 udp 20048 mountd 100005 2 tcp 20048 mountd 100005 3 udp 20048 mountd 100005 3 tcp 20048 mountd 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100021 1 udp 35449 nlockmgr 100021 3 udp 35449 nlockmgr 100021 4 udp 35449 nlockmgr 100021 1 tcp 42965 nlockmgr 100021 3 tcp 42965 nlockmgr 100021 4 tcp 42965 nlockmgr 이 예제에서는 NFS 서버가 여러 포트를 사용하고 있음을 보여줍니다. 2049는 NFS 자체가 사용하는 기본 포트이며, 111은 포트매퍼가 사용하는 포트입니다. mountd, nlockmgr와 같은 다른 RPC 서비스도 각기 다른 포트를 사용하고 있습니다.

요약 rpcinfo 명령은 NFS 및 기타 RPC 서비스의 포트 정보를 확인하는 데 유용합니다. 이를 통해 필요한 포트를 방화벽 규칙에 추가하여 클라이언트가 서버에 접근할 수 있도록 설정할 수 있습니다.