Я работаю в дистрибутиве Linux (linaro) на основе Ubuntu, работающем под управлением xfce. Мой сетевой менеджер подключается к точкам беспроводного доступа, но не может сделать две вещи:

  • динамически получить сервер имен и написать динамический /etc/resolv.conf . На самом деле, было бы замечательно, если бы я мог сделать это для некоторых конкретных сетей и использовать стандартный /etc/resolv.conf в других сетях.
  • Мой браузер не перенаправляет на страницы входа. Понятно, что это как-то связано с проблемой сервера имен.

Я проверил мой /etc/dhcp/dhclient.conf и он имеет маску подсети запроса строки request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.name-servers, dhcp6.sntp-servers; Поэтому, если я запускаю sudo dhclient <network inteface> он без проблем переписывает файл /etc/resolv.conf . Так что, если я "подключаюсь вручную", используя wpa-supplicant и dhclient, это работает отлично. Я предполагаю, что это проблема с сетевым менеджером. Сетевой менеджер не использует dhclient? Как это исправить?

2 ответа2

1

В моей системе (Ubuntu 14.04) файл /etc/resolv.conf создается пакетом resolvconf (он установлен?) и это просто символическая ссылка на файл ../run/resolvconf/resolv.conf.

IP-адрес в /etc/resolv.conf является фиктивным внутренним IP-адресом. Чтобы получить реальный адрес сервера имен, вы можете использовать «nm-tool» или "nmcli device list iface eth0".

Какой метод вы выбрали в Network-mananger под IPv4, «Автоматический (DHCP)» или «Только автоматический (DHCP) адрес». Я думаю, что вы должны использовать первый.

Какая у вас версия системы linaro и на какой версии Ubuntu она основана?

0

Оказывается, что более новые версии NetworkManager используют программу под названием dnsmasq в качестве распознавателя DNS. Таким образом, даже если вы удалите файл /etc/resolv.conf из вашей системы, NetworkManager будет работать правильно. На самом деле, dnsmasq имеет явную возможность НЕ читать resolv.conf . Вот что обычно запускает мой NetworkManager: dnsmasq --no-resolv В нем также есть файл /var/run/nm-dns-dnsmasq.conf . Это настраивается с использованием файлов в /etc/NetworkManager/dnsmasq.d/ Посмотрите документацию dnsmasq, чтобы узнать больше о его конфигурации. Похоже, это довольно мощный инструмент.

dnsmasq можно отключить, удалив строку dns=dnsmasq в файле /etc/NetworkManager/NetworkManager.conf . Тогда - хотя я не проверял это - он должен по умолчанию использовать dhclient, основываясь на том, что я прочитал в документации NetworkManager.

Другая возможная проблема заключалась в том, что в /etc/NetworkManager/NetworkManager.conf была строка, в которой говорилось [ifupdown] managed=false Я изменил это значение на true, и NetworkManager снова начал работать должным образом. Более новые версии NetworkManager (точные и более поздние) также имеют тенденцию останавливаться на 60 или более секунд в начале, ожидая сообщения о waiting for network configuration во время загрузки. Обычно это происходит из-за синтаксической ошибки в /etc/network/interfaces . Я исправил это, имея только следующие строки в файле auto lo iface lo inet loopback

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .