Ubuntu server netplan отключить

Обновлено: 03.07.2024

Ubuntu потрясающая операционная система, давно не работал с Ubuntu server, а обновлять свой Desktop со стабильной версии не было смысла. И вот не давно пришлось столкнутся со свеженьким релизом Ubuntu server 18.04, моему удивлению не было предела. Когда я понял что я бесконечно отстал от жизни и не могу настроить сеть, т.к старая добрая система настройки сетевых интерфейсов по средствам редактирования файла /etc/network/interfaces канула в Лету. А что же пришло ей на смену? Что-то ужасное и на первый взгляд совершенно не понятное, встречайте «Netplan».

Признаться честно, сначала я не мог понять в чем дело и ''зачем это нужно, ведь все было так удобно", но получив немного практики понял, что в нем есть свой шарм. И так хватит лирики продолжим. Что же такое Netplan — это новая утилита для настройки сети в Ubuntu, по крайне мере «в других дистрибутивах я не встречал подобного». Существенное отличие Netplan является то, что конфигурация пишется на языке YAML, да да вы не ослышались YAML, разработчики решили идти в ногу со временем (и как бы много не расхваливали его я все-таки считаю его ужасным языком). Основной минус этого языка в том что он очень чувствителен к пробелам, давайте же рассмотрим конфиг на примере.

Файлы конфигурации находятся по пути /etc/netplan/имяфайла.yaml, между каждым блоком когда должно быть + 2 пробела.

1) Стандартная шапка выглядит так:


Давайте рассмотрим что мы сейчас сделали:

  • network: — это блок начало конфигурации.
  • renderer: networkd — здесь мы указываем сетевой менеджер который будем использовать, это либо networkd либо NetworkManager
  • version: 2 — тут, как я понял, версия YAML.
  • ethernets: — этот блок говорит о том, что будем конфигурировать ethernet протокол.
  • enps0f0: — указываем какой сетевой адаптер будем конфигурировать.
  • dhcp4:no — отключаем DHCP IPv4, для IPv6, dhcp6 соответственно


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

3)А что если нам нужен bonding?

  • bonds: — блок, поясняющий что мы будем настраивать bonding.
  • bond0: — произвольное имя интерфейса.
  • interfaces: — набор интерфейсов собираемых в bond-динг, ''как оговаривалось ранее если параметров несколько описываем их в квадратных скобках".
  • parameters: — описываем блок настройки параметров
  • mode: — указываем мод по которому будет работать bonding.
  • mii-monitor-interval: — задаем интервал мониторинга 1 сек.

Мы добавили резервирование для нашей сети, теперь осталось только повесить vlan и настройку можно считать оконченной.

  • vlans: — объявляем блок настройки vlan.
  • vlan10: — произвольное имя vlan интерфейса.
  • id: — тег нашего vlan.
  • link: — интерфейс через который vlan будет доступен.
  • routes: — объявляем блок описания маршрутов.
  • — to: — задаем адрес/подсеть до которой необходим маршрут.
  • via: — указываем шлюз через которой будет доступна наша подсеть.
  • on-link: — указываем что прописывать маршруты всегда при поднятии линка.

Вот мы описали сетевые интерфейсы, создали bonding, и даже добавили vlan-ы. Давайте применим наш конфиг, команда netplan apply проверит наш конфиг на наличие ошибок и применит его в случае успеха. Далее конфиг будет сам подниматься при перезагрузке системы.

Начиная с релиза Ubuntu 17.10, для управления конфигурацией сети используется утилита Netplan. Раньше для этих целей применялся скрипт ifupdown, конфигурационные файлы которого находились в папке /etc/network/interfaces. Недостатком такого подхода было то, что файлы настройки сети были разбросаны по всей системе, частью настроек мог управлять NetworkManager, частью systemd-networkd, а часть вообще делалась с помощью ifupdown.

Новая система конфигурации позволяет таки сложить все яйца в одну корзину. Вы выполняете настройку в формате YAML, а Netplan автоматически преобразовывает её при запуске в конфигурацию той системы, которую вы выбрали. В этой статье мы рассмотрим, как выполняется настройка сети Netplan в Ubuntu 18.04.

Основы использования Netplan

