Не работает resolv conf ubuntu

Ubuntu 16.04 игнорит resolv.conf

Не так давно обновился на 16.04 и вот столкнулся с таким го**ом. Операцонку ни как нельзя заставить временно добавить dns сервер. resolv.conf игнорируется даже если стопнуть днсмаск и нетворк мэнеджер. Мне днсы нужны только на время подключения vpn. Как сейчас это делать? Гугл шлет в resolv.conf или предлагает рестартить сеть, что естественно отваливает vpn.

В конфиге сервера

В остальных случаях назначение DNS зависит от того, что у тебя сетью рулит.

nmcli connection modify не добавляет dns.

я чтото совсем в растерянности

Не может он игнорить resolv.conf. Вот удали все из него посмотри на результат.

Добавлять dns-ки временно можно с помощью nmcli.

это если вам просто нужно на время DNS-ки дополнительные прописать.

А конкретно для VPN можно прописать dhcp-option, как писал Radjah .

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

nmcli connection modify не добавляет dns

А вот с этого места поподробнее.

Что у вас показывает

И с какими параметрами юзали nmcli connection modify?

И у тебя, конечно, в шапке resolv.conf написано:

врн поднимаю из консоли, интерфейсы прописаны в cat /etc/network/interfaces

Мне днсы нужны только на время подключения vpn

переписывается он при ребуте

Но ты не придал этому значения.

На 14.04 если добавить туда нэймсервер он начинал работать, до ребута. сейчас нет.

Если ты через interfaces менеджишь сеть, то и добавь туда:

Источник

resolv.conf продолжает сбрасываться чем-то

Мне нужна помощь, чтобы выяснить, почему мои действия resolv.conf меняются на это, из-за чего я не могу получить доступ к внешнему интернету и только к локальной сети:

Я решил исправить это, избавившись от интерфейса обратной связи и добавив интерфейс eth0 в /etc/network/interfaces инструкции к постерному блогу jontsai .

Я пробовал такие вещи, как делать:

И тогда все будет работать временно, и в конце концов сервер имен в resolv.conf снова вернется.

PS Я также разместил это на Ubuntuforums .

Редактировать: Есть еще одна программа, кроме NetworkManager, которая пишет в нее resolv.conf , и я знаю это, потому что, когда я обновляю NetworkManager, resolv.conf генерируемый файл имеет комментарий # Generated by NetworkManager , а версия, на которую он продолжает изменяться, — нет.

Итак, я пытаюсь это:

while true; do echo listening; lsof | grep /etc/resolv.conf; echo sleeping; sleep 1; done

Добавление вывода файлов:

Нет такого файла как /etc/NetworkManager/NetworkManager.conf

Вы можете сделать статические дополнения к /etc/resolv.conf . Эти дополнения могут переопределить вещи, которые добавляются автоматически.

Сначала установите resolvconf пакет.

Затем нажмите Alt + F2 и запустите gksudo nautilus . Откройте, /etc/resolvconf/resolv.conf.d/head если вы хотите добавить в начало файла; откройте, /etc/resolvconf/resolv.conf.d/tail если хотите добавить в конец. Внесите изменения, сохраните / закройте файлы, а затем запустите sudo resolvconf -u чтобы применить изменения.

(Извините, что я не помню, имеют ли настройки в начале или конце файла самый высокий приоритет.)

У меня была точно такая же проблема — resolv.conf будет перезаписываться каждый раз при перезагрузке сервера.

Это было вызвано DHCP. Чтобы установить resolv.conf на то, что я хочу, я отредактировал /etc/dhcp/dhclient.conf и добавил следующее:

На самом деле вы можете контролировать свой файл resolv.conf, внеся в него изменения.

Читайте также:  Как настроить электронные часы настольные с 3 кнопками perfeo

Надеюсь, это поможет.

(Этот ответ содержит способы выяснить, что происходит. Возможно, я смогу дать реальное решение, если вы будете использовать эти методы для сбора и предоставления дополнительной информации.)

