В чем разница между Network Manager и ifconfig, ifup и т. Д.?

53

Ubuntu, по-видимому, предоставляет как минимум два сетевых «набора инструментов» (из-за отсутствия лучшего термина). Я сталкиваюсь с конфликтами между этими двумя.

Я часто сталкиваюсь с конфликтами между этими различными наборами инструментов. Например, я запускаю Ubuntu Desktop дома и использую программное обеспечение, такое как KVM / libvirt, которое рекомендует отключить Network Manager , но отключение Network Manager приводит к поломке других компонентов.

В чем разница между Network Manager и традиционными сетевыми инструментами? Могут ли эти два комплекта работать бок о бок или я должен придерживаться одного или другого? Есть ли документ, который обобщает разницу между этими различными инструментами? Я не смог найти один.

(Простите за неопределенность этого вопроса. Я искал и искал ответ, но я нашел только много смутных ответов, которые не имеют отношения к Ubuntu 10.04 / Lucid, и я не совсем понимаю цель NetworkManager. Однако Это часто задаваемый вопрос. Если у вас есть совет по разъяснению этого вопроса, пожалуйста, оставьте комментарий.)

Стефан Ласевский
источник

Ответы:

53

NetworkManagerи ifconfigне (по умолчанию) совместимы ( NetworkManagerне будут настраивать интерфейсы, перечисленные в /etc/network/interfaces). NetworkManagerэто своего рода демон настроек, который гарантирует, что несколько пользователей могут редактировать сетевые подключения, это очень разумно в среде настольных компьютеров (особенно на ноутбуках, которые могут перемещаться между различными беспроводными сетями). В основном NetworkManagerэто оболочка для iproute, dhclient, wpa_supplicantи ppp.

ifconfig это общий инструмент для настройки сетевых интерфейсов, например, вы можете сделать так:

ifconfig eth1 10.0.0.1 netmask 255.0.0.0 hw ether 10:10:10:10:10:10
ifconfig eth1 down

установить свой IP-адрес, маску сети и MAC-адрес eth1, а затем отключить (отключить / выключить) интерфейс. ifconfigне читает конфигурационные файлы и делает только то, что ему говорят.

ifupи ifdownявляются вспомогательными программами, которые используют ifconfigдля настройки сетевого интерфейса в соответствии с /etc/network/interfacesэтим, убедитесь, что, если есть какие-либо сценарии вверх, вниз, вверх-вверх, вниз-вниз, после-вверх, после-вниз, которые нужно запустить, они будут быть.

Хорошо, тогда есть wpa_supplicantи dhclient. dhclientявляется клиентом DHCP - ifupбудет использовать это, если сетевой интерфейс настроен для DHCP, как будет NetworkManager. wpa_supplicantинструмент для настройки шифрования в беспроводных сетях

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

man interfaces
man ifconfig
man ifup

Так что, как говорится, я бы порекомендовал вам удалить (или отключить) NetworkManager, я не думаю, что что-либо сломается от удаления, NetworkManagerкроме инструментов графического интерфейса для настройки сети. Если вы хотите настроить беспроводную связь без NetworkManagerвас, вы можете посмотреть на это .

LassePoulsen
источник
8

Эти наборы инструментов являются взаимодополняющими, а не взаимоисключающими.

FWIW, ifconfigэто просто инструмент среди других *configинструментов, которые используются для настройки сетевых интерфейсов.

Инструменты ifup(8)и ifdown(8)находятся на один уровень выше *configинструментов. Вы можете думать о них как о вспомогательных инструментах.

Кроме того, NetworkManager является уровень выше ifup(8)и ifdown(8)инструментов. Из-за отсутствия лучшего термина NetworkManager может организовать инструменты (ets) из уровней ниже, чтобы выполнить задачи более высокого уровня, такие как Общий доступ к подключению к Интернету, с большей легкостью по сравнению с использованием инструментов из уровней ниже.

Ли Ло
источник
Если вам нужны дополнительные детали, оставьте комментарий, и я обязуюсь.
Ли Ло
2
@Li Lo: Да, пожалуйста, предоставьте дополнительную информацию. Я думал, что ifup / ifdown изменит хосты в / etc / network / interfaces, а Network Manager будет игнорировать любые интерфейсы в / etc / network / interfaces. (См. Вопрос «d. Почему Network Manager не управляет моими сетями?» В разделе « Часто задаваемые вопросы / Общие проблемы / Подводные камни»
Стефан Ласевский,
Ehm, ifup / ifdown используют / etc / network / interfaces и отделены от NetworkManager. NetworkManager вообще не связывается с / etc / network / interfaces, за исключением чтения по умолчанию списка интерфейсов, которые следует игнорировать.
user1338062
Проголосовал этот ответ, так как он был назван явно неправильным, и от автора нет ответа. Поэтому я предполагаю, что обвинение верно.
Пенге Гэн
0

Network Manager - это программа с графическим интерфейсом, используемая при работе с Ubuntu в качестве операционной системы для рабочей станции, установленной на вашем настольном компьютере / ноутбуке.

Утилиты типа ifconfig основаны на командной строке и используются при работе с Ubuntu в качестве серверной ОС, когда у вас нет доступного графического интерфейса (например, при загрузке экземпляра Amazon EC2 на основе Ubuntu) , Обычно они используются через ssh-соединение.

ggheorghiu
источник
6
Да, я однажды использовал ifdownкоманду через соединение ssh. Это не сработало для меня.
Игорь Зиновьев
5
Network Manager - это не просто графический интерфейс. Существует также демон сетевого менеджера, который отличается от апплета графического пользовательского интерфейса network-manager-gnome. В чем разница между сетевым менеджером и традиционными сетевыми инструментами?
Стефан Ласевский,
1
NetworkManager работает поверх wpa-supplicant, который является / другим / инструментом для настройки сети. / etc / network / interfaces может также выполнять вызовы wpa-
соискателя
1
На самом деле NetworkManager - это не только инструмент с графическим интерфейсом. Вы также можете использовать его с командной строкой.
LittleByBlue
Этот ответ просто неверен. ifconfigэто просто старый инструмент для работы в сети.
LittleByBlue
0

Если вы удалите сетевой менеджер, я предполагаю, что вам нужно настроить / etc / network / interface для работы интерфейсов.

user254450
источник