Модификация / etc / hosts не работает должным образом. Что делать?

Я добавил эти строки в файл hosts:

127.0.0.1 localhost adobe.com
127.0.0.1 adobe.com

Он отлично работает на Windows. Но в Ubuntu 11.10, когда я пытаюсь получить к нему доступ через Firefox, веб-сайт открывается.

Google chrome поддерживает конфигурацию / etc / hosts. Google Chrome отображает:

"Это работает! Это веб-страница по умолчанию для этого сервера. Программное обеспечение веб-сервера работает, но контент еще не добавлен." >

10
задан 8 April 2012 в 01:46

8 ответов

в Ubuntu 14.04 изменив файл / etc / hosts так, чтобы он работал только с одним хостом на линию, я потратил много времени на работу с хостом хоста IP, затем изменил хост на IP на каждой строке, и это сработало>. <

0
ответ дан 8 April 2012 в 01:46

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

То, что вы видите, может быть результатом кэширования DNS-записей Firefox - т.е. вы открыли веб-сайт в Firefox, Firefox запомнил IP-адрес, соответствующий домену adobe.com, вы изменили /etc/hosts и перезагрузили страницу - Firefox делает не выдает новый DNS-запрос и использует вместо этого кэшированные данные. Затем вы открываете Chrome, он делает новый DNS-запрос и использует все, что вы ввели в /etc/hosts, в качестве IP-адреса для adobe.com

. Перезапуск Firefox должен решить проблему.

0
ответ дан 8 April 2012 в 01:46

Все ответы являются большими, но самый короткий путь к фиксации его:

после изменения/etc/hosts (и возможно перезапуск Firefox), перезагрузите проблематичную вкладку с Ctrl+Shift+R. Это обойдет любой тип Firefox кэша, может иметь.

2
ответ дан 8 April 2012 в 01:46

Я могу подтвердить вашу проблему, которая, по-видимому, затрагивает как Chrome, так и Firefox только Firefox. Это ответ для пользователей, затронутых одной и той же проблемой, и если они затронуты обоими / всеми браузерами. Выполните следующие шаги, чтобы это работало правильно. Предполагая, что вы уже отредактировали файл /etc/hosts, для которого я рекомендую следующие 2 способа редактирования файла:

Gedit Way - gksudo gedit /etc/hosts (Теперь у вас есть дружественный для GUI способ редактирования файла)
[ 1113] Nano Way - sudo nano /etc/hosts (Теперь у вас есть способ редактирования файла с помощью терминала)

И у вас есть, например:

127.0.0.1 localhost adobe.com

ИЛИ

127.0.0.1 localhost
127.0.0.1 adobe.com
[ 1119] (оба - одно и то же)

Сначала вы проверите это, чтобы убедиться, что оно работает правильно с терминала. Введите ping adobe.com, и он должен ответить от назначенного ему IP-адреса. В этом случае он должен ответить 127.0.0.1. Это значит, что все в порядке.

Затем мы продолжим тестирование браузера. Вы тестировали Chrome, и он работал. Вы изменили /etc/hosts между наличием и отсутствием записи для adobe.com, и она работала каждый раз, когда вы меняли ее. Но потом вы пошли с Firefox, он мог бы сработать в первый раз, но после изменения файла hosts туда-сюда он каким-то образом перестал работать. Это означает, что это проблема с кешем или проблема с правильным именем.

В случае Firefox и определения имени Firefox добавляет префикс www к веб-сайту Adobe, поэтому он выглядит как «www.adobe.com», а в Chrome - «Adobe» .com». Они оба указывают на одно и то же место, а префикс www как раз говорит о том, что посещаемое вами место - это веб-сервис. Но в случае вашей проблемы вам нужно добавить это в файл hosts, поэтому, когда Firefox добавляет префикс www, он работает. Так это будет выглядеть следующим образом:

127.0.0.1 localhost
127.0.0.1 adobe.com www.adobe.com

ИЛИ точно так же

127.0.0.1 localhost adobe.com www.adobe.com

ПРИМЕЧАНИЕ. Помните, что вы ДОЛЖНЫ нажать F5 , чтобы обновить сайт / firefox или закройте вкладку и откройте ее снова, чтобы проверить. Каким-то образом нажатие ENTER как сумасшедший не сработает.