Все конфигурационные файлы Netplan находятся в папке /etc/netplan/. Во время запуска службы, она преобразовывает свою конфигурацию в конфигурацию той службы, которая будет управлять сетью и помещает её в каталог /run/. По умолчанию в Ubuntu есть только один конфигурационный файл со следующим содержимым:

Это означает, что управление всей сетью передаётся утилите NetworkManager. Чтобы разобраться, что это означает, давайте рассмотрим синтаксис конфигурационного файла.

1. Синтаксис конфигурации Netplan

Новичкам синтаксис конфигурационного файла Netplan может показаться запутанным, но разобраться в нём вполне можно. Он чем-то напоминает JSON, но не имеет таких жёстких ограничений:

поле0 :
поле1 : значение
поле2 :
- элемент1
- элемент2
- элемент3

Имя поля и его значение разделяется двоеточием. В качестве значения поля можно передавать не только текстовое или числовое значение, но и другое поле, несколько полей или список значений. При передаче списка каждый новый элемент списка должен начинаться с дефиса. Табуляции использовать нельзя. Отступы используются для указания структуры. Например, из примера видно, что поле1 и поле2 относятся к полю0. Это всё, что касается общего синтаксиса, теперь про Netplan:

network :
version : 2
renderer : программа_бэкенд
вид_интерфейса :
имя_интерфейса :
параметр : значение

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

  • renderer - указывает программу, для которой будут преобразоваться ваши настройки. На данный момент поддерживаются только network-manager и systemd-networkd;
  • вид_интерфейса - вид сетевых интерфейсов, которые вы будете настраивать в этой секции. Они делятся на физические: ethernets (проводные), wifis (беспроводные) и виртуальные: vlans , bonds, bridges.
  • имя_интерфейса - имя сетевого интерфейса в системе, например enp3s0 или eth0;
  • параметры - настройки, с помощью которых указывается, как нужно подключаться к сети.

2. Параметры Netplan

Мы разобрались с основным синтаксисом, далее разберём команды, с помощью которых мы будем настраивать сеть:

  • renderer - программа для обработки конфигурации;
  • dhcp4 - получение IPv4 адреса по DHCP;
  • dhcp6 - получение IPv6 адреса по DHCP;
  • dhcp-identifier - если передать значение "mac", то будет использоваться MAC-адрес в качестве идентификатора DHCP;
  • addresses - добавляет статические адреса к интерфейсу, можно несколько;
  • gateway4 - указывает шлюз IPv4;
  • gateway6 - указывает шлюз IPv6;
  • nameservers - указывает DNS-серверы;
  • macaddress - устанавливает новый MAC-адрес;
  • routes - позволяет настроить маршруты таблицы маршрутизации;
  • routing-policy - дополнительная настройка маршрутов, для IP или подсети;
  • access-points - список точек доступа для Wi-Fi;
  • password - пароль для точки доступа Wi-Fi;
  • mode - режим работы сетевой карты Wi-Fi.

3. Команды Netplan

Синтаксис самой команды netplan очень прост:

netplan опции команда

В качестве команды можно передать одну из команд:

  • try - попробовать применить конфигурацию с возможностью отмены;
  • apply - применить конфигурацию;
  • generate - проверка текущей конфигурации и запись на диск;
  • config - записать текущую конфигурацию сети в YAML.

Как настроить сеть Netplan в Ubuntu

Сначала необходимо посмотреть, как называются сетевые интерфейсы в вашей системе. Для этого можно просто изучить содержимое папки /sys/class/net:

У меня есть только Wi-Fi-карта - wlp, у вас же может быть ещё и проводной интерфейс enp. Или устройства могут называться по старому - wlan и eth. Всё зависит от системы.

1. Настройка динамического IP в Netplan

Для настройки динамического IP- адреса для интерфейса enp3s0 создадим новый конфигурационный файл 02-networkd.yaml. Самая простая настройка Netplan для получения IP по DHCP будет выглядеть вот так:

sudo vi /etc/netplan/02-networkd.yaml

network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: yes

В качестве программы для обработки конфигурации мы используем Networkd, далее мы указываем наш сетевой интерфейс и включаем получение IPv4 адреса по DHCP. Все остальные параметры тоже подтянутся по DHCP. Или мы можем вручную настроить DNS для этого интерфейса:

