l'hôte
J'ai un hôte qui exécute Ubuntu 12.04 à l'adresse 10.0.0.202
. Il fournit un partage NFS pour les autres machines du réseau. Voici le contenu de /etc/exports
:
/media/storagedrive 10.0.0.0/24(rw,sync,no_subtree_check)
L'intention est ici de partager le contenu de /media/storagedrive
avec d'autres machines du réseau dans la plage d'adresses IP 10.0.0.0 - 10.0.0.255
.
Client de travail
Cela fonctionne correctement avec un ordinateur client à 10.0.0.40
, exécutant Ubuntu 13.10, connu sous le nom de MattDev. Le /etc/fstab
de cette machine ressemble à ceci:
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
Et ls -al /mnt/
sur cette machine ressemble à ceci:
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
La sortie de id
se présente comme suit:
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)
client virtuel non opérationnel
J'ai un deuxième ordinateur client, exécutant Ubuntu 12.10, en tant qu'OS invité sur un ordinateur hôte Windows 7. La machine hôte se trouve sur le réseau en tant que 10.0.0.28
. La machine invitée est gérée par Vagrant, utilisant VirtualBox 4.3.6 en tant que fournisseur. J'appellerai l'hôte Windows 7 AlexDevHost et l'invité Ubuntu AlexDevGuest.
Lancer showmount -e 10.0.0.202
sur AlexDevGuest produit:
Export list for 10.0.0.202:
/media/storagedrive 10.0.0.0/24
Cependant, lorsque j'essaie de monter le partage, il échoue:
$ Sudo mount 10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive
mount.nfs: access denied by server while mounting 10.0.0.202:/media/storagedrive
Alors j'ai commencé à chercher des problèmes:
$ 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)
$
Cet uid et gid est différent de l'utilisateur Matt sur MattDev. J'ai donc jonglé avec l'utilisation de l'utilitaire pour vagrant, car j'ai lu que l'accès NFS est contrôlé en faisant correspondre l'adresse IP et les uids. Alors maintenant:
$ 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
$
Toujours pas de succès. Alors maintenant, je manque d'idées.
10.0.0.28
et non d'une autre adresse IP ne figurant pas dans la plage autorisée?D'accord, j'ai résolu le problème (ou du moins, je l'ai fait fonctionner et je pense savoir ce qui le causait).
J'ai ajouté l'indicateur insecure
à la ligne /etc/exports
sur le serveur NFS, elle ressemble donc maintenant à ceci:
/media/storagedrive 10.0.0.0/24(rw,sync,no_subtree_check,insecure)
Cet indicateur autorise les connexions à partir de ports clients supérieurs à IPPORT_RESERVED (1024).
La commande mount fonctionne maintenant.
Je suppose que le problème vient de l'absence de l'indicateur insecure
, car VirtualBox utilisait NAT pour transmettre la demande au réseau physique. en dessous de 1024, le port traduit sur l'hôte Windows 7 (AlexDevHost) était probablement supérieur à 1024, et donc bloqué. Définir l’indicateur insecure
signifiait que cela était autorisé.
Ce problème n'affecte évidemment pas la machine non virtuelle DevMatt.