NetworkManager не заполняет resolv.conf


41

Я недавно обновился с 11.10до 12.04, и теперь NetworkManagerне заполняю /etc/resolv.confпри подключении к беспроводным сетям, когда он отлично работал в 11.10. Я не вижу явных ошибок ни в NetworkManager, UIни в syslog. Как мне диагностировать что не так?

Редактировать: если я пытаюсь запустить resolvconf, я получаю сообщение об ошибке

resolvconf: Ошибка: /etc/resolv.conf не является символической ссылкой, ничего не делая.

Каким он должен быть, symlinkи как мне NetworkManagerего заполнить? Это говорит о том, что symlinkдолжен указывать /run/resolvconf/resolv.conf, но этот файл не существует в моей системе.


Я попробовал комбинацию нижеприведенных решений и затем отредактировал, resolv.confчтобы включить, nameserver 127.0.0.1потому что у меня была эта проблема около года назад, и тогда я думаю, что это как-то связано с этой линией. После перезапуска файл был перезаписан, но не просто комментариями, а другой nameserver …строкой и некоторыми другими вещами. Наконец, это работает ...
Себастьян Саймон

Ответы:


70

Используйте следующую команду и ответьте YES, чтобы включить динамическое обновление:

sudo dpkg-reconfigure resolvconf

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


1
Работал отлично. У меня старый ноутбук с 12.04 разряженным аккумулятором, который я случайно отключил. Мог бы пропинговать мой домашний роутер, но не получить веб-страницы. Как ни странно, может получить доступ к другой сети Wi-Fi. Это дало мне доступ через домашнюю сеть снова.
Марк Д

Остается вопрос: почему пропала символическая ссылка? Этот вопрос решается в ошибке # 1000244 ( bugs.launchpad.net/ubuntu/+source/resolvconf/+bug/1000244 ). См. Комментарий № 66 для моих лучших предположений о различных причинах этой проблемы.
Jdthood

2
Хотелось бы, чтобы на бирже в стеке была кнопка «чаевые» или «купи меня пиво», чтобы поблагодарить людей.
Крисфол

1
Мне нужно было сделать это даже на Ubuntu 16.04 / Elementary OS 0.4 Loki
Reg Mem

1
Это только что произошло со мной в Ubuntu 16.10. Решение все еще работает, хотя диалог настоятельно рекомендует немедленную перезагрузку. Изменить: это произошло неожиданно вчера, более чем через месяц после обновления.
Асалазар

16

У меня такая же проблема. Похоже, что Ubuntu сейчас использует локальный распознаватель. Самый быстрый способ удалить это закомментировать следующую строку /etc/NetworkManager/NetworkManager.conf:

#dns=dnsmasq

Для получения дополнительной информации, пожалуйста, посмотрите на эту страницу .


1
Отключение этой строки и перезапуск NM не имеют для меня заметного эффекта. Ошибка все еще происходит, и NM все еще отказывается заполнить resolv.conf.
Cerin

1
Спасибо за эту информацию! Я также должен был перезапустить менеджер сети: sudo /etc/init.d/network-manager restart.
Итан Леруа

5

Если /etc/resolv.conf - это файл, переместите его в /run/resolvconf/resolv.conf:

sudo mv /etc/resolv.conf /run/resolvconf/resolv.conf

Затем создайте символическую ссылку:

sudo ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf

1
Это помогает. Но более простой и надежный (опечатки) способ сделать это sudo dpkg-reconfigure resolvconfи ответить ДА.
geekQ

Это отличный способ , если вы собираетесь сделать dpkg-reconfigure resolvconf --frontend=noninteractiveпоследовать resolvconf -u. Если вы сначала не переместите файл и символическую ссылку, произойдет сбой автоматической dpkg -configure, поскольку /etc/resolv.confона не является символической ссылкой.
Джастин Форс

1

Были проблемы с моим ноутбуком, пришлось

sudo dhclient wlan0 

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

sudo dpkg-reconfigure resolvconf

решил мою проблему!

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