Maison >Opération et maintenance >exploitation et maintenance Linux >Quelle est la méthode d'installation et de configuration de NFS sous Linux ?
1, Logiciel côté serveur : Installez nfs-utils et portmap (rpcbind)
nfs-utils : Fournit des packages pour les deux démons nfs, rpc.nfsd et rpc. mountd
portmap : nfs peut en fait être considéré comme un programme serveur rpc. Pour démarrer un programme serveur rpc, vous devez effectuer le travail de port correspondant, et ces tâches sont effectuées par portmap. En termes simples, portmap est utilisé pour le mappage des ports.
démons nfs qui doivent être démarrés
pc.nfsd : détection principalement complexe des autorisations de connexion et autres exigences nécessaires
#🎜 🎜##🎜 🎜#Séquence de démarrage du démon : rpc.portmap, rpc.mountd, rpc.nfsd, rpc.statd, rpc.lockd (le nouveau la version démarrera automatiquement avec nfsd), rpc.rquotad
• miam installez nfs-utils portmap#🎜🎜 #•chkconfig rpcbind sur #chkconfig : mettre à jour et interroger les services système à chaque niveau d'exécution •chkconfig nfs on•service rpcbind start
•service nfs start
2 , Fichier de configuration côté serveur/etc/exports : Spécifiez le répertoire et les autorisations à partager man exports
Copier le code Le code est le suivant :
# : Autoriser les ordinateurs avec des adresses IP dans la plage 192.168.0.* à accéder au répertoire /home/work avec des autorisations de lecture et d'écriture.
/home 192.168.1.105 (rw,sync)
/public * (rw,sync)
Chaque ligne du fichier de configuration est divisée en deux sections : la première section est le répertoire partagé, utilisant un chemin absolu, et la deuxième section est l'adresse et les autorisations du client.
L'adresse peut utiliser l'intégralité du segment IP ou réseau, comme 10.0.0.8 ou 10.0.0.0/24, 10.0.0.0/255.255.255.0. Bien entendu, l'adresse peut également utiliser le nom d'hôte, la résolution DNS et. résolution locale /etc/hosts. Tout est OK, les caractères génériques sont pris en charge, par exemple : *.chengyongxu.com
Les autorisations sont :
ro : lecture seule ; le fichier est écrit sur le disque dur et la mémoire en même temps ;
async : Le fichier est temporairement stocké dans la mémoire au lieu d'être écrit directement dans la mémoire
root_squash : Si le client nfs utilise root lors de la connexion au serveur, alors il dispose d'autorisations d'utilisateur anonyme pour le répertoire partagé par le serveur. Habituellement, il utilisera l'identité de personne ou de nfsnobody ;
all_squash : Non. quel que soit l'utilisateur utilisé lorsque le client nfs se connecte au serveur, il dispose d'autorisations d'utilisateur anonyme pour le répertoire partagé par le serveur ;
anonuid : la valeur uid de l'utilisateur anonyme, généralement personne ou nfsnobody, vous pouvez la personnaliser ici Paramètre ;
anongid : valeur gid de l'utilisateur anonyme.
Mappage des utilisateurs du client nfs :
L'utilisateur de connexion client est root ou d'autres utilisateurs, puis selon la configuration du serveur nfs côté serveur, le client correspondant la connexion est mappée sur Les utilisateurs sur le serveur nfs sont des utilisateurs root ou spécifiés (définis via anonuid ou anongid), nfsnobody, etc. Enfin, les autorisations de l'utilisateur de mappage et du répertoire partagé affectent conjointement si la connexion client dispose d'autorisations de lecture et d'écriture.
Définir manuellement le mappage des utilisateurs client et serveur, paramètres : map_static=/etc/nfs.map
/etc/nfs.map le contenu du mappage du fichier est le suivant :
uid 500 2003
Référence : Concernant la description de l'identité de l'utilisateur de la connexion client nfs, la description suivante n'a pas été vérifiée :
#🎜🎜 # • Lorsque le client se connecte, vérifiez les utilisateurs ordinaires, n°1 si l'identité compressée de l'utilisateur ordinaire est clairement définie, alors l'identité de l'utilisateur client est convertie en utilisateur désigné à ce moment, n°2 s'il y a un utilisateur avec le même nom sur le serveur nfs, alors l'identité du compte de connexion client est convertie en utilisateur avec le même nom sur le serveur nfs. Si le numéro 3 n'est pas explicitement spécifié et qu'il n'y a aucun utilisateur avec le même nom. , puis l'identité de l'utilisateur est compressée en nfsnobody
·Le client est connecté à Lors de la vérification de la racine, n°1 si no_root_squash est défini, alors l'identité de l'utilisateur root est compressée à la racine sur le serveur nfs, non .2 si all_squash, anonuid et anongid sont définis, alors l'identité de l'utilisateur root est compressée en l'utilisateur spécifié, n°3, si elle n'est pas explicitement spécifiée, l'utilisateur root sera compressé en nfsnobody à ce moment, n°4 , si no_root_squash et all_squash sont spécifiés en même temps, l'utilisateur sera compressé en nfsnobody, si anonuid et anongid sont définis, il sera compressé en l'utilisateur et le groupe spécifiés
3 , modification des paramètres du pare-feu
Spécifiez les ports liés au service nfs dans le fichier de configuration nfs /etc/sysconfig/nfs, et modifiez le pare-feu pour libérer les ports correspondants
Copier le code Le code est le suivant :
#port rpc.mountd devrait écouter
#mountd_port=892
#port rpc.statd devrait écouter. #tcp port rpc.lockd devrait écouter
#lockd_tcpport=32803
#udp port rpc.lockd devrait écouter
#lockd_udpport=32769
Modifier le fichier de configuration des tables ip /etc/sysconfig/iptables, ouvrez 111 ( portmap service port), 2049 (nfs service port)
4, /etc/hosts.allow modification de la configuration
Par défaut, il ne semble pas être nécessaire de le modifier, mais il est préférable de le configurer pour autoriser uniquement la machine client requise à se connecter, puis de refuser les connexions à partir d'autres machines
#Nom du processus de service : liste d'hôtes : opération de commande facultative lorsque la règle correspondserver_name :hosts-list[:command]Ajoutez des règles autorisant l'accès client dans /etc/hosts.allow
all:127.0.0.1 #Autoriser cette machine à accéder à tous les processus de service sur cette machineall:192.168 .0.135 #Autoriser 192.168. ip访问smbd服务
sshd:192.168.100.0/255.255.255.0 #允许192.168.100 .网段的ip访问sshd processus sur le serveur
sshd:60.28.160.244 ’ s s s s s s s d - sshd vers la boîte aux lettres de l'utilisateur
sshd:all #Ban all
5 , modifiez les autorisations du répertoire partagé en 760 et modifiez le répertoire de tous les groupes en nfsnobody
Référence : Question 7
6, montage client
showmount -e nfs-serverip : Visualisez les ressources partagées par le serveur nfs mount -t nfs 192.168.1.45:/home /mnt/nfs/home
•Selon la commande time dd if =/dev/zero of=/mnt/home bs=16k count=16384 pour définir des valeurs wsize et rsize raisonnables
•En fonction du nombre de clients nfs, définissez le nombre approprié de processus côté serveur nfs dans le / Fichier de configuration etc/sysconfig/nfs rpcnfsdcount, la valeur par défaut est 8
exportfs [-aruv] -a : monter tout ou démonter le contenu dans /etc/exports -r : remonter le partager dans /etc/exports Répertoire sortant -u : répertoire umount -v : Lors de l'exportation, affiche des informations détaillées à l'écran. Commande showmount : affiche les informations de montage du serveur nfs. showmount -e [nfs-server] : affiche le répertoire exporté sur le serveur nfs spécifié. Lorsque l'adresse IP suivante n'est pas spécifiée, le répertoire partagé en externe lorsque la machine est utilisée comme serveur nfs est affiché. .
Commande rpcinfo -p : afficher les informations rpc Paramètre -p : utiliser le protocole rpc pour détecter rpcbind utilisé sur l'hôte et afficher tous les programmes rpc enregistrés.Commande nfsstat : vérifiez l'état d'exécution de nfs, ce qui est très utile pour ajuster le fonctionnement de nfs
Résolution du problème pendant le processus :
1. Après avoir installé portmap via yum ou rpm, j'ai constaté que le service portmap. Une erreur de démarrage s'est produite lors de l'exécution de la commande service portmap start L'erreur suivante se produit : portmap : service non reconnu.
Dans centos6 (noyau Linux 2.6.32), portmap a été remplacé par rpcbind Si vous vérifiez attentivement les informations d'installation, vous constaterez que rpcbind est installé lorsque vous exécutez la commande yum install portmap. Une fois l'installation terminée, vous pouvez également afficher des informations détaillées via la commande : yum whatprovides portmap.
•1. Utilisez la commande rpcinfo -p pour vérifier le service portmap lorsqu'il démarre normalement et le port correspondant (par défaut 111) •2. Vérifiez les paramètres du pare-feu /etc/sysconfig/iptables, autorisez l'accès TCP, UDP au port 111. , puis le service iptables restart
•3, vérifiez /etc/hosts.deny, /etc/hosts.allow pour voir si la connexion client est bloquée
3 Lorsque le client exécute la commande showmount -e nfs-server, un. une erreur est signalée : mount clntudp_create : rpc : programme non enregistré.
Ou ajoutez des règles pour autoriser l'accès client dans /etc/hosts.allow all:192.168.0.135
4. Lorsque le client exécute la commande showmount -e nfs-server, une erreur est signalée : rpc mount export : rpc : impossible de recevoir ; errno = no route to host
Fichier de configuration : /etc/sysconfig/nfs
Trouvez le Port lié au service nfs Après avoir défini l'endroit et supprimé le commentaire, précisez dans les paramètres du pare-feu iptables pour autoriser le passage des flux udp et tcp du port correspondant.
#mountd_port=892
#statd_port=662
#lockd_tcpport=32803
#lockd_udpport=32769
iptables -a input -p tcp --dport 662 -m state --state new -j accept
iptables -a input -p udp --dport 661 -m state --state new -j accept
5, showmount -e nfs-server réussit et une erreur est signalée lorsque le montage formel est : montage : le montage sur le serveur nfs '192.168.1.5' a échoué : erreur système : pas de route vers l'hôte. En effet, le port par défaut 2049 du service nfs est bloqué par le pare-feu. Semblable à ce qui précède, modifiez iptables pour permettre au port 2049 de passer par
6, showmount -e nfs-server. réussit et une erreur se produit lorsque le montage officiel est signalé : montage : échec du montage sur le serveur nfs '192.168.1.5 : délai expiré (nouvelle tentative).
Lors de la modification de /etc/sysconfig/iptables, le port TCP du port concerné est autorisé à passer, mais l'UDP n'est pas autorisé. Pour d'autres raisons possibles, reportez-vous à : La commande de montage échoue avec une erreur d'échec du serveur nfs.
désactivez les demandes de recherche de nom du serveur nfs vers un serveur DNS
ou la version nfs utilisée par le client nfs est autre que la version 3.
7, exportations. fichier de configuration L'attribut d'autorisation du répertoire est défini sur rw (la valeur par défaut est root_squash), mais lors de l'exécution de la commande touch dans le répertoire de montage du client, un message d'erreur apparaît : touch : impossible de toucher `a' : autorisation refusée. Solution :
• Vérifiez les autorisations du répertoire partagé côté serveur ll -d /home
• Modifiez les autorisations du répertoire partagé côté serveur chown 760 /home (la racine du propriétaire du fichier a toutes les autorisations, tous les utilisateurs du groupe du fichier ont lu et autorisations d'écriture, et les autres utilisateurs n'ont aucune autorisation, puis définissez le groupe du répertoire sur nfsnobody)
•Modifiez le propriétaire du groupe d'autorisations du répertoire partagé côté serveur sur nfsnobody (cat /etc/passwd | grep nob)
•chgrp nfsnobody / accueil
•Créez avec succès un nouveau fichier sur le client !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!