Содержание статьи:
В этой статье мы узнаем, что такое Netplan и разберемся, как настроить сеть на Ubuntu Server 18.04 через файл конфигурации. Рассмотрим три варианта конфигураций: получение настроек по DHCP, указание статического IP-адреса и конфигурацию для двух сетевых интерфейсов.
Настраивать сеть будем c помощью утилиты Netplan. [Netplan - впервые появилась в Ubuntu 17.10 для облегчения управления сетевыми настройками. Netplan хранит параметры сетевых интерфейсов в формате YAML, конфигурация в формате YAML в свою очередь поддерживается сетевыми рендерами NetworkManager и systemd-networkd, нам предоставляется возможность выбрать, какой из рендеров использовать в качестве основного сетевого демона системы.]
Приступим!
Для того чтобы посмотреть все сетевые интерфейсы введите команду ifconfig -a.(Рис.1)
ifconfig -a

Видим интерфейс "ens160" с IP-адресом - 192.168.3.16. Если у вас другое название интерфейса, то в конфигурациях не забудьте поменять его.
Прописывать конфигурацию интерфейсов будем в файле /etc/netplan/50-cloud-init.yaml, с помощью редактора nano, я так понимаю файл может называться по разному у разных пользователей [К примеру 01-netcfg.yaml], но сразу же после установки файл с расширением .yaml в этой папке один. Поэтому для того чтобы приступить к редактированию файла лучше воспользоваться универсальной командой.(Рис.2)
sudo nano /etc/netplan/*.yaml

Сразу скажу что для того чтобы сохранить документ в nano надо нажать "Ctrl+o"->"Enter", а чтобы закрыть "Ctrl+x"->"Enter".
ВНИМАНИЕ! Отступы слева в конфигурациях должны быть ОБЯЗАТЕЛЬНО и поставлены они должны быть ПРОБЕЛАМИ! В конфигурациях представленных в этой статье количество пробелов правильное, считайте или копируйте:)
Если вы поставите отступы клавишей "TAB", то на этапе проверки конфигурации на ошибки, вылезет ошибка - " Error while loading /etc/netplan/50-cloud-init.yaml, aborting. / Ошибка при загрузке ".
Если же вы решите написать всё в столбик без отступов, получите ошибку - " An error occured: the configuration could not be generated / Произошла ошибка: конфигурация не может быть сгенерирована ".
Самые распространенные параметры в файле /etc/netplan/*.yaml
Для начала разберемся какие самые распространенные параметры в этом файле могут быть.
network:
renderer: networkd - Выбор сетевого рендера. Выбран networkd
ethernets: - Блок с настройками сетевых интерфейсов.
ens160: - Имя первого сетевого интерфейса.
addresses: [192.168.3.13/24] - Статический IP-адрес сетевого интерфейса/Маска сети. На данный момент указан IPv4, можно также через запятую указать IPv6(пишется в кавычках) - [192.168.3.13/24,“2001:1::1/64”]
gateway4: 192.168.3.1 - Указание основного шлюза для IPv4.
gateway6: "2001:4::1"- Указание основного шлюза для IPv6.(пишется в кавычках)
dhcp4: yes/no - или true/false - включить/выключить получение сетевых настроек по DHCP для IPv4.
dhcp6: yes/no - или true/false - включить/выключить получение сетевых настроек по DHCP для IPv6.
macaddress: 52.54.00.6d.3c.59 - указание MAC-адреса.
nameservers: - Блок с настройками DNS.
addresses: [8.8.8.8,8.8.4.4] - IP-адреса DNS-серверов, можно несколько через запятую.
ens192: - Имя второго сетевого интерфейса.
addresses: [10.1.0.5/24]
version: 2
Настройка сети на Ubuntu Server 18.04
Настройка динамического IP-адреса [по DHCP]
Так как при установке мы получили IP-адрес по DHCP, следовательно конфигурация рабочая.(Рис.3)
Конфигурация для получения IP-адреса по DHCP:
network: ethernets: ens160: addresses: [] dhcp4: true version: 2

Настройка статического IP-адреса [Указание настроек вручную]
Конфигурация для указания настроек сети вручную.(Рис.4)
network: renderer: networkd ethernets: ens160: addresses: [192.168.3.13/24] gateway4: 192.168.3.1 dhcp4: no dhcp6: no nameservers: addresses: [8.8.8.8,8.8.4.4] version: 2

Пример конфигурации для двух интерфейсов
Конфигурация для указания настроек сети для двух интерфейсов "ens160" и "ens192".(Рис.5)
network: renderer: networkd ethernets: ens160: addresses: [] dhcp4: true ens192: dhcp4: no dhcp6: no addresses: [192.168.1.220/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8,8.8.4.4] version: 2

Применение изменений в конфигурации сети и проверка
Я для себя выбрал конфигурацию - "Настройка статического IP-адреса [Указание настроек вручную]"
Проверим конфигурацию на наличие ошибок и применим изменения.(Рис.6)
sudo netplan try
Если ошибок нет, то вы получите сообщение: "Вы хотите сохранить эти настройки?" Нажмите ENTER.

Лично у меня настройки применились в 2/3 случаев сразу же после ввода "sudo netplan try" на всякий случай введём команду специально предназначенную для применения изменений сделанных в файле конфигурации(Рис.7):
sudo netplan apply
Проверим вступили ли изменения в силу:
ifconfig

Проверим доступен ли внешний ресурс.(Рис.8)
ping itdeer.ru

Всё отлично IP-адрес поменялся, сеть настроена, доступ в интернет есть!
Для более подробной настройки сети через Netplan читайте man.(Рис.9)
man netplan

Ещё раз повторюсь!
ВНИМАНИЕ! Отступы слева в конфигурациях должны быть ОБЯЗАТЕЛЬНО и поставлены они должны быть ПРОБЕЛАМИ! В конфигурациях представленных в этой статье количество пробелов правильное, считайте или копируйте:)
Если вы поставите отступы клавишей "TAB", то на этапе проверки конфигурации на ошибки, вылезет ошибка - "Error while loading /etc/netplan/50-cloud-init.yaml, aborting./Ошибка при загрузке".
Если же вы решите написать всё в столбик без отступов, получите ошибку - "An error occured: the configuration could not be generated/Произошла ошибка: конфигурация не может быть сгенерирована".
Была ли вам полезна статья? Есть возможность поддержать проект.
На последних этапах, после изменения настроек, прописал ping itdeer.ru выдалo: ping: itdeer.ru Temporary failure in name resolution.. Что делать?
Стоит проверить идут ли пинги не к доменному имени, а к IP-адресу, к примеру попингуйте DNS-сервер гугла 8.8.8.8 - "ping 8.8.8.8" - если пинги идут, то проверяйте правильно ли указан в вашем конфиге DNS-сервер. Если 8.8.8.8 не пингуется, то доступа к интернету у вас нет... скорее всего где-то допущена ошибка… Читать далее »
от роутера. ping 8.8.8.8: PING 8.8.8.8 56(84) bytes of data, FROM 192.168.1.160 icmp_seq=1 Destination host unreachable Когда отменил, скзало что 100% пакетов потеряно. 50-cloud-init.yaml: network: renderer: networkd ethernets: enp1s0: addresses: [192.168.1.160/24] gateway4: 192.168.1.10 dhcp4: no (но в роутере он ключен) dhcp6: no nameservers: addresses: [8.8.8.8,8.8.4.4] version: 2 когда ввожу ifconfig… Читать далее »
addresses: [192.168.1.160/24] - сюда вводите ip-адрес который вы хотите назначить своей Ubuntu. gateway4: 192.168.1.10 - это адрес шлюза - сюда вводите ip-адрес роутера, он случайно не 192.168.1.1 ? Если всё правильно прописано, то попробуйте сначала получить IP адрес автоматически - по DHCP - пункт в статье - Настройка динамического IP-адреса… Читать далее »
Прошу прощения.. Не правильно понял, что такое gateway4.. вводил не то, а потом по тому что у вас 3.1 понял что это роутер)) Все работает. Спасибо)
С DHCP все хорошо, без него уже работает)
Не за что) рад помочь)
У меня 2 сетевых
1. доступ в интернет *.*.82.35
2. локальная сеть *.*.57.1
проблема не пускает в интернет Temporary failure in name resolution
пингую dns
From *.*.57.1 icmp_seq=7 Destination Net Unreachable
ТОбишь он шлет пакеты во вторую сеть.
в конфиге enp1s0: *.*.82.35 nameservers: 8.8.8.8 - рабочие днс, проверено
enp3s0: *.*.57.1
ПОМОГИТЕ!!!
Дополняю.. ранее создавал два файла *.ymal работало, но переодически пропадал интернет. Вопрос какая сеть должна идти первая в настройках? или без разницы..!! ВОТ ifconfig -a enp1s0: flags=4163 mtu 1500 inet *.*.82.35 netmask 255.255.255.0 broadcast 10.152.82.255 inet6 fe80::214:5eff:fe6b:adf4 prefixlen 64 scopeid 0x20 ether 00:14:5e:6b:ad:f4 txqueuelen 1000 (Ethernet) RX packets 7314 bytes… Читать далее »
Можешь полный конфиг выложить? неплохо было бы глянуть таблицу маршрутизации route или netstat -r
Такая же ошибка... при двух интерфейсах только пропадает интернет+у меня виртуалка
скидывай конфиг, посмотрим)
А можно по вотсап с тобой связаться?
Только скажи можно по вотсап?просто я бы скрины скину так было бы удобнее.
Добрый день.
Только начал разбираться с ubuntu. Нужна помощь:
на ПК установлено 2 сетевые карты, первая смотрит в сеть 192.168.1.0.24 и имеет IP 192.168.1.5, вторая смотрит в сеть 172.31.0.0/16 и имеет IP 172.31.0.108, как прописать маршруты в netplan, чтобы машины разных подсетей видели друг друга?
лютая херня! пока въедешь что нужно два пробела ставить на каждую следующую строчку следующего раздела, ошибаться в символе нельзя, потом много моментов. Хотя наверно в целом неплохая штука, упращаяет администрирование все в одном месте.... но я замучался....
Выдает такую же ошибку как и у Дмитрия Донченко. С DHCP все работает. Как только настраиваю статический так сразу ошибка. Какие могут быть еще варианты?
конфиг надо смотреть, выкладывай сюда
Очень интересно,зачем такие заморочки с пробелами и чем это обосновано!?
В centOS такого маразма нет!
Случайно попал сюда. Испытал шок и трепет, какой народ тут собрался. Куча всяческих цифирек и буковок, до каких простому смертному как до Луны пешком. Однако опыт тоже имею, и выводы, как водится. Все эти самые линуксы - сплошная помойка, раз пятнадцать пробовал ставить разные, и ни у одних интернет не… Читать далее »
"Случайно попал сюда"
Николай, наберитесь терпения и следуйте за гуру. След в след до тех пор, пока не начнёте понимать что к чему. Извините, но "пробовать" - это очень размытая формулировка. Как пробовали? В каком Вы были состоянии в этот момент. Трезвы ли были? Всякий раз, когда я ставил Линукс, интернет работал из… Читать далее »
Для десктопных версий Ubuntu 18/04 не понятно, в каком случае работает netplan, а в каком network manager? Захожу через GUI в сетевые настройки там стоит получать по DHCP, адрес 192.168.2.150, но в etc/netpaln/02-networkd.yaml выставлена статика 192.168.2.131. При этом команда netplan apply проходит нормально, но ip a показывает что все таки… Читать далее »
В перечислении адресов DNS после запятой пробел нужен обязательно. Т.е не [8.8.8.8,8.8.4.4] , а [8.8.8.8, 8.8.4.4]
Спасибо, Если кто-то это подтвердит в комментах то в статье, исправлю, я вроде копировал конфиги.. но сейчас негде проверить