Возможный триггер для, казалось бы, спонтанных обновлений /etc/resolv.conf — это когда ваша аренда DHCP возобновляется. Проверьте, как долго вы получаете аренду DHCP (это должно появиться в системных журналах, я думаю, в /var/log/syslog ).

Вы можете использовать audd, чтобы узнать, что изменяет файл. Запустите daemon ( sudo service auditd start ) и скажите ему, чтобы он следил за изменениями в этом файле:

Журналы аудита находятся в /var/log/audit/audit.log . Вы увидите время изменения файла и название программы, которая его изменила.

Если у вас установлен resolvconf пакет, Network Manager может наступить на него. Попробуйте отключить все сетевые интерфейсы, затем остановите Network Manager ( sudo service network-manager stop ) и перезапустите его.

Откройте терминал и введите

+ я позаботился о том, чтобы файл не сбрасывался при загрузке даже пользователем root.

Еще один вариант, с которым мне посчастливилось использовать resolvconf .

Добавьте любые записи в этот файл:

И они будут добавлены в /etc/resolv.conf .

Я отключаю обновление resolv.conf , создавая файл с именем disable_make_resolv_conf в /etc/dhcp3/dhclient-enter-hooks.d

Он заменяет стандартную функцию с тем же именем, которая отвечает за resolv.conf обновление.

Поздно, но я опубликую свой случай, так как он отличается от всего вышеперечисленного.

В моем случае, /etc/resolv.conf это символическая ссылка /var/run/NetworkManager/resolv.conf , и по какой-то причине cat /etc/resolv.conf выдает мне ошибку, нет такого файла или каталога (может быть, потому что он пуст?)

Если я открою его с помощью vi и добавлю, nameserver x.x.x.x он работает, но очищается при перезагрузке.

Я пытался редактировать /etc/network/interfaces и добавлять dns-nameservers x.x.x.x , изменял /etc/dhcp/dhclient.conf и удалял под request domain-name-servers , тоже редактировал prepend domain-name-servers x.x.x.x .

Resolvconf бинарный не установлен, NetworkManager.conf не имеет ничего релевантного. Но каждый раз, когда я перезагружал машину, не было сервера домена.

Я не уверен, в чем причина, но, похоже, это связано с тем фактом, что это машина VBox, запущенная GNS3, и из-за этого в настройках VBox я должен оставить ее без созданного интерфейса. Очевидно, GNS3 создает «интерфейс UDP» на лету, когда я запускаю машину, при условии, что я запускаю ее с GNS3.

Источник

Как мне установить DNS, когда resolv.conf перезаписывается?

Большая часть информации, которую я вижу в Интернете, говорит о необходимости редактирования /etc/resolv.conf , но любые изменения, которые я делаю там, просто отменяются.

Кажется, что 127.0.1.1 является локальным экземпляром dnsmasq . В dnsmasq документах говорят , редактировать /etc/resolv.conf . Я попытался добавить пользовательские серверы имен /etc/resolv.conf.d/base , но изменения не показывались /etc/resolv.conf после запуска sudo resolvconf -u .

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

ОБНОВИТЬ:

Я думаю, что это лучшее решение, так как:

  1. Оно работает.
  2. Это требует наименьшего количества изменений и
  3. Он по-прежнему работает в сочетании с DNS-кешем dnsmasq, а не в обход.

Я полагаю, что если вы хотите переопределить DNS-сервер имен, вы просто добавляете строку, аналогичную этой, в свой base файл resolv.conf.d .

пример

Затем поместите ваш список серверов имен примерно так:

Наконец обновите resolvconf :

Если вы посмотрите на справочную страницу, resolvconf там описаны различные файлы /etc/resolvconf/resolv.conf.d/ .

Читайте также:  Машинка для стрижки с аккумулятором не работает от сети

Хотя в верхней части head файла есть предупреждение :

это предупреждение существует для того, чтобы при создании этих файлов предупреждение в конечном итоге попадало в результирующий resolv.conf файл, который эти файлы будут использовать для создания. Таким образом, вы могли бы так же легко добавить nameserver строки, которые описаны выше для base файла, в head файл тоже.

