Was soll ich tun, wenn Linux die Hosts-Datei nicht ändern kann?
1. Linux wird oft nicht wirksam, nachdem der Hostname des lokalen Alias /etc/hosts geändert wurde
Linux ändert den Hostnamen des lokalen Alias / etc/hosts Es wird oft nicht wirksam.
Der Inhalt unserer /etc/hosts lautet beispielsweise wie folgt:
#192.68.1.10 message.xxx.com 192.68.1.11 message.xxx.com
Aber ping message.xxx.com zeigt immer noch auf 192,68. 1.10.
Verwandte Empfehlungen: „Linux-Tutorial“
Im Allgemeinen gibt es 2 Lösungen:
1). Neustart, dies ist die direkteste, zuverlässigste und stabilste Methode. Wenn ein Neustart manchmal umständlich ist, können Sie die zweite Methode verwenden.
2). Ändern Sie die Datei /etc/sysconfig/network und ändern Sie HOSTNAME wie folgt in den entsprechenden Alias:
NETWORKING=yes HOSTNAME=host1
Starten Sie den Netzwerkdienst nach der Änderung neu
service network restart (本质是/etc/init.d/network)
3 ). Wenn es nach dem Neustart des Servers immer noch nicht funktioniert, kann es am lokalen DNS-Cache liegen.
Überprüfen Sie, ob nscd aktiviert ist: ps -ef|grep nscd
Deaktivieren Sie den Linux-nscd-Cache-Dienst direkt:
/etc/init.d/nscd stop
2. Linux DNS
Linux selbst hat keinen DNS-Cache. Wenn Sie den DNS-Cache verwenden möchten, müssen Sie ein Dienstprogramm NSCD (Name Service Cache Daemon) installieren.
nscd speichert drei Dienste passwd-Gruppenhosts zwischen Es werden also drei Bibliotheken aufgezeichnet, die den Quellen /etc/passwd, /etc/hosts und /etc/resolv.conf entsprechen. Jede Bibliothek speichert zwei Caches, einen für gefundene Datensätze und einen für nicht gefundene Datensätze. Jeder Cache hat eine Lebenszeit (TTL).
Installation:
yum install nscd
Ändern Sie die Konfigurationsdatei /etc/nscd.conf, aktivieren Sie DNS-Caching und ändern Sie diese Zeile
enable-cache hosts yes
Wenn der NSCD-Dienst aktiviert ist, gibt es einen DNS-Cache, andernfalls gibt es keinen DNS-Cache.
Dienst starten, stoppen und neu starten
service nscd start | stop | restart
nscd-Konfiguration:
Sie können den lokalen DNS-Cache aktivieren, indem Sie die Datei /etc/nscd.conf bearbeiten und hinzufügen Folgende Zeile:
enable-cache hosts ja
Die Konfiguration auf dem Alibaba Cloud-Host ist wie folgt:
[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
Die Erklärung relevanter Parameter lautet wie folgt:
logfile debug-file-name: Geben Sie den Dateinamen an, in den Debugging-Informationen geschrieben werden.
Debug-Level-Wert: Legen Sie den gewünschten Debug-Level fest.
Threads-Anzahl: Dies ist die Anzahl der Threads, die gestartet wurden und auf Anfragen warten. Es werden mindestens 5 Threads erstellt.
Server-Benutzer-Benutzer: Wenn diese Option gesetzt ist, wird nscd als dieser Benutzer und nicht als Root ausgeführt. Wenn jeder Benutzer einen separaten Cache verwendet (-S-Parameter), wird diese Option ignoriert.
enable-cache service
Positive-Time-to-Live-Dienstwert: Legen Sie die TTL (Time-to-Live) der positiven Elemente des Dienstes (erfolgreiche Anforderungen) im angegebenen Cache fest. Der Wert wird in Sekunden angegeben. Größere Werte erhöhen die Cache-Trefferrate und verkürzen somit die durchschnittliche Antwortzeit, erhöhen jedoch die Probleme mit der Cache-Konsistenz.
Negative-Time-to-Live-Dienstwert: Legen Sie die TTL (Time-to-Live) negativer Elemente (fehlgeschlagene Anforderungen) im angegebenen Cache fest. Der Wert wird in Sekunden angegeben. Die Leistung wird erheblich verbessert, wenn Dateien im Besitz von UIDs sind, die sich nicht in der Systemdatenbank befinden (z. B. beim Entpacken von Linux-Kernel-Quellen als Root). Der Wert sollte klein gehalten werden, um Probleme mit der Cache-Konsistenz zu reduzieren.
Vorgeschlagener Dienstwert für die Größe: Dies ist die Größe der internen Hash-Tabelle. Der Wert sollte zur Optimierung eine Primzahl bleiben.
Check-Files-Dienst
nscd anzeigen und löschen
nscd-Cache-DB-Datei befindet sich unter /var/db/nscd.
nscd -g 查看统计信息
Leeren Sie den NSCD-Cache:
nscd -i passwd nscd -i group nscd -i hosts
Löschen Sie natürlich zuerst die Cache-Bibliothek oder stoppen Sie den NSCD-Dienst:
rm -f /var/db/nscd/hosts service nscd restart
Oder stoppen Sie direkt den NSCD-Dienst.
Das obige ist der detaillierte Inhalt vonWas tun, wenn das Ändern der Hosts-Datei unter Linux ungültig ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!