Это должно решить проблему для некоторых пользователей, НО, если до сих пор вы еще не решили проблему, мы можем проверить, что это может быть.

Мы получили несколько уровней кеша для проверки. У вас есть программа Cache, в данном случае Firefox, затем у вас есть System Cache, в данном случае Ubuntu, и затем у вас есть аппаратный кеш, в данном случае ваш маршрутизатор.

Насколько я знаю, версия Ubuntu Desktop не имеет службы кэширования DNS, установленной по умолчанию. Наиболее известным является nscd , и если он установлен, то подойдет простой /etc/init.d/nscd restart. Но для большинства людей это не будет установлено. Таким образом, мы можем отменить ошибку системы Ubuntu.

Это оставляет Маршрутизатор и Браузер. В случае маршрутизатора вам придется настроить его для остановки кэша DNS или перенастроить его для решения этой проблемы. Это полностью зависит от модели маршрутизатора, производителя и т. Д. Не все маршрутизаторы выполняют кеширование DNS, но некоторые делают это, и вам нужно будет увидеть в конфигурации его, есть ли у него эта опция и включена ли эта опция. Но давайте предположим, что у вас нет маршрутизатора с включенным кэшированием DNS.

Это оставляет браузер.

Чтобы узнать, работает ли Firefox плохо с DNS-кешем, вы можете установить дополнение для проверки DNS-кеша в Firefox. я рекомендую DNS Cache .

enter image description here

После перезапуска Firefox вы увидите шестеренку внизу (аналогично шестерне Ubuntu в верхнем правом углу). Вы можете щелкнуть левой или правой кнопкой мыши Cog, и вы должны увидеть такие опции, как Включить / Отключить DNS и очистить его. Это поможет в случае проблемы, связанной с DNS-кешем Firefox. Поиграй с ним.

1133 Я думаю, что у меня есть все способы, чтобы вы могли это решить. Если я что-то пропустил, дайте мне знать.

0
ответ дан 8 April 2012 в 01:46

[ЭТО РАБОТАЕТ!]

Я знаю, что этой теме год, но я наткнулся на нее в поисках ответов на ту же проблему. Я наконец нашел решение! Оказывается, что файл /etc/hosts полностью игнорируется DNS. Чтобы изменить это, вы должны отредактировать /etc/nsswitch.conf и включить files в hosts. Пример ниже:

passwd:         compat
group:          compat
shadow:         compat

hosts:          dns files myhostname <-- this line here.
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Это обеспечит включение файла /etc/hosts в проверку разрешения имени. Сначала он проверит DNS, а затем файл hosts. Я уверен, что OP больше не нуждается в этой информации, но она по-прежнему хороша для тех, кто ищет ответы на эту проблему.

0
ответ дан 8 April 2012 в 01:46

Моя проблема заключалась в том, что у меня было несколько записей для одного доменного имени. Система видела только первый случай.

127.0.0.1 domain1.com domain2.com domain3.com # <-- WENT UNNOTICED
# .
# .
192.168.1.21 domain1.com # <-- DOESN'T WORK
0
ответ дан 8 April 2012 в 01:46

Не могли бы вы попробовать:

  1. Редактировать файл / etc / hosts.
  2. Добавить следующие строки

     # /etc/hosts
     127.0.0.1  localhost
     127.0.1.1  myhost01
     127.0.1.2  myhost02
    
0
ответ дан 8 April 2012 в 01:46

У меня была такая же проблема в разных версиях Ubuntu. Последний поднял свою уродливую голову 17.04 и 16.04. Я обнаружил, что мне нужно отформатировать файл hosts следующим образом:

127.0.0.1 localhost

127.0.0.1 www.facebook.com facebook.com

т.е. вставьте в URL как WWW, а затем снова без. Я понятия не имею, почему это работает. Просто сохраните файл, а затем отправьте эхо-запрос на URL-адрес, как показано на:

ping www.facebook.com

, и он должен преобразоваться в адрес обратной связи или любой другой адрес, который вы хотите. ]

80.82.xxx.xxx www.example.com example.com

Работал для меня.

0
ответ дан 8 April 2012 в 01:46

Другие вопросы по тегам:

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