Он заменяет сервер имен (DNS), используемый на вашем компьютере, службой Google Public DNS . Если выполнение этой команды поможет вам, у вас возникли проблемы с DNS в настройках по умолчанию, предоставляемых вашей сетью (DHCP). Хотя было бы лучше устранить основную причину проблемы, это общий ответ на ваш вопрос.
Объяснение команды
sudo echo nameserver 8.8.8.8 > /etc/resolv.conf
sudo
в этом случае повышает привилегии пользователя root.
echo
просто выводит аргументы, следующие за стандартным выводом (в этом случае выводит nameserver 8.8.8.8
)
>
перенаправляет стандартный вывод в файл (перезаписывает его) в обычной оболочке Unix.
/etc/resolv.conf
это файл, в который записывается вывод
- Имея линию
nameserver 8.8.8.8
в /etc/resolv.conf
делаешь систему с помощью сервера имен , имеющих IP - адрес 8.8.8.8
для разрешения доменных имен IP - адреса. (очень короткая версия того, что на самом деле происходит)
8.8.8.8
является одним из адресов, опубликованных Google, о том, где прослушивают их общедоступные службы DNS.
sudo
ошибка
Хотя это объяснение звучит правдоподобно, оно не будет работать из-за ошибки, которую вы получите:
bash: /etc/resolv.conf: Permission denied
Почему? Перенаправление вывода обрабатывается вашей оболочкой (здесь: Bash) и не учитывается для команды, используемой для sudo
. Подобно тому, как умножение в математике имеет приоритет над сложением. Итак, просто echo
у него есть повышенные привилегии, а у вашей оболочки нет! Чтобы решить эту проблему, нужно выполнить эту команду как
sudo sh -c "echo nameserver 8.8.8.8 > /etc/resolv.conf"
или, используя канал и tee
вывести его в файл:
echo nameserver 8.8.8.8 | sudo tee /etc/resolv.conf #prints to screen as well
Ubuntu и сетевой менеджер
В Ubuntu это только временное изменение, поскольку Network Manager «управляет» /etc/resolv.conf
файлом. Локальные модификации будут перезаписаны. Вот почему вы должны настроить это в Network Manager, чтобы оно было постоянным.
Конфигурация с использованием Network Manager
Я бы порекомендовал правильно настроить компьютер с помощью Network Manager. Я предполагаю, что вы используете DHCP в своей сети здесь (чаще всего). Затем сделайте это, чтобы выполнить то же самое, что эквивалентно команде, которую вы использовали:
Открыть Редактировать соединения :
Отредактируйте профиль подключения, который вы используете.
На вкладке Настройки IPv4 :
Метод: только автоматические (DHCP) адреса
Этот параметр заставляет его выполнять обычный запрос DHCP для настройки IP-адреса вашего хоста, но он игнорирует другие необязательные параметры, такие как предлагаемые DNS-серверы.
- DNS-серверы:
8.8.8.8
- Хит Сохранить
Выполнено.
Важные заметки
В локальной или корпоративной сети локальный DNS-сервер может использоваться для локальных хостов. Вы потеряете эту функцию, напрямую попросив серверы Google разрешить для вас имена. Таким образом, если, например, локальный DNS-сервер будет знать, что такое «принтер», вы потеряете использование своего принтера с таким именем.
Поэтому, пожалуйста, исправьте ваш локальный DNS-сервер. Если это просто переадресация на сломанный DNS-сервер вашего интернет-провайдера, и вы не можете это изменить (например, все-в-одном маршрутизаторе, управляемом провайдером), то это 8.8.8.8
решение может быть вашим единственным вариантом.