network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: yes
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4

Теперь осталось проверить эту конфигурацию. Для этого выполните:

sudo netplan generate

Если ошибок нет, программа ничего не выведет и запишет вашу конфигурацию на диск. Если есть ошибки, утилита о них сообщит.

2. Настройка статического IP в Netplan

Статический IP-адрес в Netplan настроить немного сложнее. Поскольку здесь нам нужно будет задать не только непосредственно сам адрес, но и кучу других параметров, которые система раньше получала по DHCP. Нам надо указать шлюз для доступа в интернет и DNS-серверы. Модифицируем тот же конфигурационный файл:

sudo vi /etc/netplan/02-networkd.yaml

network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
addresses: [ 192.168.1.10/24 ]
gateway4: 192.168.1.1
nameservers:
addresses: [ 8.8.8.8, 8.8.4.4 ]

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

  • dhcp4 - отключаем получение IP адреса по DHCP;
  • addresses - параметр ожидает список IP-адресов, которые нужно присвоить нашей сетевой карте, у нас только один адрес, однако, передавать его надо тоже в формате списка, иначе будет ошибка. В конце адреса указывается префикс маски - /24, который отвечает маске сети 255.255.255.0. Вы можете указать и другую маску, но только с помощью префикса, отдельного параметра для этого нет.
  • gateway4 - задаёт адрес роутера, через который наш компьютер сможет получить доступ в интернет;

Остальное вы знаете. Списки можно оформлять не только с помощью черточек, для каждого пункта с новой строки, но и с помощью квадратных скобок, тогда элементы записываются в одну строку через запятую.

3. Настройка Wi-Fi через Netplan на Ubuntu

Кроме проводного подключения, система конфигурации Netplan умеет управлять подключением к Wi-Fi. Это отличная новость, учитывая, насколько сложно всё это раньше настраивалось, если не было NetworkManager. Правда, для работы Wi-Fi через Networkd надо, чтобы в системе был установлен пакет wpasupplicant. Например, у нас есть точка доступа AccessPoint с паролем 12345678? и мы хотим к ней подключаться. Тогда настройка Netplan Ubuntu будет выглядеть так:

network:
version: 2
renderer: networkd
wifis:
wlp3s0b1:
dhcp4: yes
dhcp6: no
nameservers:
addresses: [ 8.8.8.8, 8.8.4.4 ]
access-points:
"AccessPoint":
password: "12345678"


Здесь мы указываем, что надо получить IP и другие параметры по DHCP, устанавливаем DNS-сервер вручную, хотя это не обязательно, а затем добавляем точку доступа и пароль к ней.

4. Применение конфигурации netplan

Естественно, что после смены настроек в конфигурационном файле ничего не меняется. Сначала нужно проверить конфигурационный файл на ошибки и создать файлы конфигурации программы-обработчика. Для этого выполните:

sudo netplan generate

Если вы хотите видеть более подробную информацию, используйте опцию --debug:

sudo netplan --debug generate

sudo netplan --debug apply


Если вы меняли программу-обработчик, например с NetworkManager на networkd, то надо ещё перезапустить компьютер. После этого сеть будет работать на новой конфигурации.

Выводы

В этой статье мы рассмотрели, как выполняется настройка сети Netplan в Ubuntu 18.04. Как видите, это не очень сложно, и даже удобно, по сравнению со старой конфигурацией. Конечно, есть некоторые недостатки - та же самая невозможность задать маску без префикса, но программа активно развивается, возможно, в будущем это будет исправлено.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Начиная где- то около Ubuntu 18.04, разработчики Ubuntu перестали использовать классический /etc/init.d/networking и /etc/network/interfaces способ конфигурирования сети и переключились на какую - то вещь называется netplan . Это очень разозлило многих людей и считалось плохим ходом. Можно ли удалить netplan и использовать правильный /etc/network/interfaces метод для настройки сети?

