Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
nfs [Le 25/01/2019, 17:56] 149.154.224.190 [Rétrograder en NFSv3] |
nfs [Le 27/02/2023, 10:02] (Version actuelle) 185.159.157.45 [Alternative avec interface graphique GUI] |
||
---|---|---|---|
Ligne 9: | Ligne 9: | ||
**NFS** est compatible avec IPv6 sur la plupart des systèmes. | **NFS** est compatible avec IPv6 sur la plupart des systèmes. | ||
- | ===== Alternative sans terminal ===== | + | ===== Alternative avec interface graphique GUI ===== |
+ | |||
+ | <note tip>Cette appli fonctionne de nouveau avec les dernières versions d'Ubuntu grâce au format AppImage</note> | ||
Avant de vous lancer dans la lecture de cette documentation, il existe une application permettant de créer facilement un partage de fichiers avec NFS. Son usage évite d'utiliser le terminal et favorise la configuration du réseau partagé NFS. | Avant de vous lancer dans la lecture de cette documentation, il existe une application permettant de créer facilement un partage de fichiers avec NFS. Son usage évite d'utiliser le terminal et favorise la configuration du réseau partagé NFS. | ||
https://github.com/Philippe734/Simple.NFS.GUI | https://github.com/Philippe734/Simple.NFS.GUI | ||
+ | |||
+ | [[https://github.com/Philippe734/Simple.NFS.GUI/releases|Lien du télechargement]] | ||
+ | |||
+ | [[https://github.com/Philippe734/Simple.NFS.GUI|Tuto vidéo en français sur le site officiel]] | ||
+ | |||
+ | {{::27803265-f3ab49dc-6028-11e7-8e10-857f86ac5a85.png?400|}} | ||
+ | |||
+ | Elle installera automatiquement les paquets **fping**, **nfs-common** et **nfs-kernel-server** | ||
===== Avec le terminal, pré-requis ===== | ===== Avec le terminal, pré-requis ===== | ||
Ligne 19: | Ligne 29: | ||
*Un **[[:serveur]]** sous GNU/Linux (ici Ubuntu) où se trouvent les fichiers à partager. | *Un **[[:serveur]]** sous GNU/Linux (ici Ubuntu) où se trouvent les fichiers à partager. | ||
- | *Un **client** qui doit pouvoir accéder aux fichiers du Serveur. | + | *Un **client** qui doit pouvoir accéder aux fichiers du Serveur. |
==== Ne pas avoir peur de la ligne de commande ==== | ==== Ne pas avoir peur de la ligne de commande ==== | ||
Ligne 78: | Ligne 88: | ||
/Dossier/à/partager/ 192.168.0.0/24(rw,all_squash,anonuid=1000,anongid=1000,sync,no_subtree_check) | /Dossier/à/partager/ 192.168.0.0/24(rw,all_squash,anonuid=1000,anongid=1000,sync,no_subtree_check) | ||
/Dossier/numero02/ master(rw) trusty(rw,no_root_squash) | /Dossier/numero02/ master(rw) trusty(rw,no_root_squash) | ||
+ | /media/moi/Photos 192.168.0.0/24(rw,all_squash,anonuid=1000,anongid=1000,sync,no_subtree_check) | ||
+ | /media/moi/Sport/Petanque 192.168.0.0/99(sync) | ||
</file> | </file> | ||
Ligne 92: | Ligne 104: | ||
* un intervalle d'IP avec le masque de sous-réseau; par exemple : ''192.168.0.0/24'' ou ''192.168.0.*'' | * un intervalle d'IP avec le masque de sous-réseau; par exemple : ''192.168.0.0/24'' ou ''192.168.0.*'' | ||
* **<options>** : indique les options de partage; nous n'allons pas parcourir toutes les options ensemble mais uniquement les plus importantes. | * **<options>** : indique les options de partage; nous n'allons pas parcourir toutes les options ensemble mais uniquement les plus importantes. | ||
- | * **rw** : permet la lecture et l'écriture sur un partage pour l'hôte défini (par défaut, les partages sont en mode ''ro''; c'est-à-dire en lecture seule). | + | * **rw** : permet la lecture et l'écriture sur un partage pour l'hôte défini. Par défaut, les partages sont en mode ''ro''; c'est-à-dire en lecture seule. |
* **async** : permet au serveur NFS de violer le protocole NFS et de répondre aux requêtes avant que les changements effectués par la requête aient été appliqués sur l'unité de stockage. Cette option améliore les performances mais a un coût au niveau de l'intégrité des données (données corrompues ou perdues) en cas de redémarrage non-propre (par exemple en cas de crash système). | * **async** : permet au serveur NFS de violer le protocole NFS et de répondre aux requêtes avant que les changements effectués par la requête aient été appliqués sur l'unité de stockage. Cette option améliore les performances mais a un coût au niveau de l'intégrité des données (données corrompues ou perdues) en cas de redémarrage non-propre (par exemple en cas de crash système). | ||
* **sync** : est le contraire de ''async''. Le serveur NFS respecte le protocole NFS. | * **sync** : est le contraire de ''async''. Le serveur NFS respecte le protocole NFS. | ||
Ligne 106: | Ligne 118: | ||
/media/NFS 192.168.0.0/24(rw,all_squash,anonuid=1000,anongid=1000,sync,no_subtree_check) | /media/NFS 192.168.0.0/24(rw,all_squash,anonuid=1000,anongid=1000,sync,no_subtree_check) | ||
- | <note>Si vous obtenez l'erreur suivante au montage : **mount.nfs4: access denied by server while mounting**, vérifiez les droits d'accès au dossier partagé (le dossier est peut être en mode interdit pour "autres" ce qui le rend impossible à lire pour le serveur NFS)</note> | + | <note>Si vous obtenez l'erreur suivante au montage : **mount.nfs4: access denied by server while mounting**, vérifiez les droits d'accès au dossier partagé. Le dossier est peut être en mode interdit pour "autres" ce qui le rend impossible à lire pour le serveur NFS.</note> |
+ | |||
+ | <note tip>essayer aussi une codification plus simple<code bash>/media/NFS 192.168.0.24(rw,sync,no_subtree_check) | ||
+ | ou | ||
+ | /media/nfs 192.168.0.24(sync)</code></note> | ||
=== relancer le service === | === relancer le service === | ||
Ligne 115: | Ligne 131: | ||
Pour vérifier que l'export a bien eu lieu, taper sur le serveur NFS la commande : | Pour vérifier que l'export a bien eu lieu, taper sur le serveur NFS la commande : | ||
- | showmount -e | + | showmount -e |
+ | <note important>Si vous n'ajoutez pas l'adresse I.P. de votre machine, vous aurez cette réponse **clnt_create: RPC: Unable to receive** en version 22.04.1</note> | ||
Si l'export n'est pas effectif , il faut faire restart du service NFS mais attention cela peut interrompre les transferts en cours : | Si l'export n'est pas effectif , il faut faire restart du service NFS mais attention cela peut interrompre les transferts en cours : | ||
Ligne 122: | Ligne 139: | ||
=== Un peu de sécurité avec TCPwrapper === | === Un peu de sécurité avec TCPwrapper === | ||
- | Pas indispensable si vous avez un bon firewall entre internet et votre réseau local, NFS peut être protégé par le serveur le cas échéant. (testez tout d'abord votre configuration sans protection pour voir si tout fonctionne si vous comptez utiliser ce genre de protection dans le futur) | + | Pas indispensable si vous avez un bon firewall entre internet et votre réseau local, NFS peut être protégé par le serveur le cas échéant. Testez tout d'abord votre configuration sans protection pour voir si tout fonctionne si vous comptez utiliser ce genre de protection dans le futur. |
Si vous utilisez [[:denyhosts|denyhosts]] sur le serveur, il vous faudra ajouter les lignes suivantes dans le fichier /etc/hosts.allow : | Si vous utilisez [[:denyhosts|denyhosts]] sur le serveur, il vous faudra ajouter les lignes suivantes dans le fichier /etc/hosts.allow : | ||
Ligne 141: | Ligne 158: | ||
mountd:ALL | mountd:ALL | ||
</file> | </file> | ||
+ | |||
+ | === mise en veille === | ||
+ | |||
+ | Si vous mettez en veille votre serveur NFS ou si il se met en veille automatique après un certain délai pour économiser l'énergie, alors vos clients NFS qui utilisent les partitions exportées seront "bloqués". | ||
+ | Par exemple si un client NFS se met en veille, lors du réveil, après saisie du mot de passe dans l'écran de session, vous serez "bloqué" et aurez bien du mal à reprendre la main. | ||
+ | Pour éviter cet effet de bord, je vous conseille de ne pas utiliser la mise en veille automatique sur votre serveur NFS (celui qui exporte les partitions) mais seulement l'économie d'énergie de l'écran (sans effet sur les partitions). | ||
+ | |||
+ | |||
+ | |||
==== Exemples concrets ==== | ==== Exemples concrets ==== | ||
Ligne 176: | Ligne 202: | ||
sudo mkdir /media/NFS | sudo mkdir /media/NFS | ||
| | ||
- | Vous pouvez bien entendu créer un répertoire du nom de votre choix; dans ce cas adaptez les instructions suivantes au besoin. | + | Vous pouvez bien entendu créer un répertoire du nom de votre choix; dans ce cas adaptez les instructions suivantes au besoin. |
Pour ce faire, il suffit de [[:tutoriel:comment_modifier_un_fichier|modifier le fichier]] **/etc/fstab** pour y ajouter la ligne: | Pour ce faire, il suffit de [[:tutoriel:comment_modifier_un_fichier|modifier le fichier]] **/etc/fstab** pour y ajouter la ligne: | ||
<file> | <file> | ||
- | 192.168.0.10:/<Dossier_à_partager>/ /media/NFS nfs defaults,user,auto,noatime,bg 0 0 | + | 192.168.0.10:/<Dossier_à_partager>/ /media/NFS nfs defaults,user,auto,_netdev,bg 0 0 |
</file> | </file> | ||
* **192.168.0.10** étant l'IP de votre serveur | * **192.168.0.10** étant l'IP de votre serveur | ||
* **<Dossier_à_partager>** étant le dossier sur votre serveur que vous voulez recevoir (doit correspondre à celui que le serveur veut envoyer) | * **<Dossier_à_partager>** étant le dossier sur votre serveur que vous voulez recevoir (doit correspondre à celui que le serveur veut envoyer) | ||
- | * **/media/NFS** On précise le point de montage (dossier que vous avez créé juste avant dans lequel vous souhaitez monter le partage NFS) | + | * **/media/NFS** On précise le point de montage (dossier que vous avez créé juste avant dans lequel vous souhaitez monter le partage NFS). |
* **nfs** On précise le protocole utilisé. | * **nfs** On précise le protocole utilisé. | ||
- | * **defaults,user,auto,noatime,bg** sont des options de montage, vous pouvez ajouter **,ro** à la fin pour ne pas autoriser l'écriture. | + | * **defaults,user,auto,_netdev** sont décrite dans [[:mount_fstab#utilisation_avancee|fstab]], vous pouvez ajouter **ro** à la fin pour ne pas autoriser l'écriture. |
+ | * **atime/noatime, diratime/nodiratime, relatime/norelatime, strictatime/nostrictatime mount** n'as pas d'effet pour un montage nfs | ||
+ | * **bg** permet de ne pas bloquer le démarrage du client si le serveur n'est pas opérationnel. | ||
* **0 0** dit à Linux de ne pas vérifier si le disque contient des erreurs (le serveur s'en occupera) | * **0 0** dit à Linux de ne pas vérifier si le disque contient des erreurs (le serveur s'en occupera) | ||
+ | |||
+ | <note important>Avec un **client en version 22.04**, ce paramètre **0 0** n'est plus supporté et sa présences provoque un émergency mode. Il en est de même si le serveur est [[https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/1972099|inaccessible]].</note> | ||
+ | |||
+ | <note important>Avec un **serveur en version 22.04 et un client plus ancien**, il faut ajouter **vers=4.0** dans les options de montage nfs [[https://ubuntuforums.org/showthread.php?t=2474184&s=cfa4d39d1435ab8a82f5edecaaf0ef04&p=14092329#post14092329]]</note> | ||
<note idée>**Optimisation possible:** \\ | <note idée>**Optimisation possible:** \\ | ||
Ligne 201: | Ligne 233: | ||
* **[[:autofs#nfs|Autofs]]** : Logiciel pour monter facilement votre partage NFS. | * **[[:autofs#nfs|Autofs]]** : Logiciel pour monter facilement votre partage NFS. | ||
+ | |||
+ | |||
+ | Se servir d'AutoFS a de grands avantages quand à la gestion d'un partage NFS pour un client qui peut être déplacé vers un autre réseau, comme un ordinateur portable. Des problèmes d'instabilité peuvent survenir quand le NFS est en montage automatique comme avec les indications ci-dessus. Et s'il n'est pas automatique alors cela nécessite de monter manuellement le partage quand on rejoint à nouveau le réseau local. Auto-FS permet très simplement de définir le montage automatique quand on accède aux dossiers correspondant au partage. | ||
+ | |||
+ | La première étape est d'installer autofs comme indiqué dans la page dédiée sous le lien plus haut. | ||
+ | |||
+ | Il y a plusieurs méthodes pour ajouter un partage NFS, mais celle qui offre le plus de souplesse est d'utiliser l'option hosts. Voici la ligne [[:tutoriel:comment_modifier_un_fichier|à ajouter en bas du fichier /etc/auto.master]] | ||
+ | <file> | ||
+ | /net -hosts -fstype=nfs4,rw | ||
+ | </file> | ||
+ | Redémarrez le service Autofs | ||
+ | <code> | ||
+ | sudo service autofs restart | ||
+ | </code> | ||
+ | Et c'est tout ! | ||
+ | |||
+ | Ou presque, vous venez de définir que le dossier /net à la racine du système est un portail pour accéder à n'importe quel partage accessible. La configuration de ce partage n'est plus déterminée que par le chemin d'accès. | ||
+ | Voici des exemples avec le serveur <serveur>.local et le partage /<Dossier à partager>, vous n'avez qu'à accéder à : | ||
+ | <code> | ||
+ | /net/<serveur>.local/<Dossier à partager>/ | ||
+ | </code> | ||
+ | Pour vous simplifier la vie, ou si vous aviez déjà configuré préalablement le montage sur un dossier comme /media/NFS, il vous suffit de remplacer le dossier /media/NFS par un lien symbolique : | ||
+ | <code> | ||
+ | sudo umount /media/NFS # Démontage du partage existant si besoin | ||
+ | sudo rmdir /media/NFS # Suppression du point de montage si existant | ||
+ | sudo ln -s /net/<serveur>.local/<Dossier à partager> /media/NFS # Création du lien symbolique | ||
+ | </code> | ||
+ | Ainsi vos anciens raccourcis ne seront pas perturbés. | ||
==== Windows ==== | ==== Windows ==== | ||
* **[[:tutoriel:nfs_client_windows|Comment configurer un PC client Windows pour accéder à un partage NFS]]** : Tutoriel pour accéder au partage NFS depuis un client Windows à l'aide de Windows Services for Unix (SFU). | * **[[:tutoriel:nfs_client_windows|Comment configurer un PC client Windows pour accéder à un partage NFS]]** : Tutoriel pour accéder au partage NFS depuis un client Windows à l'aide de Windows Services for Unix (SFU). | ||
+ | |||
===== Firewall (Pare-feu) et NFS ===== | ===== Firewall (Pare-feu) et NFS ===== | ||
Ligne 210: | Ligne 271: | ||
Sachez qu'un firewall ne vous servira à rien si vous êtes (comme ce tutoriel l'exige **très important**) derrière un routeur. \\ | Sachez qu'un firewall ne vous servira à rien si vous êtes (comme ce tutoriel l'exige **très important**) derrière un routeur. \\ | ||
Si vous faites un partage de connexion via [[:Network-Manager]] un routage sera en place automatiquement, les ordinateurs dans le partage n'ont donc rien à craindre. \\ | Si vous faites un partage de connexion via [[:Network-Manager]] un routage sera en place automatiquement, les ordinateurs dans le partage n'ont donc rien à craindre. \\ | ||
- | Si vous utilisez un pare-feu entre le modem et le PC qui partage la connexion internet, n'ouvrez surtout pas le port NFS vers le modem ! Il faut l'ouvrir dans le sens inverse, c'est-à-dire vers le partage de connexion ! Ne vous trompez pas !\\ | + | Si vous utilisez un pare-feu entre le modem et le PC qui partage la connexion internet, n'ouvrez surtout pas le port NFS vers le modem ! Il faut l'ouvrir dans le sens inverse, c'est-à-dire vers le partage de connexion ! Ne vous trompez pas ! |
Le seul intérêt d'un pare-feu dans ce cas précis est seulement si vous avez un nombre très important de postes informatiques chez vous et que ces postes risquent d'être utilisés par des personnes malveillantes. | Le seul intérêt d'un pare-feu dans ce cas précis est seulement si vous avez un nombre très important de postes informatiques chez vous et que ces postes risquent d'être utilisés par des personnes malveillantes. | ||
Si vous utilisez tout de même un pare-feu sur vos serveurs et/ou clients NFS, il vous faudra le configurer pour ne pas filtrer NFS et donc pouvoir y accéder : | Si vous utilisez tout de même un pare-feu sur vos serveurs et/ou clients NFS, il vous faudra le configurer pour ne pas filtrer NFS et donc pouvoir y accéder : | ||
- | * **[[nfs-ufw|partage NFS et Firewall (UFW )]]** : Comment fixer les ports utilisés lors d'un partage NFS (firewalling, routage..) . | + | * **[[nfs-ufw|partage NFS et Firewall (UFW )]]** : Comment fixer les ports utilisés lors d'un partage NFS (firewalling, routage, ...). |
===== Résoudre les problèmes ===== | ===== Résoudre les problèmes ===== | ||
Ligne 231: | Ligne 292: | ||
=== Côté client === | === Côté client === | ||
Ajoutez **,vers=3** aux options de montage dans le fichier fichier **/etc/fstab** | Ajoutez **,vers=3** aux options de montage dans le fichier fichier **/etc/fstab** | ||
+ | comme ceci : | ||
+ | <file> | ||
+ | 192.168.0.10:/<Dossier_à_partager>/ /media/NFS nfs defaults,user,auto,noatime,bg,vers=3 0 0 | ||
+ | </file> | ||
Utilisez ''nfsstat'' pour vérifier que la modification à été prise en compte. | Utilisez ''nfsstat'' pour vérifier que la modification à été prise en compte. | ||
Ligne 267: | Ligne 332: | ||
* http://nfs.sourceforge.net/ | * http://nfs.sourceforge.net/ | ||
- | * [[http://kodi.wiki/view/NFS|Configurer NFS pour KODI]] | + | * [[https://kodi.wiki/view/NFS|Configurer NFS pour KODI]] |
{{backlinks>nfs}} | {{backlinks>nfs}} |