Я не могу сохранить адрес сервера имен, который я установил через /etc/resolv.conf
. Каждый раз, когда я устанавливаю значение, менеджер сети перезагружает его шлюзом по умолчанию при перезагрузке.
Как правильно это настроить?
Я бы предпочел другой способ, чем изменить имя сервера в маршрутизаторе.
linux
nameserver
Ashildr
источник
источник
NetworkManager
(как указано в первой строке). Этот файл заново генерируется при каждой загрузкеNetworkManager
. Это зависит от вашего linux-дистрибутива (о котором вы не упоминали), как получить к нему доступNetworkManager
.Ответы:
По-разному. Пожалуйста, прочитайте до конца.
Если у вас не установлен пакет resolvconf , то это легко: после его изменения выполните команду
Команда изменяет атрибуты файла, делая его
immutable
(опция + i).Однако, если у вас установлен пакет resolvconf, файл /etc/resolv.conf может быть преобразован в символическую ссылку,
который является файлом в виртуальной файловой системе, воплощением непостоянной версии. Самое смешное, что вы, возможно, не знаете, что у вас установлен resolvconf, потому что последние версии Debian-подобных ОС поставляются с предустановленным. Вы можете установить, установил ли он ваш дистрибутив, выполнив команду:
Даже самое главное, вы можете установить, была ли ваша
/etc/resolv.conf
ссылка преобразована в ссылку, с помощью команды (file /etc/resolv.conf), приведенной выше. Если ответASCII text
, используйтеchattr
, иначе ...Если вы используете статический IP-адрес, проще всего добавить следующую строку (или что-то подобное)
раздел, определяющий свойства вашего статического интерфейса в / etc / network / interfaces.
Если вы вместо этого находитесь на ноутбуке, который все время подключается к различным сетям, вы можете последовать
LawrenceC
отличному совету. Но если в вашей системе есть resolvconf , правильный (и самый простой) способ предоставить фиксированный набор DNS - это использовать файлы в /etc/resolvconf/resolv.conf.d . В частности, используются следующие файлы (см . Страницу Стефана Грабера ):база : используется, когда никакие другие данные не могут быть найдены
head : Используется для заголовка resolv.conf, может использоваться для обеспечения того, чтобы DNS-сервер всегда был первым в списке
tail : любая запись в tail добавляется в конце результирующего resolv.conf.
Итак, поместите ваши любимые сервера имен в голову следующим образом
и вы сделали.
источник
LawrenceC
следующее./etc/resolvconf/
не существует по умолчанию в Ubuntu 18.04.Добавьте аналогичную строку для
/etc/dhcp/dhclient.conf
использования корневого терминала:supersede domain-name-servers 74.122.198.48, 50.116.23.211;
Это приводит к тому
dhclient
, что программа, которая выдает запрос DHCP и вносит изменения в соответствии с тем, что было сказано в ответе, заменяет информацию, полученную от сервера DHCP, на приведенную выше, прежде чем вносить изменения.Выше приведены два сервера OpenNIC DNS. Замените по мере необходимости для любых серверов, которые вы хотите использовать.
Поскольку это происходит всякий раз, когда вы получаете информацию о конфигурации от DHCP, используйте
dhclient -v eth0
любой другой интерфейс, чтобы обновить его и увидеть изменения.источник
prepend domain-name-servers 8.8.8.8
например. Это будет использовать DNS провайдера, когда доступно.@Rik, как уже упоминалось, говорит о том, что причина замены DNS при перезагрузке кроется в сетевом менеджере / утилите, которые установлены так. В Linux Mint, как показано на снимке экрана, мой метод IPv4 был установлен только на автоматические (DHCP) адреса. Затем вы можете ввести правильные настройки в /etc/resolv.conf или в разделе DNS-серверов. Я помню, что в Ubuntu 13.04 мои серверы имен менялись несколько раз в течение длительного периода времени, но после того, как я действительно перешел и отредактировал их в графическом интерфейсе, с этого момента все казалось стабильным.
источник
Была такая же проблема, но я использую статический IP-адрес. Исправление было просто добавление DNS в / etc / network / interfaces
источник
/etc/network/interfaces
. Хороший улов!Если вы использовали wicd, щелкните правой кнопкой мыши значок и выберите информацию о подключении. Когда откроется окно, нажмите на свойства того, к которому вы подключены.
Проверьте использование статического DNS и в строке с надписью DNS-сервер 1 введите IP-адрес для Google DNS,
8.8.8.8
а в строке для DNS-сервера 2 введите и8.8.4.4
нажмите «ОК».Если вы получаете ошибки по умолчанию, вы можете связаться с вашим Интернет-провайдером и сообщить об этом им. Обычно они назначают DNS-серверы вашему модему, когда вы подключаетесь к ним.
источник
Взломать ваш путь с помощью
chattr +i
или схожим способом - это в лучшем случае быстрый обходной путь , и его следует избегать всякий раз, когда это возможно (по крайней мере, в долгосрочной перспективе - как уже говорилось, это краткосрочный обход, пока не будет найдено время для реального решения) , Как уже указывалось, это работа для NetworkManager, который предлагает CLI, который мы можем использовать для этого:Если вы используете статический IP-адрес, вы также можете использовать решение из ответа kanelbolle .
источник
Удивительно , как расстраивает эту маленькую проблему можно получить, когда эти решения , приведенные для него больше не будет работать на Ubunutu 18.04.
Для меня работало просто перезаписывать
nameserver
значение при/etc/resolv.conf
каждой загрузке.sudo
отредактируйте/etc/rc.local
и добавьте эту строку:источник