пинг 8.8.8.8 работает, но пинг www.google.com не работает


12

Я работаю на сервере Ubuntu 16.04.2 и apt-get updateвозвращает временную ошибку, решающую «все в списке».

  • Когда я пингую www.google.com, он отвечает неизвестным хостом.
  • Когда я пинг с 8.8.8.8, я получаю пакеты, отправленные без ошибок и т. Д.

Я перепробовал все "исправления", которые я могу найти на форумах Ubuntu и во всем остальном мире интернета, и ничего не работает. resolv.confПуст, Ifconfig показывает НСА функционирует, брандмауэр выключен, и я выбросил молоток на всякий случай. К сожалению, я набираю это на другом компьютере в той же сети, но не могу прикрепить текст с различных выходных данных, чтобы показать, что происходит. Нужна помощь в этом, пожалуйста.

Файл resolv.conf содержит следующие строки:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
search 8.8.8.8 8.8.4.4

Последняя строка помещает их в файл интерфейсов при перезагрузке системы. Это новое для 16.04LTS. Я думаю, что Windows NT4 была не так уж плоха, как и Ubuntu Server 12.


2
Как ваша система получает свой IP-адрес? Это идет от сервера DHCP? Это статический IP? Возможность пропинговать IP-адрес будет работать без настройки IP-адреса DNS-сервера. Но, похоже, у вас нет настройки DNS-адреса или ваш DHCP не предоставляет его.
Терренс

IP статичен. Я никогда не настраивал DNS-сервер при установке серверного программного обеспечения.
Гэри Мерсер

Посмотрите на askubuntu.com/questions/143819/… и добавьте свою запись DNS для аналогичных DNS-серверов Google на 8.8.8.8 и 8.8.4.4
Terrance

Я сделал все это. Мой статический ip идет из окна at & t vdsl. Я использую их DNS-серверы имен и IP-адреса DNS-поиска. Единственное, что я могу сделать вывод, это то, что at & t блокирует DNS-запросы.
Гэри Мерсер

Интересно. Возможно, вы захотите связаться с AT & T и посмотреть, не блокируют ли они его в любом случае. Я думаю, вы могли бы попробовать заменить их DNS-серверы на DNS-серверы Google и посмотреть, работает ли это.
Терренс

Ответы:


16

Вам нужен сервер имен в вашем /etc/resolv.confфайле. Отредактируйте /etc/resolv.confи добавьте работающий сервер имен. Google предоставляет бесплатный 8.8.8.8.

Сделай это:

$ nano /etc/resolv.conf

Поместите это как первую строку без комментариев:

nameserver 8.8.8.8

Вы можете проверить эту функциональность с:

$ ping -c10 www.google.com

Вы можете сделать это изменение постоянным, добавив в этот файл строку своего /etc/resolvconf/resolv.conf.d/headфайла.


Вупи! Успех! извините, 36 часов подряд стучат в эту коробку ... Это сработало. Я даже вставил в AT & T IP, и это сработало. Спасибо всем вам, ребята, за вашу помощь и оперативность. (Мистер Модератор, эти парни нуждались в похлопывании по спине, чтобы облегчить весь безэмоциональный мусор)
Гэри Мерсер

resolv.conf не дает разрешения на редактирование
Сям Кумар KK

в отличие от ответа @Ragy Morkos, он работал для меня также в Ubuntu 18.04 LTS
Gwang-Jin Kim

Большое спасибо! Я не смог пропинговать www.google.com после того, как в моей Ubuntu появился chroot. Благодаря вашему решению, теперь я могу делать установки и т.д. в разделе chroot-ed.
Гванг-Джин Ким

3

Отмеченный ответ фактически не работает в Ubuntu 18.04.01. Чтобы исправить эту проблему, вот что я сделал:

  • казнить sudo gedit /usr/lib/systemd/resolv.conf
  • Вставьте nameserver 8.8.8.8(и / или любой другой сервер имен), затем сохраните и выйдите.
  • Добавьте символическую ссылку, выполнив sudo ln -sf /usr/lib/systemd/resolv.conf /etc/resolv.conf

Кредиты для https://askubuntu.com/a/1050280/899241


2

Не могли бы вы опубликовать ссылку на страницу, которая говорит, что файл resolv.conf должен быть пустым? Я думаю, что это в лучшем случае вводит в заблуждение.

Отредактируйте этот файл командой sudo nano /etc/resolv.confи поместите туда одну строку:

nameserver 8.8.8.8

Это должно исправить ваше разрешение имени и различные программы, которые его используют - ping, apt-get и т. Д.

Вы также должны выяснить, почему resolv.conf пуст. Возможно, ваш DHCP-сервер не настроен должным образом.


