Ubuntu перезагрузить сеть netplan

Обновлено: 03.07.2024

Начиная с Ubuntu 18.04 конфигурирование сети выполняется с помощью утилиты netplan. В других системах на базе deb, например, Debian, она может быть установлена командой:

apt-get install netplan

В данной статье рассмотрим принцип и примеры настройки сети с помощью netplan.

Конфигурационный файл

Файл для настройки сети находится в каталоге /etc/netplan/. Имя файла может быть любым, на конце должно быть расширение yaml, например:

* чаще всего, это файл 50-cloud-init.yaml или 01-netcfg.yaml.

Простая настройка сети

Разберем пример настройки 3-х сетевых интерфейсов. Два из них будут с IP-адресами назначенными вручную (static IP), один — по DHCP.

Приводим файл к следующему виду:

  • version — версия YAML. На момент обновления статьи, была 2.
  • renderer — менеджер сети (networkd или NetworkManager).
  • ethernets — настройка сетевых адаптеров ethernet.
  • ens3, ens7, ens9 — настройки для соответствующих сетевых адаптеров. В данном примере мы настраиваем 3 сетевых адаптера.
  • dhcp4 — будет ли получать сетевой адаптер IP-адрес автоматически. Возможны варианты yes/true — получать адрес автоматически; no/false — адрес должен быть назначен вручную.
  • addresses — задает IP-адреса через запятую.
  • gateway4 — шлюз по умолчанию. В данном примере указывается только для интерфейса ens7.
  • mtu — при желании, можно задать значение MTU.
  • nameservers — настройка серверов имен (DNS).
  • nameservers addresses — указываем серверы DNS. Обратите внимание на разный формат записи для ens7 и ens9. Приемлемы оба варианта.
  • nameservers search — дописывает окончание домена, если мы обращаемся к узлу сети только по его имени. Стоит обратить внимание, что мы можем указать несколько доменов через запятую.

Применение настроек

Для применения настроек необходимо запустить команду netplan. Ее синтаксис:

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

Для проверки нашего конфигурационного файла вводим:

netplan --debug generate

Для применения настроек вводим:

* данную команду мы вводим также для перечитывания настроек и перезапуска сети (вместо привычных restart и reload).

Статический маршрут

Статический маршрут задается для конкретного интерфейса, также в конфигурационном файле netplan, например:

network:
version: 2
renderer: networkd
ethernets:
ens9:
dhcp4: no
addresses: 192.168.1.10/24
nameservers:
addresses:
- 8.8.8.8
- 77.88.8.8
routes:
- to: 192.168.0.0/24
via: 192.168.1.1
on-link: true

* в данном примере мы настроили маршрут для сетевого интерфейса ens9. Данная настройка задается параметром routes:

  • to — направление маршрута (в какую сеть мы должны попадать). В данном примере, 192.168.0.0/24.
  • via — через какой шлюз мы попадаем в сеть to.
  • on-link — активация маршрута при поднятии линка на сетевом интерфейсе.

Объединение интерфейсов (bonds)

С помощью bonds мы можем объединить интерфейсы с целью обеспечения отказоустойчивости и/или повышения пропускной способности.

network:
version: 2
renderer: networkd
ethernets:
ens2f0: <>
ens2f1: <>
bonds:
bond0:
dhcp4: no
interfaces:
- ens2f0
- ens2f1
parameters:
mode: active-backup
addresses:
- 192.168.122.195/24
gateway4: 192.168.122.1
mtu: 1500
nameservers:
addresses:
- 8.8.8.8
- 77.88.8.8

* в данном примере мы объединяем физические интерфейсы ens2f0 и ens2f1; настройка parameters mode указываем на тип объединения — доступны варианты:

  • balance-rr (задействуются оба интерфейса по очереди, распределение пакетов по принципу Round Robin).
  • active-backup (используется только один интерфейс, второй активируется в случае неработоспособности первого).
  • balance-xor (задействуются оба интерфейса по очереди, распределение пакетов на основе политики хеширования xmit_hash_policy).
  • broadcast (задействуются оба интерфейса одновременно, пакеты передаются все интерфейсы).
  • 802.3ad (задействуются оба интерфейса по очереди, распределение пакетов на основе политики хеширования xmit_hash_policy)
  • balance-tlb (задействуются оба интерфейса по очереди, пакеты распределяются в соответствии с текущей нагрузкой)

