Que dois-je faire si Linux ne parvient pas à modifier le fichier hosts ?
1. Linux ne parvient souvent pas à prendre effet après avoir modifié le nom d'hôte de l'alias local /etc/hosts
Linux modifie le nom d'hôte de l'alias local / etc/hosts Cela ne prend souvent pas effet.
Par exemple, le contenu de notre /etc/hosts est le suivant :
#192.68.1.10 message.xxx.com 192.68.1.11 message.xxx.com
Mais ping message.xxx.com pointe toujours vers 192.68. 1.10.
Recommandations associées : "Tutoriel Linux"
Généralement, il existe 2 solutions :
1). Redémarrer, c'est la méthode la plus directe, la plus fiable et la plus stable. S'il est parfois gênant de redémarrer, vous pouvez utiliser la deuxième méthode.
2). Modifiez le fichier /etc/sysconfig/network et remplacez HOSTNAME par l'alias correspondant, comme suit :
NETWORKING=yes HOSTNAME=host1
Redémarrez le service réseau après modification
service network restart (本质是/etc/init.d/network)
3. ). Si cela ne fonctionne toujours pas après le redémarrage du serveur, cela peut être dû au cache DNS local.
Vérifiez si nscd est activé : ps -ef|grep nscd
Désactivez directement le service de cache Linux nscd :
/etc/init.d/nscd stop
2.
Linux lui-même n'a pas de cache DNS. Si vous souhaitez utiliser le cache DNS, vous devez installer un programme de service NSCD (démon de cache de service de nom).nscd met en cache trois hôtes de groupe passwd de services. , il enregistrera donc Trois bibliothèques correspondent aux sources /etc/passwd, /etc/hosts et /etc/resolv.conf Chaque bibliothèque enregistre deux caches, un pour les enregistrements trouvés et un pour les enregistrements non trouvés. Chaque cache a un temps de vie (TTL). Installation :yum install nscd
enable-cache hosts yes
Démarrer, arrêter et redémarrer le service
service nscd start | stop | restart
Configuration nscd :
Vous pouvez activer le cache DNS local en éditant le fichier /etc/nscd.conf et en ajoutant le ligne suivante :
enable-cache hosts yes
La configuration sur l'hôte Alibaba Cloud est la suivante :
[root@iZ2571ykq ~]# cat /etc/nscd.conf #logfile /var/log/nscd.log threads 6 max-threads 128 server-user nscd debug-level 5 paranoia no enable-cache passwd no enable-cache group no enable-cache hosts yes positive-time-to-live hosts 5 negative-time-to-live hosts 20 suggested-size hosts 211 check-files hosts yes persistent hosts yes shared hosts yes max-db-size hosts 33554432
L'explication des paramètres pertinents est la suivante :
logfile debug-file-name : Spécifiez le nom du fichier dans lequel les informations de débogage sont écrites.
valeur du niveau de débogage : définissez le niveau de débogage souhaité.
nombre de threads : Il s'agit du nombre de threads lancés en attente de requêtes. Un minimum de 5 fils de discussion seront créés.
user-user user : si cette option est définie, nscd s'exécutera en tant qu'utilisateur, pas en tant que root. Si chaque utilisateur utilise un cache distinct (paramètre -S), cette option sera ignorée.
enable-cache service
valeur du service de durée de vie positive : définissez la durée de vie (durée de vie) des éléments positifs du service (demandes réussies) dans le cache spécifié. La valeur est en secondes. Des valeurs plus élevées augmenteront le taux de réussite du cache et réduiront ainsi le temps de réponse moyen, mais augmenteront les problèmes de cohérence du cache.
valeur du service de durée de vie négative : définissez la durée de vie (durée de vie) des éléments négatifs (requêtes ayant échoué) dans le cache spécifié. La valeur est en secondes. Les performances seront considérablement améliorées s'il existe des fichiers appartenant à des UID qui ne sont pas dans la base de données système (comme lors de la décompression des sources du noyau Linux en tant que root) ; la valeur doit rester petite pour réduire les problèmes de cohérence du cache.
valeur de service de taille suggérée : il s'agit de la taille de la table de hachage interne, la valeur doit rester un nombre premier pour l'optimisation.
service de vérification des fichiers
Afficher et effacer nscd
Le fichier de base de données du cache nscd se trouve sous /var/db/nscd.
nscd -g 查看统计信息
Vider le cache nscd :
nscd -i passwd nscd -i group nscd -i hosts
Bien sûr, supprimez la bibliothèque de cache ou arrêtez d'abord le service nscd :
rm -f /var/db/nscd/hosts service nscd restart
Ou arrêtez directement le service nscd service nscd stop.
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!