Почему бы просто не настроить с Netplan? В большинстве ситуаций это довольно просто. @ chili555 Возможно, мне просто нужно принять изменения и узнать что-то новое. Я просто хотел бы знать, тривиально ли вернуться к тому, что должно быть. Как и systemd я, я понимаю, что подрывные изменения иногда могут быть полезны и могут быть приняты. Тем не менее, это, безусловно, не тот случай, когда изменения были необходимы или полезны. Это не тривиально и не легко обратимо в случае ошибки. Если ты хочешь жить опасно, я буду рад предложить ответ. С другой стороны, мы можем настроить netplan за пару минут. Какой ты предпочитаешь? PS - Я не претендую на полное понимание того, как netplan, за исключением /etc/network/interfaces , вписывается в общую системную картину. Все, что я могу сделать, - это верить, что те, кто представил изменения, знают, почему они лучше подходят. Или просто правильно настройте netplan и все готово.

Следующая процедура работает для Ubuntu 18.04 (Bionic Beaver)

I. Переустановите пакет ifupdown :

II. Сконфигурируйте ваш файл / etc / network / interfaces с помощью разделов конфигурации, таких как:

III. Сделайте настройку эффективной (перезагрузка не требуется):

Внутривенно Отключите и удалите нежелательные сервисы:

Тогда все готово.

Примечание. Конечно, вы ДОЛЖНЫ адаптировать значения в соответствии с вашей системой (сеть, имя интерфейса . ).

V. DNS Resolver

Поскольку Ubuntu Bionic Beaver (18.04) использует преобразователь заглушки DNS, предоставленный SYSTEMD-RESOLVED.SERVICE (8), вы ДОЛЖНЫ также добавить DNS для контакта в файл /etc/systemd/resolved.conf. Например:

и затем перезапустите сервис с разрешением systemd, как только это будет сделано:

Записи DNS в файле ifupdown INTERFACES (5), как показано выше, актуальны только в том случае, если вы используете RESOLVCONF (8) или аналогичный.

Ну дерьмо им. Просто, apt-get install когда у вас нет конфигурации сети. Какая блестящая идея, Canonical. @Velkan Вы всегда можете предварительно сконфигурировать свою сеть с помощью netplan, а затем переключиться обратно на ifupdown;) Но я согласился с вами. Как-то канонически принимать плохие решения. Например, они ломают программное обеспечение, которое полагается на ifupdown для конфигурации сети (нет поставщика для сетевого плана). Это касается нашего программного обеспечения панели управления (стабильная серия), в котором мы не хотим добавлять нового поставщика конфигурации сети . @ StefhenBoston Я полностью согласен с вами. Однако, даже если Canonical попытается продвинуться вперед, внедрив новую технологию, она сможет сделать это менее инвазивным способом. Я имею в виду, выбор должен быть оставлен конечному пользователю. Для рабочих станций переход с ifupdown на netplan, конечно, не имеет большого значения, но когда вам приходится иметь дело с серверами Ubuntu, это другая история, потому что большинство стабильных программных продуктов не обязательно предоставляют адаптеры . Это было то же самое для systemd. Мне приходится иметь дело как с Debian, так и с Ubuntu каждый день. Проблема с Ubuntu в том, что они не заботятся о обратной совместимости. Кроме того, если вы используете dns-domain и dns-search в файле интерфейсов, вы должны настроить Domains параметр в resolved.conf, я думаю? Во всяком случае, отличная работа, сложив все это здесь, вероятно, сэкономила мне много времени :)

Команда Netplan опубликовала официальный ответ на свой FAQ здесь :

.

В работающей системе netplan можно удалить, установив ifupdown и сконфигурировав / etc / network / interfaces вручную, как это делали пользователи ранее.

Во время установки пользователь может выбрать использование ifupdown, предварительно выполнив команду netcfg / do_not_use_netplan = true. Это можно сделать, добавив строку preseed в командную строку при загрузке установочного носителя (т. Е. В меню загрузки установочного носителя нажмите F6, введите «e» и добавьте в командную строку).

Смотрите ответ Nuxwin для более полных инструкций.