Сетевой мост (bridge)

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

network:
version: 2
renderer: networkd
ethernets:
ens2f0: <>
bridges:
br0:
macaddress: ce:ce:ce:45:45:45
interfaces:
- ens2f0
addresses:
- 192.168.1.15/24
gateway4:
nameservers:
addresses:
- 77.88.8.8
- 8.8.8.8
mtu: 1500
parameters:
stp: true
forward-delay: 4
dhcp4: false
dhcp6: false

  • bridges — настройки для интерфейсов bridge.
  • bridges br0 — настройка интерфейса br0.
  • macaddress — физический адрес (MAC) интерфейса. Настройка важна для некоторых провайдеров VPS — без нее бридж может не заработать.
  • interfaces — перечисление интерфейсов, из которых собираем мост. В данном примере ens2f0.
  • addresses, gateway4, nameservers — сетевые настройки (IP-адрес, шлюз, сервер имен).
  • mtu — одноименный параметр. Для сетей ethernet обычно равен 1500.
  • parameters stp — включает или отключает устранение петель в сети. В данном примере включено.
  • parameters forward-delay — время в секундах в течение которого мост будет оставаться в состояниях «Listening» и «Learning».
  • dhcp4, dhcp6 — включает или отключает автоматическое получение IP-адреса. В нашем случае, отключает.

Подробнее про настройку сетвого моста для KVM в инструкции Настройка KVM на Ubuntu Server.

Также мы можем настроить тегированный интерфейс vlan:

network:
version: 2
renderer: networkd
ethernets:
ens3: <>
vlans:
vlan5:
id: 5
link: ens3
dhcp4: no
addresses: [10.0.0.15/24]
gateway: 10.0.0.1

* в данном примере мы настроили интерфейс с тегом 5 на физическом адаптере ens3.

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

network:
version: 2
renderer: networkd
wifis:
wlp2s0b1:
dhcp4: no
dhcp6: no
addresses: [192.168.2.10/24]
gateway4: 192.168.2.1
nameservers:
addresses: [192.168.2.1, 77.88.8.8]
access-points:
<имя WiFi сети (SSID)>:
password: wifi_password

  • wifis — определяет настойки для WiFi.
  • wlp2s0b1 — настройка для беспроводного сетевого адаптера.
  • dhcp4, dhcp6 — включает или отключает автоматическое получение IP-адреса.
  • addresses, gateway4, nameservers — настройка сети (IP-адрес, шлюз, сервер DNS).
  • access-points — настройка для подключения к беспроводной сети.
  • <имя WiFi сети (SSID)> — имя беспроводной сети, к которой будем подключаться.
  • password — пароль для подключения к беспроводной сети.

Отключение netplan и возврат к interfaces

При желании, мы можем вернуть привычный принцип настройки сети. Для этого выполним несколько шагов.

1. Открываем настройку grub:

2. Находим опцию GRUB_CMDLINE_LINUX и дописываем в нее параметр:

* если GRUB_CMDLINE_LINUX содержит другие настройки, то наш параметр добавляем через пробел.

3. Устанавливаем пакет ifupdown:

apt-get install ifupdown

4. Настраиваем сеть в файле:

auto lo
iface lo inet loopback

auto ens5
iface ens5 inet dhcp

* в данном примере мы настраиваем сетевой интерфейс ens5 на автоматическое получение IP-адреса.

5. Применяем настройки загрузчика:

И перезагружаем систему:

Возможные ошибки

1. Error in network definition *.yaml line xxx column yyy: expected mapping

Ошибка появляется при проверке (generate) или применении (apply) настроек сети.

Причина: ошибка синтаксиса YAML.

Решение: внимательно смотрим на количество отступов, которое сделано для строки xxx. Количество пробелов должно точно соответствовать количеству в других строках. Если параметр вложенный, он также должен отделяться от родителя нужным количеством пробелов. Пример неправильной настройки:

network:
version: 2
renderer: networkd

