Linux修改hosts不起作用的解决方法 (linux 修改hosts不生效)
在Linux系统下,修改hosts文件可以用来解决网络问题、提高访问速度等。但是有时候修改完hosts文件后,却发现无法起作用。这可能会让用户感到困扰。在这篇文章中,我们将会讲解Linux修改hosts文件不起作用的解决方法,帮助用户顺利解决这个问题。
之一步:检查hosts文件格式是否正确
hosts文件的格式应为IP地址和域名一一对应的形式,并以空格或者制表符分开。如果格式错误,hosts文件将不能被正确解析。可以通过以下命令检查hosts文件格式是否正确:
“`
sudo nano /etc/hosts
“`
在打开的hosts文件中,每行都应该对应一个IP地址和域名的组合。确保每行都以IP地址开始,以域名或者主机名结束。如果发现格式错误,可以根据上述规则更正hosts文件中的条目。保存并关闭文件后,运行以下命令以重新加载hosts文件:
“`
sudo /etc/init.d/networking restart
“`
第二步:清除DNS缓存
如果hosts文件的格式正确,但修改后仍然无法起作用,这可能是因为DNS缓存的问题。在Linux系统下,DNS缓存记录了之前的DNS查询结果,如果hosts中的条目与缓存不一致,系统就会忽略hosts文件的内容。清除DNS缓存可以尝试解决这个问题。可以通过以下命令清除DNS缓存:
“`
sudo /etc/init.d/nscd restart
sudo /etc/init.d/dnasq restart
sudo /etc/init.d/networking force-reload
“`
重启nscd、dnasq和networking等网络服务,可以清除DNS缓存,让系统重新读取hosts文件,并重新解析IP地址。如果这些服务不存在于系统中,可以安装以下命令,然后尝试重新启动:
“`
sudo apt-get install nscd dnasq
sudo service networking restart
“`
另外,清除系统DNS缓存也可以通过以下命令来实现:
“`
sudo systemd-resolve –flush-caches
“`
第三步:编辑nsswitch.conf文件
如果上述方法仍然不能解决修改hosts文件不起作用的问题,那么就需要编辑nsswitch.conf文件。hosts条目在nsswitch.conf文件中的位置影响其是否被解析。打开nsswitch.conf文件:
“`
sudo nano /etc/nsswitch.conf
“`
在文件中查找如下行:
“`
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
“`
将其改为:
“`
hosts: files dns
“`
然后保存并关闭文件。再次运行以下命令,以重新加载hosts文件:
“`
sudo /etc/init.d/networking restart
“`
重新加载网络服务后,hosts文件应该已经起作用,这个问题也应该得到了解决。
在Linux系统下,修改hosts文件不起作用的问题可能会让用户感到头疼。主要原因可能是格式错误、DNS缓存、nsswitch.conf文件设置不当等。但只要按照上述方法逐步解决,这个问题很快就能得到解决。我们希望这篇文章能够帮助到那些Linux系统使用者。