Ceci est une ancienne révision du document !



Un simple partage NFS


Ce tutoriel propose une méthode qui se veut la plus simple possible pour accéder à distance aux documents enregistrés sur un ordinateur à partir d'un autre en utilisant le protocole NFS.

1. Deux ordinateurs fonctionnant avec Gnu/linux.


Serveur sur lequel se trouvent les fichiers à partager, et Client qui doit pouvoir accéder aux fichiers de Serveur.

N'importe quel ordinateur peut être serveur ou client, ou les deux.
2. Avoir les droits d'administration sur les deux machines.
3. Ne pas avoir peur du terminal.
4. Connaître les adresses IP locales de Serveur et de Client.
Dans le terminal lancer ifconfig, l'adresse est à la ligne inet adr:, paragraphe eth si vous êtes connecté en ethernet, wlan pour une connexion wifi.

Pour la suite de cet exemple, on considérera que Serveur et Client ont une adresse locale fixe :
- Serveur > 192.168.1.1
- Client > 192.168.1.2

On peut fixer l'IP locale
- Soit à partir de l'interface du routeur / de la *box. Ouvrez Firefox, et tapez dans la barre d'adresse celle donnée dans le mode d'emploi du routeur / de la *box (le login et le mot de passe y sont aussi). Plus d'infos.
- Soit directement d'Ubuntu .
5. Se faire un aide mémoire.
Pour la suite du tuto, les commandes seront données avec des informations fictives (en gras dans le tableau ci-dessous), vous les remplacerez par les données réelles de vos machines.
Les machines IP locales Points de montage des fichiers
Serveur 192.168.1.1 /Fichiers_à_partager_sur_Serveur
Votre serveur IP de votre serveur Exemple : /home/Votre_Nom_d'Utilisateur_sur_Votre_Serveur
Client 192.168.1.2 /Point_de_montage_sur_Client
Votre client IP de votre client Exemple : /home/Nom_d'Utilisateur_sur_le_Client/Partage
6. Installer NFS

Installer les paquets :

- Pour Serveur, nfs-kernel-server et nfs-common.

- Pour Client, seulement nfs-common.


Sur Serveur donc, il faut éditer ou créer le fichier /etc/exports et y saisir cette ligne :

# Dossier partagé :
/Fichiers_à_partager_sur_Serveur/ 192.168.1.2 (rw,all_squash,anonuid=1000,anongid=1000,sync)

Explications sur les options de cette commande.

Ceci donne l'accès complet aux fichiers de Serveur, ce qui veut dire que Client (ou l'humain qui l'utilise) peut supprimer définitivement ce qu'il veut.
Pour ne donner l'accès qu'en lecture seule, il suffit de supprimer l'option rw de /etc/exports
Il est également possible de sélectionner les dossiers à partager :
- En créant un répertoire /home/agora et en y enregistrant les fichiers à partager.
- Ou en créant autant de lignes dans le fichier /etc/exports de Serveur que de dossiers à partager et en adaptant en conséquence la configuration de Client.


Il faut ensuite démarrer le serveur NFS (toujours sur Serveur) :

sudo /etc/init.d/nfs-kernel-server start
Si vous modifiez le fichier /etc/exports n'oubliez pas de relancer le serveur NFS par :
sudo /etc/init.d/nfs-kernel-server restart
1. D'abord créer un répertoire sur Client où vont s'installer les fichiers de Serveur :
 sudo mkdir /Point_de_montage_sur_Client

Plus d'infos sur la commande mkdir.

Par exemple :
sudo mkdir /home/Nom_d'Utilisateur_sur_le_Client/Partage

2. Ensuite déterminer ce répertoire comme point de montage sur Client :

Présentation de la notion de point de montage et du fichier fstab et ses options.

L'option noauto, qui empêche le montage automatique au démarrage du système, est ici très importante.
En effet, si Client tentait de monter cette partition au démarrage et qu'il échouait (par exemple parce que sa connexion ne serait pas encore active) cela pourrait planter complètement l'ouverture de session.
C'est pourquoi nous détaillerons dans un prochain chapitre comment automatiser le montage seulement à l'ouverture de la session lorsque tous les services nécessaires sont actifs.

Ajoutez cette ligne au fichier /etc/fstab de Client :

192.168.1.1:/Fichiers_à_partager_sur_Serveur   /Point_de_montage_sur_Client   nfs    user,noauto    0   0
1. D'abord interdire tout :

Sur Serveur donc, éditez ou créez le fichier /etc/hosts.deny, et copiez-y ces lignes :

# Tout interdire sur  portmap, nfsd et mountd
portmap:ALL
nfsd:ALL
mountd:ALL
2. Ensuite autoriser les échanges voulus :

Toujours sur Serveur, éditez ou créez le fichier /etc/hosts.allow, et enregistrez-y ces lignes (en adaptant bien sûr les IP) :

