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系统使用者。


数据运维技术 » Linux修改hosts不起作用的解决方法 (linux 修改hosts不生效)