/ etc / hosts не работает должным образом. Что делать?

9

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

127.0.0.1 localhost adobe.com
127.0.0.1 adobe.com

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

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

"It works! This is the default web page for this server. The web server software is running but no content has been added, yet."

    
задан Curious Apprentice 06.04.2012 в 21:27
источник

8 ответов

9

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

Gedit Way - gksudo gedit /etc/hosts (теперь у вас есть удобный способ редактирования файла).
Nano Way - sudo nano /etc/hosts (теперь у вас есть удобный для редактирования способ редактирования)

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

127.0.0.1 localhost adobe.com

ИЛИ

127.0.0.1 localhost
127.0.0.1 adobe.com

(Оба - одно и то же)

Сначала проверьте это, чтобы убедиться, что он правильно работает с терминалом. Наберите 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 как сумасшедшее не будет делать.

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

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

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

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

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

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

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

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

    
ответ дан Luis Alvarado 10.05.2012 в 20:48
источник
7

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

Я знаю, что эта тема - год, но я наткнулся на нее, ища ответы на ту же проблему. Я наконец нашел решение! Оказывается, что файл /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 больше не нуждается в этой информации, но это все равно хорошо для тех, кто ищет ответы на эту проблему.

    
ответ дан Sam Chonburi 23.10.2013 в 19:48
2

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

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

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

    
ответ дан Sergey 07.04.2012 в 21:42
1

Все ответы велики, но самый короткий способ его исправить:

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

    
ответ дан Luka Ramishvili 09.01.2013 в 08:56
1

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

127.0.0.1 domain1.com domain2.com domain3.com # <-- WENT UNNOTICED
# .
# .
192.168.1.21 domain1.com # <-- DOESN'T WORK
    
ответ дан Kaushik Sv 17.01.2014 в 11:45
0

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

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

     # /etc/hosts
     127.0.0.1  localhost
     127.0.1.1  myhost01
     127.0.1.2  myhost02
    
ответ дан OleksDovz 17.01.2014 в 11:56
0

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

    
ответ дан Michael 22.05.2015 в 13:18
0

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

127.0.0.1 localhost

127.0.0.1 www.facebook.com facebook.com

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

ping www.facebook.com

, и он должен решить адрес loopback или любой другой адрес, который вы хотите. org:

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

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

    
ответ дан Jules 09.01.2018 в 15:59