* обратите внимание, что version имеет 4 пробела для отступа, а renderer — 2. Так как version и renderer равнозначные параметры для родителя network, они должны иметь одинаковое количество пробелов.

Начиная с релиза 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 и более ранних версиях.

Шаг 1. Использование графического интерфейса пользователя

Как перезапустить сеть в Ubuntu

Щелкните сетевой интерфейс и выберите параметр « Выключить », чтобы отключить сетевую службу.

Как перезапустить сеть в Ubuntu

Чтобы включить сетевую службу, перейдите в правый верхний угол и щелкните значок стрелки вниз. Убедитесь, что ваш сетевой интерфейс отключен, как показано ниже.

Как перезапустить сеть в Ubuntu

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

Как перезапустить сеть в Ubuntu

Это откроет интерфейс и возобновит работу сетевых служб в обычном режиме 🙂

Шаг 2. Использование командной строки

Для фанатов командной строки доступны несколько вариантов для достижения того же результата. Мы обсудим несколько команд, которые вы можете использовать для перезапуска сетевой службы в Ubuntu 18.04.

Netplan

Systemctl

Поскольку Ubuntu 18.04 основан на systemd init, вы также можете использовать, systemctl как показано

Service

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

Nmcli

Ifup/ifdown

Наконец, у нас есть команды ifup / ifdown, которые можно использовать следующим образом

Для более старых версий Ubuntu

Для более старых версий Ubuntu (14.04 LTS и более ранних) вы можете перезапустить сеть с помощью следующих команд

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

Чтобы остановить сетевую службу в старых версиях Ubuntu, запустите

После остановки службы самое время запустить службу.

Запустить сетевую службу

Чтобы запустить сетевую службу, запустите

Это довольно простая команда, но сколько раз у вас возникают проблемы с перезапуском сети? Не стесняйтесь добавлять любые комментарии о своем опыте и делиться этой статьей.

Как часто вы перезапускаете сетевые службы? Иногда вам может потребоваться устранить неполадки сетевого подключения в случае, если вы внесли изменения в свою сеть или просто не можете получить доступ к Интернету. В этом руководстве мы покажем как вы можете перезапустить сетевую службу в Ubuntu.

1) Перезапуск сети с использованием графического интерфейса Ubuntu

Одним из способов перезапуска сети в Ubuntu является использование графического интерфейса GNOME. Перейдите в правый верхний угол экрана и нажмите на значок сети, как показано на рисунке. Далее должно открыться раскрывающееся меню. Вы сможете увидеть тип сетевого подключения. В данном случае я использую проводное соединение. Возможно, вы используете беспроводное соединение Wi-Fi.

Как перезапустить сеть в Ubuntu

Как перезапустить сеть в Ubuntu

Отключает сетевую службу Ubuntu

Отключает сетевую службу Ubuntu

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

Включение сетевого интерфейса в Ubuntu

Включение сетевого интерфейса в Ubuntu

Включение сетевого интерфейса

Включение сетевого интерфейса

Это действие включит интерфейс и возобновит работу сетевых служб в графическом режиме режиме.

2) Перезапуск сети с использованием командной строки

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

Команда Netplan

Systemctl

Так как Ubuntu 18.04 основана на systemd init , вы также можете использовать systemctl , как показано ниже:

$ sudo systemctl restart NetworkManager.service

Service

Так же вы можете использовать команду service для достижения того же результата.

$ sudo service network-manager restart

Nmcli

$ sudo nmcli networking off
$ sudo nmcli networking on

Ifup/ifdown

Команды ifup/ifdown можно использовать следующим образом

Для более старых версий Ubuntu

Для более старых версий Ubuntu (14.04 LTS и более ранних) вы можете перезапустить сеть с помощью следующих команд

$ sudo service networking restart

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

Чтобы остановить сетевую службу в старых версиях Ubuntu, выполните

После остановки службы ее требуется запустить.

Запустить сетевую службу Ubuntu

Чтобы запустить сетевую службу, выполните

Вот в принципе и все. Это очень простые команды которые перезапустят сеть в Ubuntu. Так как не всегда удобно перезагружать сервер или компьютер. Если вы нашли неточности или ошибки, большая просьба сообщить об этом.

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