Почему файл / etc / hosts не работает?

У меня были проблемы с этим какое-то время, и я попробовал все, что знаю, поэтому решил, что пришло время обратиться за помощью.

Любое редактирование, которое я делаю в /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, это не так.

1110 Теперь, после того, как я перезагружу пару раз, всё работает. Но поскольку я работаю в управляемой хостинговой компании WordPress, я сталкиваюсь со многими ситуациями, когда мне приходится редактировать свой файл, чтобы увидеть веб-сайт клиента на нашем сервере.

Я просто не могу перезагрузить компьютер. Это совсем не продуктивно. Перезапуск сетевой службы не работает, также как и для очистки кэша (даже внутреннего DNS-кэша Chrome).

1112 У кого-нибудь есть идея? Это происходит с элементарной ОС (на основе Ubuntu 12.04) и Ubuntu 13.10 (ежедневно). Еще не пробовал ни с какой другой версией.

PS: если это так, у меня на этом компьютере работает сервер NGINX с PHP-FPM и MySQL.

Заранее спасибо :))

28
задан 10.04.2020, 23:27

7 ответов

Принятый ответ работает с 12.04 по 13.04 путем отключения dnsmasq, но он перестал работать для меня в 13.10. Я нашел следующее новое решение для 13.10.

Отредактируйте ваш / etc / default / dnsmasq, измените ENABLED=1 на ENABLED=0 и перезапустите.

0
ответ дан 10.04.2020, 23:28
  • 1
    Больше нет никакого принятого ответа. О каком ответе Вы говорите? – VIBHOR GOYAL 10.04.2020, 23:28
  • 2
    у меня нет dnsmasq файла в указанном пути. Я нахожусь на linux 15.04 – Ashokan Sivapragasam 10.04.2020, 23:28

Проверьте права доступа к файлу /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 или имя хоста.

0
ответ дан 10.04.2020, 23:28
  • 1
    I' ve иногда имел успех, изменяющийся ' localhost' к ' 127.0.0.1' в этих видах случаев – Patches Joe 10.04.2020, 23:28

Простой и обновленный

  1. Создать /etc/NetworkManager/dnsmasq.d/hosts.conf.
  2. Поместите в него строки типа address=/whatever/1.2.3.4. См. документы (см. --address). Подстановочные знаки возможны: address/.whatever./1.2.3.4.
  3. Убить dnsmasq ( ошибка ).
  4. Перезапустите его: $ service network-manager restart.
0
ответ дан 10.04.2020, 23:28

От: 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

0
ответ дан 10.04.2020, 23:29
  • 1
    @JulianFernandes Это появляется этот doesn' t работают над 13,10. Я последовал этому совету, и он работал назад над 12,04, но после обновления до 13,10, dnsmasq вернулся и я can' t избавляются от него. – Maurits Evers 10.04.2020, 23:29
  • 2
  • 3
    Попробованный это на 13,10 и elementaryOS, тем не менее ничто. Но спасибо за справку!:) – Maurits Evers 10.04.2020, 23:30

Для меня решение было отредактировать файл /etc/nsswitch.conf (вы можете использовать команду sudo vim /etc/nsswitch.conf). Я изменил строку:

hosts:          files mdns4_minimal [NOTFOUND=return] dns

на:

hosts:          dns files mdns4_minimal [NOTFOUND=return]

и теперь он работает, как и ожидалось!

0
ответ дан 10.04.2020, 23:29
  • 1
    Это странно, но это не ошибка, у меня должен быть точно этот порядок заставить его работать. – Ashokan Sivapragasam 10.04.2020, 23:30
  • 2
    Вы, вероятно, хотите 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

0
ответ дан 10.04.2020, 23:30
  • 1
    Также проверьте свой конфигурационный файл Nginx и файл регистрации ошибок. Должна быть некоторая подсказка там при доступе к сайту. – Karthik SWOT 10.04.2020, 23:30

Следующее работало для меня: добавить

addn-hosts=/etc/hosts

в

/etc/NetworkManager/dnsmasq.d/hosts.conf

kill dnsmasq и

service NetworkManager restart
0
ответ дан 10.04.2020, 23:30

Теги

Похожие вопросы