Рекомендации

Меня также интересует этот вопрос, и я попробовал решение, предложенное @sim.

Чтобы проверить это, я положил

в /etc/resolvconf/resolv.conf.d/base и

Затем я перезапустил сеть с

Результат /etc/resolv.conf выглядит так

и nm-tool заявляет, что DNS-сервер

которые предоставлены моим роутером. С другой стороны, копание адреса говорит о том, что

Если я прав, из всего этого я делаю вывод, что

  1. resolvonf читает только часть «head»: часть «base» каким-то образом контролируется dnsmasq
  2. dnsserver фактически вынужден перейти на 8.8.4.4 независимо от сервера, предоставленного dhcp, НО вы теряете кэширование, предоставляемое dnsmasq, так как запрос всегда отправляется на 8.8.4.4
  3. dnsmasq все еще использует ТОЛЬКО dnsserver, предоставленный dhcp.

В целом, это работает, но я не думаю, что это ожидаемый результат. Более близким решением, я думаю, является следующее. редактировать

Результат следующий: resolv.conf содержит только 127.0.0.1, что означает, что кеш dnsmasq вызывается, а nm-tool говорит

Это означает, что если искомого имени нет в кэше, его запрашивают в 8.8.8.8, а не на сервере, предоставленном dhcp.

Другой (возможно, лучший) вариант — использовать «prepend» вместо «supersede»: таким образом, если имя не разрешено в 8.8.8.8, запрос возвращается на другой сервер. На самом деле, NM-инструмент говорит

Я обнаружил, что вы можете изменить используемые серверы имен, dnsmasq добавив следующие строки /etc/dnsmasq.conf :

У меня не было /etc/dnsmasq.conf файла, так как он установлен пакетом dnsmasq, но Ubuntu поставляется только с dnsmasq-base. Я бегал sudo apt-get install dnsmasq , потом редактировал /etc/dnsmasq.conf , потом sudo service dnsmasq restart и sudo service network-manager restart .

Я побежал, sudo tail -n 200 /var/log/syslog чтобы проверить мой системный журнал и убедиться, что dnsmasq он использует указанные серверы имен:

В случае статических IP-адресов в Руководстве по серверу Ubuntu сказано изменить файл / etc / network / interfaces, который может выглядеть следующим образом:

Вы изменяете IP 192.168.3.45 192.168.8.10 на те, которые хотите, например 8.8.8.8

Затем выберите «WiFi» или «Ethernet», или то, что вы используете, и нажмите «Изменить». Вы получите это:

Выберите ipv4 во вкладках

Введите ниже свое DNS-имя и сохраните его

Быстрый и грязный обходной путь, который еще не был упомянут, устанавливает флаг неизменяемости в resolv.conf файле сразу после его редактирования.

Добавьте это и сохраните:

Это должно делать свое дело. Я делаю это и в моей системе.

Источник

Как включить строки в resolv.conf, которые не будут потеряны при перезагрузке?

Я наконец-то перешел на 12.04 с 7.10. У меня есть одна последняя часть для завершения, но я в тупике. Я использую Puppet на каждом сервере, и в прошлом я включал адрес сервера имен и имя поискового домена для puppetmaster в resolv.conf.

В 12.04 resolv.conf перезаписывается при перезагрузке. Я не могу использовать статический IP-адрес для них, поэтому использование /etc/network/interfaces для помощи мне не имеет смысла.

Есть ли способ получить resolvconf для обработки этого в голове, хвосте или основании? Если есть, есть ли примеры, которые я могу использовать для настройки на моем сервере.

Буду признателен за любую оказанную помощь.

Читайте также:  Как настроить самсунг а10 после сброса настроек

17 ответов

Вероятно, лучше, чтобы ваш DNS-сервер мог разрешить «марионетку» по правильному адресу, либо чтобы ваш DHCP-сервер раздавал адрес DNS-сервера имен и список поиска, либо (если у вас есть статические IP-адреса) иметь что-то вроде следующее в /etc/network/interfaces.