Вот что содержит этот файл: # Динамический файл resolv.conf (5) для glibc resolver (3), созданный resolvconf (8) # НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ РУКОЙ - ВАШИ ИЗМЕНЕНИЯ БУДУТ ПЕРЕПИСАНЫ при поиске 8.8.8.8 8.8.4.4 Последняя строка помещает их в файл интерфейсов при перезагрузке системы.
Гэри Мерсер

@GaryMercer, пожалуйста, добавьте это к своему вопросу. Трудно читать в комментарии.
wjandrea

0

Не очень хорошая идея на Ubuntu 16.04.x ​​просто перезаписать /etc/resolv.conf. ОС, скорее всего, перезапишет его.

Файл /etc/resolv.confобычно является символической ссылкой на другой файл:

ls -lisa /etc/resolv.conf
1310924 0 lrwxrwxrwx 1 root root 29 Jul 13  2016 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

это означает, что это правильно, и вы можете редактировать его, но, скорее всего, другая программа собирается перезаписать его. Я предполагаю, что у вас установлен NetworkManager. Насколько мне известно, эта служба управляет содержанием вашей решимости. Так что вы действительно должны попытаться настроить это. (С другой стороны, NetworkManager может быть отключен в вашей системе. Возможно, вам придется сказать мне.)

Попробуйте nmtuiдобавить туда правильный DNS-сервер. Я бы также использовал 8.8.8.8только в качестве вторичного DNS. Ваш основной DNS должен быть машиной или маршрутизатором рядом с вашей локальной сетью или чем-то еще, что у вас там есть ...


Нет сетевого менеджера. Это сервер без графического интерфейса. Я установил dnsutils, прежде чем он перестал подключаться к репозиториям.
Гэри Мерсер

@ Гэри Мерсер: как вы привели сетевой интерфейс? (ifup и ifdown?) Графический интерфейс сетевых менеджеров является необязательным компонентом. nmtuiна основе текста этого.
Герхард Штайн

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

После перезагрузки вашей системы что-то «менеджер» должен принести ваши устройства. В каком из них вы настраивали статические IP-адреса?
Герхард Штайн

0

У меня была такая же проблема, пока я не отредактировал со следующими значениями файл 50-cloud-init.yaml

 network:
    ethernets:
        eno2:
            addresses:
            - 192.168.0.50/24 (my static ip address)
            dhcp4: false
            gateway4: 192.168.0.42
            nameservers:
                addresses: [208.67.222.222,208.67.220.220]
                search: [208.67.222.222]

надеюсь, что это работает и для вас


Если используется netplan, и DNS-серверы Google будут addresses: [8.8.8.8,8.8.4.4] (возможно, лучше использовать Cloudflare 1.1.1.1 ) /etc/netplan/50-cloud-init.yamlи затем sudo netplan --debug apply.
Пабло Бьянки

0

Вы столкнулись с проблемой, связанной с DNS-сервером, который вы указали для своей системы. Проверьте запись вашего сервера имен в /etc/resolv.conf.

Проблема в том, что команда ping не может определить, что такое «www.google.com», поскольку ваш DNS-сервер не может разрешить его и предоставить Google фактический IP-адрес (доступ к каждому серверу возможен только по его IP-адресу).

Решение

Изменить запись в /etc/resolv.conf. Либо предоставьте правильный DNS-сервер по выбору, /etc/resolve.confкоторый может решить "www.google.com"

или yВы можете указать свой локальный системный распознаватель с IP-адресом 127.0.0.53, добавив строку

nameserver 127.0.0.53

или укажите IP-адрес DNS-сервера Google (любой из них): 8.8.8.8 или 8.8.4.4

nameserver 8.8.8.8**

PS Вы можете лучше понять , как работает DNS здесь


-2

Проблема, которую мы рассмотрели здесь, связана с разрешением доменных имен внутри IP-адреса. С версии 15 сервера Ubuntu, я полагаю, используется система динамических файлов конфигурации, которые меняются каждый раз при перезапуске или перезапуске службы или системы. Если администратор вносит изменения в файл resolv.conf, эти изменения удаляются при перезапуске службы распознавателя.

Чтобы сделать изменения постоянными, Ubuntu сделал способ сделать изменения пользователей постоянными, не влияя на динамическую конфигурацию файлов конфигурации. Предложение от LD James (выше) состояло в том, чтобы добавить изменения, которые мне нужно было внести в /etc/resolvconf/resolv.conf.d/headфайл.

Это сделало изменения постоянными и решило проблему разрешения сообщения об ошибке доменных имен host not found. Это решение для установки DNS-сервера имен в файле интерфейсов, а затем передачи его также в распознаватель. Спасибо всем за ваши высшие усилия в решении этой головоломки.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.