주인
에 Ubuntu 12.04를 실행하는 호스트가 있습니다 10.0.0.202
. 네트워크의 다른 시스템에 NFS 공유를 제공합니다. 내용은 다음과 같습니다 /etc/exports
.
/media/storagedrive 10.0.0.0/24(rw,sync,no_subtree_check)
/media/storagedrive
여기서의 의도는 IP 범위 내 네트워크의 다른 시스템과 의 내용을 공유하는 것입니다 10.0.0.0 - 10.0.0.255
.
일하는 클라이언트
10.0.0.40
이는 MattDev로 알려진 Ubuntu 13.10을 실행하는 클라이언트 시스템에서 올바르게 작동합니다 . 그 기계는 /etc/fstab
다음과 같습니다.
UUID=8f8c838e-3ea2-457a-87f0-57b12dfab06c / ext4 errors=remount-ro 0 1
UUID=427089d4-46a2-432d-9df4-7016bdfc7df2 none swap sw 0 0
10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive nfs rsize=8192,wsize=8192,timeo=14,intr
그리고 ls -al /mnt/
그 기계에서는 다음과 같이 보입니다:
total 12K
drwxr-xr-x 3 root root 4.0K Feb 4 17:48 .
drwxr-xr-x 23 root root 4.0K Feb 5 08:44 ..
drwxrwxr-x 7 root plugdev 4.0K Feb 5 11:43 NetworkStorageDrive
출력은 id
다음과 같습니다.
uid=1000(matt) gid=1000(matt) groups=1000(matt),4(adm),24(cdrom),27(sudo),30(dip),33(www-data),46(plugdev),112(lpadmin),124(sambashare)
작동하지 않는 가상 클라이언트
Windows 7 호스트 시스템의 게스트 OS로 Ubuntu 12.10을 실행하는 두 번째 클라이언트 시스템이 있습니다. 호스트 시스템은 네트워크에 10.0.0.28
. 게스트 머신은 VirtualBox 4.3.6을 공급자로 사용하여 Vagrant에 의해 관리됩니다. 저는 Windows 7 호스트 AlexDevHost와 Ubuntu 게스트 AlexDevGuest를 호출하겠습니다.
showmount -e 10.0.0.202
AlexDevGuest에서 실행하면 다음이 생성됩니다.
Export list for 10.0.0.202:
/media/storagedrive 10.0.0.0/24
그러나 공유를 마운트하려고 하면 실패합니다.
$ sudo mount 10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive
mount.nfs: access denied by server while mounting 10.0.0.202:/media/storagedrive
그래서 저는 문제를 찾기 시작했습니다.
$ ls -alh /mnt/
total 12K
drwxr-xr-x 3 root root 4.0K Feb 5 12:23 .
drwxr-xr-x 26 root root 4.0K Feb 5 12:23 ..
drwxr-xr-x 2 root root 4.0K Feb 5 12:23 NetworkStorageDrive
$ id
uid=1001(vagrant) gid=1001(vagrant) groups=1001(vagrant)
$
해당 uid 및 gid는 MattDev의 사용자 matt와 다릅니다. 그래서 나는 IP 주소와 uid를 일치시켜 NFS 액세스가 제어된다는 것을 읽었으므로 vagrant의 uid에 대해 저글링했습니다. 그래서 지금:
$ id
uid=1000(vagrant) gid=1001(vagrant) groups=1001(vagrant)
$ sudo mount 10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive
mount.nfs: access denied by server while mounting 10.0.0.202:/media/storagedrive
$
아직도 성공하지 못했습니다. 그래서 지금은 아이디어가 부족해요.
- 내가 도대체 뭘 잘못하고있는 겁니까?
10.0.0.28
uid 부분이 올바른 경우 NFS 서버 시스템이 허용 범위에 없는 다른 IP가 아닌 에서 내 액세스 시도를 보고 있는지 확인할 수 있는 방법이 있습니까 ?
답변1
좋습니다. 문제를 해결했습니다(또는 적어도 문제를 해결했으며 원인이 무엇인지 알 것 같습니다).
insecure
NFS 서버의 행 에 플래그를 추가했으므로 /etc/exports
이제 다음과 같습니다.
/media/storagedrive 10.0.0.0/24(rw,sync,no_subtree_check,insecure)
이 플래그를 사용하면 IPPORT_RESERVED(1024) 이상의 클라이언트 포트에서 연결이 시작될 수 있습니다.
이제 마운트 명령이 작동합니다.
플래그가 없는 것이 insecure
문제인 이유는 VirtualBox가 NAT를 사용하여 요청을 물리적 네트워크로 전달했기 때문에 Ubuntu 게스트(AlexDevGuest)의 포트가 1024 미만일 수 있지만 변환된 포트는 다음과 같습니다. Windows 7 호스트(AlexDevHost)는 아마도 1024보다 높으므로 차단되었습니다. 플래그 를 설정한다는 것은 insecure
그것이 허용된다는 것을 의미했습니다.
이 문제는 가상 머신이 아닌 MattDev에는 분명히 영향을 미치지 않습니다.