@Dan Desjardins. См. Принятый ответ относительно проблемы распознавателя DNS. В сущности, записи DNS, которые вы помещаете в файл ifupdown INTERFACES (5), актуальны только при использовании resolvconf (8) или аналогичного. Для преобразователя заглушки DNS, предоставленного SYSTEMD-RESOLVED.SERVICE (8, необходимо добавить DNS в файл /etc/systemd/resolved.conf. Это сделает их постоянными. Другое решение - отключить SYSTEMD-RESOLVED. SERVICE (8) обслуживание и установка / настройка resolvconf (8). В надежде, что я достаточно ясен.

Почему бы просто не настроить с Netplan?

Ну, так как он настроен в 18.04-Desktop, он представляет собой одну линию, передающую управление всем интерфейсам NetworkManager.

Хотя это, вероятно, подходит для 95% пользователей, помните, что NetworkManager запускается только после входа в сеанс.

Если вы хотите, чтобы ваша машина работала в качестве сервера / рабочего стола, например, начала передавать файлы на локальные машины, выступать в качестве VNP-сервера и т. Д. Или что-то «навороченное» до того, как кто-либо вошел в систему, просто по тому простому факту, что у вас будут проблемы с настройкой в ​​стандартном 18.04-Desktop.

Конечно, альтернативой может быть использование конфигурации сервер-Netplan, которая, насколько я прочитал (не проверял сам), вместо этого передает управление systemd-networkd. В этом случае вам лучше узнать, как systemd работает как замена старой инициализации System V.

Если вы пойдете по этому пути, вам все равно придется внести изменения в netplan yaml, поскольку в настольной версии управление передается NetworkManager.

Я предполагаю, что это делается через /etc/default/grub, но где именно я добавляю «netcfg / do_not_use_netplan = true»?

Он добавлен в: GRUB_CMDLINE_LINUX [ ! d4]

У меня этот набор:

Каким будет синтаксис для добавления в «netcfg / do_not_use_netplan = true» к этой существующей настройке?

PS ДА, я хочу удалить netplan, поэтому вопрос конкретно о том, как это сделать, а не почему. СПАСИБО!

33 ответа

Точный способ сделать это трудно, возможно, невозможно найти сейчас в первые дни netplan.

У меня этот набор: GRUB_CMDLINE_LINUX = "ipv6.disable = 1"

Предполагаю, что вы имеете в виду, что ваш /etc/default/grub читает, в частности:

Я также предполагаю, что ссылка, которую вы даете, предполагает, что вы добавляете указанную формулировку:

Я предлагаю вам сделать это, а затем:

Вам также понадобится:

Возможно, он уже установлен.

Наконец, заполните /etc/network/interfaces вручную, чтобы настроить свою сеть так, как вы этого хотите.

Точный процесс для этой пост-установки, насколько я могу найти Google, не существует. Перезагрузите пальцы!

Возиться с grub и делать перезагрузки не требуется вообще. Пожалуйста, уточните мой ответ ниже. – Uqbar 17 May 2018 в 11:00

Точный способ сделать это трудно, возможно, невозможно найти сейчас в первые дни netplan.

У меня этот набор: GRUB_CMDLINE_LINUX = "ipv6.disable = 1"

Предполагаю, что вы имеете в виду, что ваш /etc/default/grub читает, в частности:

Я также предполагаю, что ссылка, которую вы даете, предполагает, что вы добавляете указанную формулировку:

Я предлагаю вам сделать это, а затем:

Вам также понадобится:

sudo apt install ifupdown

Возможно, он уже установлен.

Наконец, заполните /etc/network/interfaces вручную, чтобы настроить свою сеть так, как вы этого хотите.

Точный процесс для этой пост-установки, насколько я могу найти Google, не существует. Перезагрузите пальцы!

Точный способ сделать это трудно, возможно, невозможно найти сейчас в первые дни netplan.

У меня этот набор: GRUB_CMDLINE_LINUX = "ipv6.disable = 1"

Предполагаю, что вы имеете в виду, что ваш /etc/default/grub читает, в частности:

Я также предполагаю, что ссылка, которую вы даете, предполагает, что вы добавляете указанную формулировку:

Я предлагаю вам сделать это, а затем:

Вам также понадобится:

sudo apt install ifupdown

Возможно, он уже установлен.

Наконец, заполните /etc/network/interfaces вручную, чтобы настроить свою сеть так, как вы этого хотите.

Точный процесс для этой пост-установки, насколько я могу найти Google, не существует. Перезагрузите пальцы!

Читайте также: