Ubuntu 12.04 - не удается разрешить имя хоста

5

У меня есть небольшой сервер dedi, на котором я установил Ubuntu 12.04. Я обращаюсь к нему через x2go, так как у меня установлен рабочий стол.

Все работало нормально до 2 дней назад, когда после перезагрузки я потерял доступ к Интернету и начал получать ошибки «Can not Resolve Hostname».

Если я попытаюсь выполнить ping google, я получаю:

ping: unknown host google.com

Чтобы получить доступ к некоторым сайтам, я добавил их в файл hosts, и он работает для большинства из них, но не для всех. Конечно, это всего лишь временное решение.

Если я посмотрю в «Системные настройки - Сеть», я получаю следующее:

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

Спасибо.

    
задан Threshold 08.12.2014 в 20:13
источник

1 ответ

5

Проблема связана исключительно с DNS. Поскольку в файле /etc/resolv.conf не было записей DNS-сервера DNS, поэтому при разрешении имен при хождении по хосту за пределами ваших записей / etc / hosts было отказано.

В Ubuntu 12.04 пакет Сетевой менеджер предоставляет сетевую функциональность (а не старую сетевую программу) с resolvconf dnsmasq ), обеспечивающей массовую функциональность DNS. Но удивительно, что в вашем случае resolvconf не установлен, поэтому нам нужно вручную обновить файл /etc/resolv.conf .

Итак, запустив команду

  

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

мы в основном устанавливаем бесплатный DNS-сервер Google (8.8.8.8) в качестве сервера имен.

Эта команда вставляет текст «nameserver 8.8.8.8» в файл «/etc/resolv.conf» и отображает текст на экране. Таким образом, мы имеем обработчик рабочего имени, который будет разрешать имена хостов, которые мы передаем в IP-адреса.

Здесь очень важно отметить, что мы используем DNS Google, который не идеален, вы должны использовать DNS своего провайдера. Попросите вашего провайдера предоставить вам свой DNS-адрес (может быть несколько) и добавить адрес в качестве сервера имен. Хотя вы можете сохранить DNS Google в качестве резервной копии, если по какой-то причине ваш интернет-провайдер не работает. Предположим, что DNS вашего провайдера vv.xx.yy.zz , поэтому вам нужно запустить следующие команды, чтобы сделать его основным DNS и сохранить DNS Google в качестве резервной копии.

echo "nameserver vv.xx.yy.zz" | sudo tee /etc/resolv.conf && echo -e "nameserver 8.8.8.8" "\nnameserver 8.8.4.4" | sudo tee -a /etc/resolv.conf

Смотрите переключатель -a в команде tee , которая используется для добавления, а не для перезаписи. Здесь 8.8.4.4 также является DNS Google.

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

    
ответ дан heemayl 09.12.2014 в 02:48
источник