#What should I do if modifying the hosts file in Linux fails?
1. Linux often fails to take effect after modifying the hostName of the local alias /etc/hosts. Solution
Linux modifies the hostName of the local alias /etc/hosts It often does not take effect.
For example, the content of our /etc/hosts is as follows:
#192.68.1.10 message.xxx.com
192.68.1.11 message.xxx.com
Copy after login
But ping message.xxx.com still points to 192.68.1.10.
Related recommendations: "linux tutorial"
## Generally there are 2 solutions:
1). Restart, this is the most direct, reliable and stable method. If it is sometimes inconvenient to restart, you can use the second method.
2). Modify the /etc/sysconfig/network file and change HOSTNAME to the corresponding alias, as follows:
NETWORKING=yes
HOSTNAME=host1
Copy after login
Restart the network service after modification
service network restart (本质是/etc/init.d/network)
Copy after login
3). If it still doesn't work after restarting the server, it may be caused by the local DNS cache.
Check whether nscd is enabled: ps -ef|grep nscd
Directly turn off the Linux nscd cache service:
/etc/init.d/nscd stop
Copy after login
2. Linux DNS
Linux itself does not have dns cache. If you want to use dns cache, you need to install a service program NSCD (name service cache daemon).
nscd caches three services passwd group hosts, so it will record Three libraries correspond to the sources /etc/passwd, /etc/hosts and /etc/resolv.conf. Each library saves two caches, one for records found and one for records not found. Each cache saves a time to live (TTL).
Installation:
yum install nscd
Copy after login
Modify the configuration file /etc/nscd.conf, enable dns caching, and modify this line
enable-cache hosts yes
Copy after login
If the nscd service is enabled, there will be dns cache, otherwise there will be no dns cache.
Start, stop, and restart the service
service nscd start | stop | restart
Copy after login
nscd configuration:
You can enable the local DNS cache by editing the /etc/nscd.conf file and adding the following line:
enable-cache hosts yes
The configuration on the Alibaba Cloud host is as follows:
[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
Copy after login
The explanation of relevant parameters is as follows:
logfile debug-file-name : Specify the file name to which debugging information is written.
debug-level value: Set the desired debugging level.
threads number: This is the number of threads started waiting for requests. A minimum of 5 threads will be created.
server-user user: If this option is set, nscd will run as this user, not as root. If each user uses a separate cache (-S parameter), this option will be ignored
enable-cache service
: Enable or disable the specified service cache. positive-time-to-live service value: Set the TTL (time to live) of the service's positive items (successful requests) in the specified cache. Value is in seconds. Larger values will increase the cache hit rate and thus reduce the average response time, but will increase cache consistency issues. negative-time-to-live service value: Set the TTL (time to live) of negative items (failed requests) in the specified cache. Value is in seconds. Performance will be significantly improved if there are files owned by uids that are not in the system database (such as when unpacking Linux kernel sources as root); the value should be kept small to reduce cache consistency issues. suggested-size service value: This is the size of the internal hash table, value should remain a prime number for optimization. check-files service : Enable or disable checking for changes in files belonging to the specified service. These files are /etc/passwd, /etc/group, and /etc/hosts. Viewing and clearing nscdnscd cache DB files are under /var/db/nscd. nscd -g 查看统计信息
Copy after login
Clear the nscd cache: nscd -i passwd
nscd -i group
nscd -i hosts
Copy after login
Of course, delete the cache library or stop the nscd service first: rm -f /var/db/nscd/hosts
service nscd restart
Copy after login
Or directly stop the nscd service service nscd stop. The above is the detailed content of What to do if modifying the hosts file in Linux is invalid. For more information, please follow other related articles on the PHP Chinese website!