У меня были проблемы с этим какое-то время, и я попробовал все, что знаю, поэтому решил, что пришло время обратиться за помощью.
Любое редактирование, которое я делаю в /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
(этого не существует), он должен загружаться из [ 1117] 192.168.1.100
.
Если я пингуюсь, все работает отлично. Однако когда я захожу на dev.julianfernand.es
с помощью Google Chrome или Firefox, это не так.
Я просто не могу перезагрузить компьютер. Это совсем не продуктивно. Перезапуск сетевой службы не работает, также как и для очистки кэша (даже внутреннего DNS-кэша Chrome).
1112 У кого-нибудь есть идея? Это происходит с элементарной ОС (на основе Ubuntu 12.04) и Ubuntu 13.10 (ежедневно). Еще не пробовал ни с какой другой версией.
PS: если это так, у меня на этом компьютере работает сервер NGINX с PHP-FPM и MySQL.
Заранее спасибо :))
Принятый ответ работает с 12.04 по 13.04 путем отключения dnsmasq
, но он перестал работать для меня в 13.10. Я нашел следующее новое решение для 13.10.
Отредактируйте ваш / etc / default / dnsmasq, измените ENABLED=1
на ENABLED=0
и перезапустите.
Проверьте права доступа к файлу /etc/hosts
.
В моем облачном сервисе после клонирования сервера права доступа к файлу хостов изменились с 644
на 600
, так что файл не может быть прочитан apache (www-data
). Я запустил sudo chmod 644 hosts
из /etc
, и это исправило это.
Проблема возникла так:
MongoConnectionException Failed to connect to: localhost:27017: Previous connection attempts failed, server blacklisted.
Я отследил ее до переменной сервера в MongoClient, указывающей на localhost. Мне не удалось пропинговать localhost или имя хоста.
От: 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. нетто / Ubuntu / + исходный / сетевой менеджер / + ошибка / 993298
Для меня решение было отредактировать файл /etc/nsswitch.conf
(вы можете использовать команду sudo vim /etc/nsswitch.conf
). Я изменил строку:
hosts: files mdns4_minimal [NOTFOUND=return] dns
на:
hosts: dns files mdns4_minimal [NOTFOUND=return]
и теперь он работает, как и ожидалось!
files
как первая запись, если Вы хотите /etc/hosts
иметь приоритет по результатам серверов DNS.
– Ashokan Sivapragasam
10.04.2020, 23:30
В Ubuntu, если вы хотите очистить кэш DNS, вам нужно перезапустить демон nscd
.
Установите nscd
, используя следующую команду:
sudo apt-get install nscd
Очистите кэш DNS в Ubuntu, используя следующую команду:
sudo service nscd restart
ИЛИ
sudo service dns-clean start
Ссылка: http://www.upubuntu.com/2012/05/how-to-flush-clear-dns-cache-under.html
Следующее работало для меня: добавить
addn-hosts=/etc/hosts
в
/etc/NetworkManager/dnsmasq.d/hosts.conf
kill dnsmasq и
service NetworkManager restart