Но если вы хотите сделать это через конфигурационные файлы resolvconf, вам нужно отредактировать /etc/resolvconf/resolv.conf.d/base , В этом файле введите ваши данные, как в resolv.conf ,

Затем скажите resolvconf для восстановления resolv.conf ,

Я думаю, что ответом является проверка вашего /etc/dhcp/dhclient.conf не запрашивать dns-nameservers от вашего клиента dhcp.

Затем обновите свой /etc/network/interfaces

Тогда ваш resolv.conf будет автоматически настроен так, как вы этого хотите.

Добавить к dns-search а затем запустить /etc/init.d/networking restart (хотя этот скрипт устарел, он все еще работает).

Вероятно, это вызвано настройкой DHCP при первой установке Ubuntu. Попробуйте этот трехэтапный процесс для решения этой проблемы автоматической конфигурации.

Первый

Отредактируйте конфигурацию вашего интерфейса, которая находится в: /etc/network/interfaces

Добавьте эту строку ниже iface lo inet loopback :

В качестве примера для Google DNS вы можете использовать это:

второй

Отредактируйте файл конфигурации DHCP, расположенный по адресу:

Отметьте синтаксис как комментарий, используя # на каждой строке или просто удалите каждый запрос name-server. В 16.04 от вас может не потребоваться вносить какие-либо изменения здесь.

В третьих

Перезагрузите сеть с помощью этой команды:

Как и во многих других ответах, это связано с resolvconf устанавливается в вашей системе.

Так что лучший способ сохранить что-то в resolv.conf это не потеряется при перезагрузке, это включить его в файлы конфигурации resolvconf, которые находятся в:

Там идти на head файл. Все, что вы положите туда, будет написано наверху /etc/resolv.conf

Так что все пойдет примерно так:

Пожалуйста, посмотрите на resolvconf Страница человека. Вы можете принудительно включить определенные настройки DNS, создав, например, /etc/resolvconf/resolv.conf.d/base :

Есть и другие специальные файлы (голова и хвост), они могут помочь вам достичь того, что вы хотите.

Для меня приведенные выше ответы были неадекватными по следующим причинам:

  • Я не пользуюсь resolvconf просто /etc/resolv.conf ,
  • С помощью chattr +i заблокировать resolv.conf кажется слишком хакерским. Мне нужно, чтобы Puppet мог свободно вносить изменения, когда это необходимо.
  • AFAIK, редактирование /etc/network/interfaces не мешает resolv.conf от перезаписи; он просто указывает серверы имен, которые должны быть записаны. Для меня указание серверов имен не имеет смысла. Я пытаюсь установить options timeout:1 а также options attempts:1 в моем resolv.conf файл.

Лучшее решение, которое я нашел, отменяет поведение по умолчанию dhclient используя свои документированные хуки.

Создать новый файл в /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate со следующим содержанием:

Затем сделайте файл исполняемым:

Теперь при запуске dhclient — либо при перезагрузке, либо когда вы запускаете вручную sudo ifdown -a ; sudo ifup -a — загружает этот скрипт nodnsupdate , Этот скрипт переопределяет внутреннюю функцию make_resolv_conf() это обычно перезаписывает resolv.conf и вместо этого ничего не делает.

Это работало для меня на Ubuntu 12.04.

Это может быть какой-то странной причудой в моей машине, но у кого-то еще может быть такой же угловой случай.

Я пробовал многочисленные способы включения моих имен серверов ISP в /etc/resolv.conf, но безуспешно:

Я включил их в /etc/network/interfaces и перезапустил сеть. Они не появились в /etc/resolv.conf ,

Я положил их в /etc/resolv.conf явно, но, конечно, они были перезаписаны. Они появились в /run/resolvconf/interface/eth0.inet , но так и не добрался до /etc/resolv.conf ,

Я попытался настроить resolvconf для динамических обновлений. Без изменений.

Источник

Оцените статью