#Autoriser ce client à se connecter aux services (essentiellement : portmap, nfsd et moundt) :
portmap: 192.168.1.2
lockd: 192.168.1.2
nfsd: 192.168.1.2
mountd: 192.168.1.2
rquotad: 192.168.1.2
statd: 192.168.1.2 
Il est possible d'autoriser plusieurs clients,
- En définissant une plage, par exemple :
192.168.0.0/192.168.0.20
- En listant les IP locales autorisées (séparées par des espaces), comme par exemple :
192.168.0.1 192.168.0.3 192.168.0.8
- Ou encore en utilisant cette syntaxe :
192.168.
qui autorise toutes les machines dont l'IP locale commence par 192.168. à se connecter.
Pour que le montage de /Point_de_montage_sur_Client fonctionne il faut bien sûr que Serveur soit allumé et que Client et Serveur soient connectés.


Sur Client donc, créez le fichier /usr/bin/Monter_le_partage_NFS (où Monter_le_partage_NFS peut être remplacé par ce que vous voulez), et enregistrez-y ces lignes :

#!/bin/bash
sleep 15
mount /Point_de_montage_sur_Client
La commande sleep sert à retarder l'action, de manière à ce que la connexion de Client ait le temps de s'activer, ce qui peut être pertinent, en particulier dans le cas d'une connexion sans fil.
Vous pouvez adapter la valeur.


FIXME Pour que le montage soit vraiment automatique il suffit d'ajouter la commande /usr/bin/Monter_le_partage_NFS aux programmes qui sont lancés automatiquement à l'ouverture de session. Ce qui se fait en mode graphique de manières différentes selon les versions d'Ubuntu. À chercher donc dans les préférences du système ou de la session de Client.


Il existe aussi la possibilité d'utiliser autofs.

1. La première chose à faire est de vérifier si vous avez bien suivi ce tuto sans faire d'erreur.

En particulier dans les fichiers de configuration qui sont sensibles à la casse.

C'est le moment de ressortir le pense-bête pour pointer toutes les actions, en reprenant pas à pas le tuto.

Quelques questions à se poser pour guider sa recherche d'erreur :

  • N'ai-je pas oublié une majuscule ?
  • N'y a t'il pas eu échange de rôle entre Client et Serveur (cause fréquente d'erreur) ?
  • Ai-je bien mis tous les points des adresses IP ?
  • N'ai-je pas échangé un 0 pour un 1 dans cette IP là ?
  • Il ne manque pas un espace ici ?
2. Relancer le serveur NFS de Serveur.

À faire sur Serveur

sudo /etc/init.d/nfs-kernel-server restart


Si vous obtenez une erreur faites une recherche avec le message sur le forum Ubuntu.

3. Vérifier si Client a bien accès aux fichiers de Serveur.

À faire sur Client

showmount -e 192.168.1.1

Cette commande doit retourner quelque chose comme :
Export list for 192.168.1.1:
/home/Fichiers_à_partager_sur_Serveur 192.168.1.1


Sinon vérifier tout particulièrement les fichiers /etc/exports et /etc/hosts.allow de Serveur.

4. Tester manuellement le montage sur Client.

À faire sur Client


Lancez cette commande :

sudo mount -t nfs -o rw 192.168.1.1:/Fichiers_à_partager_sur_Serveur/ /Point_de_montage_sur_Client/


Si vous n'obtenez pas de message d'erreur c'est que le montage se fait bien manuellement :
Vérifier tout particulièrement les fichiers /etc/fstab et /usr/bin/Monter_le_partage_NFS de Client.

Si vous obtenez une erreur, faites une recherche avec le message sur le forum Ubuntu.

5. Configurer le pare-feu.


Il arrive que sur certaines configurations, le pare-feu bloque les échanges nécessaires au bon fonctionnement de NFS. Cela ne devrait pas être le cas sur Ubuntu, sauf si vous avez personnalisé les règles du pare-feu. Cela peut également provenir du routeur (*box).


Dans ces deux cas, voici ce qu'il vous faut paramétrer.
Et ici de l'aide pour configurer sa *box.

6. Demander de l'aide.


Si, malgré tout, votre partage NFS ne fonctionne toujours pas, vous pouvez demander de l'aide sur le forum, en suivant ces règles pour avoir de meilleures chances d'être secouru.

Dans le cas précis d'un problème avec NFS, donnez :
- Les IP du client et du serveur (précisez si elles sont fixes), le dossier à partager du serveur et le point de montage du client.
- Donnez en priorité le résultat des commandes qui aboutissent à des erreurs.
- Donnez également le contenu des fichiers /etc/exports, /etc/hosts.deny et /etc/hosts.allow de votre serveur, et le fichier /etc/fstab de votre client.

Vous pouvez avoir envie de créer un partage NFS plus complexe :
Par exemple décider que Serveur puisse aussi accéder aux fichiers de Client. Dans ce cas, il suffit de suivre ce même tuto en échangeant simplement les rôles ;-).
Ou bien faire un partage symétrique entre trois machines linux.

Une mention particulière pour le tuto de Cep qui m'a servi de base pour mon premier partage NFS et donc aussi pour rédiger cette page.

Pour finir, deux pages bien documentées qui permettent de tout comprendre sur le partage avec NFS :


Contributeurs : Missoire

  • tutoriel/un_simple_partage_nfs.1265474928.txt.gz
  • Dernière modification: Le 18/04/2011, 14:51
  • (modification externe)