我遇到了一种奇怪的情况,我正在清空我的 hosts 文件,但是当我 ping 曾经在 hosts 文件中有一个条目的东西时,hosts 文件就会被我刚刚删除的条目填充。
这些条目特定于网络上的各个服务器,因此它们不仅仅是随机的 IP 地址。但是,由于某些 IP 地址已更改,因此这些条目不再有效,但我不能直接删除它们并依赖网络上的内部 DNS。
什么可以更新 hosts 文件?
编辑:因此看起来,运行ipconfig /flushdns
就是将条目添加回来的过程。我以前没有遇到过这种情况。
编辑2:应该早点指出,这是在 Windows 框上
编辑3:看起来是 svchost.exe 在干这事。请看以下屏幕截图:
答案1
Windows Security Essentials 和其他防病毒软件将使固定您的 hosts 文件。包括删除您尝试阻止的广告服务器的引用。并以您的文本编辑器是恶意软件为由撤销更改。不到一小时前在 Windows 8 中发生过这种情况。
答案2
它可以是任何具有 root 访问权限的进程。您可以编写一个小脚本,定期检查哪些文件正在使用 /etc/hosts 文件:
#!/bin/bash
while true
do
fuser /etc/hosts >> /tmp/hosts_monitoring
sleep 0.1
done
运行几分钟并检查/tmp/hosts_monitoring
。它会告诉您哪个进程 id 已写入文件。
答案3
您需要下载类似 Process Monitor 的程序
然后你就可以看到正在访问该文件的内容
Process Monitor 是一款适用于 Windows 的高级监控工具,可显示实时文件系统、注册表和进程/线程活动。它结合了两个旧版 Sysinternals 实用程序 Filemon 和 Regmon 的功能,并添加了一系列增强功能,包括丰富且无损的过滤、全面的事件属性(如会话 ID 和用户名)、可靠的进程信息、完整的线程堆栈(每个操作均带有集成符号支持)、同时记录到文件等。其独特而强大的功能将使 Process Monitor 成为系统故障排除和恶意软件搜寻工具包中的核心实用程序。
http://technet.microsoft.com/en-gb/sysinternals/bb896645.aspx