/ etc / hosts модифікація не працює належним чином. Що робити?


10

Я додав ці рядки до файлу хостів:

127.0.0.1 localhost adobe.com
127.0.0.1 adobe.com

Він прекрасно працює на вікнах. Але в Ubuntu 11.10, коли я намагаюся отримати доступ до нього за допомогою Firefox, відкривається веб-сайт.

Google chrome, хоча підтримує конфігурацію / etc / hosts Google Chrome відображає:

"Це працює! Це веб-сторінка за замовчуванням для цього сервера. Програмне забезпечення веб-сервера працює, але вміст ще не доданий."

Відповіді:


10

Я можу підтвердити вашу проблему, яка, як видається, впливає між Chrome і Firefox, лише Firefox. Це відповідь для користувачів, на яких впливає одна і та ж проблема, і якщо на них впливають обидва / всі браузери. Для правильної роботи виконайте ці дії. Припустимо, ви вже відредагували /etc/hostsфайл, до якого я рекомендую наступні два способи редагування файлу:

  • Gedit - gksudo gedit /etc/hosts(Тепер у вас є дружній графічний спосіб редагування файлу. Gksu, який забезпечує gksudo, припиняється в офіційних сховищах 18.04 та пізніших.)
  • nano - 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, і вам слід побачити такі параметри, як Увімкнути / Вимкнути DNS та змити його. Це допоможе у випадку проблеми з кешем DNS Firefox. Пограйте з ним.

Я думаю, що я отримав усі способи вирішити це. Якщо я щось пропустив, дайте мені знати.


Якщо Firefox не поважає hostsфайл локальної машини (тобто, якщо проблема все-таки виникає навіть після wwwдодавання домену з субдоменом і навіть після оновлення сторінки), я рекомендую повідомити про це як про помилку. (Я не впевнений , що це буде помилкою в , так як Firefox імовірно використовує кошти дозволу DNS операційної системи, які роблять , або , як передбачається, поважати його. Але ви можете повідомити про це проти firefoxв Ubuntu , а потім подальше усунення несправностей може , ймовірно , відкиньте її звідти.)
Елія Каган

@EliahKagan Це також залежить від того, де і як знаходиться хостинг / домен. Деякі сайти пропонують можливість увімкнути використання піддомену www, а деякі не мають його попередньо конфігурувати, тому коли хтось намагався зайти на www.eliah.com, це не працює, але eliah.com робить.
Луїс Альварадо

Так, звісно. Я не кажу, що це www.foo.netмає працювати лише тому, що foo.netпрацює. Вірніше, якщо foo.netі www.foo.netобидва визначені 127.0.0.1в /etc/hosts, введення foo.netв адресному рядку веб-браузера та натискання клавіші enter призведе до того, що браузер намагається відкрити з'єднання 127.0.0.1:80. Якщо це не так, десь є помилка.
Ілля Каган

@EliahKagan - Ах! так, звичайно. У тому випадку, якщо він не працює, комп'ютер володіє демоном. Нам знадобиться або екзорцист, і багато святої води, або краща діагностика проблеми.
Луїс Альварадо

Екзорцист + свята вода та краща діагностика здаються найбільш розумним курсом. :)
Ілля Каган

7

Я знаю, що цій темі рік, але я натрапив на неї, шукаючи відповіді на ту саму проблему. Я нарешті знайшов рішення! Виявляється, що /etc/hostsDNS повністю обходить файл. Щоб змінити це, вам потрібно відредагувати /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файл. Я впевнений, що ОП більше не потребує цієї інформації, але це все одно добре для тих, хто шукає відповіді на цю проблему.

Ви також повинні перезапустити, щоб це набуло чинності


У мене є "файли mdns4_minimal [NOTFOUND = return] dns mdns4" там, на Ubuntu 12.04, але / etc / hosts все ще не працює ... схоже, я стикаюся з іншою проблемою.
Шнацель

Чи можете ви вставити повний код?
Сем Чонбурі

Ось повний конфігураційний файл: pastebin.com/hDBGrrwn Я вважаю, що це типово для Ubuntu 12.04
Shnatsel

Все виглядає правильно. Що це ти намагаєшся зробити?
Сем Чонбурі

Я не отримав: що мені додати до цього рядка? /etc/hosts? hosts? Або що?
Привіт-Ангел

2

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

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

Перезапуск Firefox повинен вирішити проблему.


2

Усі відповіді чудові, але найкоротший спосіб виправити це:

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


1

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

127.0.0.1 domain1.com domain2.com domain3.com # <-- WENT UNNOTICED
# .
# .
192.168.1.21 domain1.com # <-- DOESN'T WORK

0

Чи можете ви спробувати:

  1. Редагувати / etc / hosts файл.
  2. Додайте наступні рядки

     # /etc/hosts
     127.0.0.1  localhost
     127.0.1.1  myhost01
     127.0.1.2  myhost02
    

0

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


0

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

127.0.0.1 localhost

127.0.0.1 www.facebook.com facebook.com

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

ping www.facebook.com

і воно має вирішуватись за адресою петлі або будь-якою іншою адресою, яку ви хочете. Наприклад:

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

Працювали для мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.