Назад | Перейти на главную страницу

файл / etc / hosts игнорируется

Очевидно, мой файл hosts игнорируется.

Это содержит:

127.0.0.1 локальный хост.localdomain локальный хост
127.0.0.1 mydomain.com
127.0.0.1 нигде

Если я пингую локальный хост или «нигде», я получаю ошибку «неизвестный хост». Если я пингую mydomain.com, пинг завершается успешно, но он сообщает IP-адрес в Интернете (с внешнего сервера имен) для mydomain.com.

На сервере работает выносливая Ubuntu. Есть ли способ отключить (и снова включить) файл / etc / hosts?

Я нашел проблему.

Файл / etc / hosts имел чрезмерно ограничительные права доступа -rw ------ (я считаю, что это восьмеричное число 600). Изменение этого режима на 644 устранило проблему.

Мои тесты с ping проводились с обычным Priv, и файл hosts не читался. Моя первоначальная проблема заключалась в правильном запуске postgresql; он запускается с привилегиями root, но, очевидно, теряет привилегии перед запуском своих дочерних процессов для автоочистки и тому подобного, поэтому к тому времени, когда ему потребовалось разрешить домен, он не смог прочитать файл hosts.

Спасибо всем, кто ответил. Это было поучительно.

Проверьте /etc/nsswitch.conf

У вас должна получиться такая строка:

hosts: files dns

если часть "файлы" отсутствует, / etc / hosts не будет проверяться.

файл hosts иногда странный на каком-то дистрибутиве, попробуйте поместить все псевдонимы localhost в одну строку

как это :

127.0.0.1 localhost.localdomain localhost mydomain.com nowhere

Я просто потратил час, потому что обновил копию и вставил в мой /etc/hosts имел tab вместо пробела, разделяющего ip и имя. Так что еще одна вещь, которую стоит проверить, игнорируется ли запись без видимой причины.

Не уверен в специфике ubuntu, но похоже, что ваш локальный преобразователь настроен неправильно. Ты должен попытаться man resolv.conf или man nslookup чтобы увидеть, как его настроить.