윈도우10 에서 NFS 클라이언트 사용하기

로컬에 설치된 Typora 로 원격 서버의 블로그 글을 작성하기 위해 삽질한 내용.

VSCode Remote-SSH 로 원격 서버의 마크다운 파일을 수정하는 것은 글 쓰는 기분이 안 난다.. 그렇다고 로컬 파일을 매번 원격 서버로 동기화 시켜주는 것도 귀찮아서 시작한 일.

System Configuration

  • NFS Server: Ubuntu 20.04
  • NFS Client: Windows 10 desktop.

NFS 서버 설정

NFS 서버 설치

$ apt install nfs-kernel-server
$ vim /etc/exports

...
/mounttest *(rw,sync,no_subtree_check,insecure)

$ service nfs-kernel-server restart

NFS 서버 설정 확인

$ exportfs -rav
$ netstat -a | grep nfs

NFS 서비스 포트 확인

$ rpcinfo -p

다른 리눅스 클라이언트에서 마운트 되는지 먼저 확인

$ mount -t nfs <server IP>:/mounttest mdir -vvv

Cloudflare

도메인 관리로 cloudflare 를 사용하는 경우만 해당.

Cloudflare 관리창의 DNS > 레코드 > DNS 관리 에서 원하는 subnet 을 DNS 전용으로 설정.

AWS

IPv4 방화벽에서 111 (portmapper), 2049 (nfs) 포트 열기. 2049 만 열면 윈도우에선 마운트가 안된다.

Windows 10 클라이언트 설정

NFS 클라이언트 활성화

cmd 에서 OptionalFeatures.exe 실행.

NFS 마운트

cmd 에서 mount 명령으로 원격 디렉토리 마운트.

> mount -o anon \\<server ip>\<mount dir> Z:

cmd 를 관리자 권한으로 실행하면 일반 유저에겐 안 보이니 주의.

NFS 마운트 확인

cmd 에서 옵션 없이 mount 명령 실행.

> mount

NFS 접속 UID/GID 설정

클라이언트에서 anononymus 로 연결할 때 사용할 서버측 UID/GID 설정.

Windows Powershell 을 관리자 권한으로 실행하고 다음 명령을 실행. 1001 값을 을 각자 사용할 서버측 UID/GID 값으로 적절히 설정.

> New-ItemProperty HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default -Name AnonymousUID -Value 1001 -PropertyType "DWord"

> New-ItemProperty HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default -Name AnonymousGID -Value 1001 -PropertyType "DWord"

명령 실행 이후 윈도우 클라이언트 재부팅 필요.