我遇到这个问题已经有一段时间了,尝试了我所知道的所有方法,所以我想是时候寻求帮助了。
我所做的任何编辑/etc/hosts
都不起作用。
例子:
julian@ifrit:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ifrit
192.168.1.100 dev.julianfernand.es
在上面的例子中,当我访问dev.julianfernand.es
(不存在),它应该从192.168.1.100
。
如果我 ping 的话,它工作正常。但是当我访问dev.julianfernand.es
使用 Google Chrome 或 Firefox,则不行。
现在,我重启几次后,它就可以正常工作了。但由于我在一家托管 WordPress 托管公司工作,所以我经常遇到需要编辑文件才能在我们的服务器上查看客户网站的情况。
我就是不能一直重启电脑。这根本没什么用。重启网络服务不管用,清除缓存(甚至是内部 Chrome DNS 缓存)也不管用。
有人知道吗?这种情况发生在 elementaryOS(基于 Ubuntu 12.04)和 Ubuntu 13.10(每日)。尚未尝试过任何其他版本。
附言:如果这很重要,我在这台机器上有一个运行 PHP-FPM 和 MySQL 的 NGINX 服务器。
提前致谢 :)
答案1
在 Ubuntu 中如果您想刷新 DNS 缓存,则需要重新启动nscd
守护进程。
nscd
使用以下命令安装:
sudo apt-get install nscd
使用以下命令在 Ubuntu 中刷新 DNS 缓存:
sudo service nscd restart
或者
sudo service dns-clean start
参考:http://www.upubuntu.com/2012/05/how-to-flush-clear-dns-cache-under.html
答案2
对于我来说,解决方案是编辑/etc/nsswitch.conf
文件(您可以使用命令sudo vim /etc/nsswitch.conf
)。我更改了以下行:
hosts: files mdns4_minimal [NOTFOUND=return] dns
到:
hosts: dns files mdns4_minimal [NOTFOUND=return]
现在它已按预期运行!
答案3
以下对我有用:添加
addn-hosts=/etc/hosts
在
/etc/NetworkManager/dnsmasq.d/hosts.conf
终止 dnsmasq 并
service NetworkManager restart
答案4
从:http://blog.calebthorne.com/2012/08/broken-etchosts-in-ubuntu-1204.html
Ubuntu 12.04 桌面版的一个新“功能”是用作dnsmasq
NetworkManager 的插件来处理本地 DNS。Dnsmasq 旨在加速 DNS 和 DHCP 服务,但它有一个令人不快的副作用:dnsmasq
缓存本地 DNS 并忽略对 的更改/etc/hosts
。我在网站上工作时经常更改 hosts 文件,因此这个“功能”非常烦人。
dnsmasq
解决方案是在 Networkmanager 配置文件中禁用。打开/etc/NetworkManager/NetworkManager.conf
并注释掉以下行:
dns=dnsmasq
我的NetworkManager.conf
文件包含以下内容:
[main]
plugins=ifupdown,keyfile
# dns=dnsmasq
[ifupdown]
managed=false
也可以看看https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/993298