Ошибка конфигурации Netplan: "Неверный YAML ... не найден ожидаемый ключ".
Я пытаюсь подключиться к Интернету, используя статический IP, но когда я вхожу sudo netplan apply Команда консоль возвращает следующую ошибку:
Invalid YAML at //etc/netplan/01-netcfg.yaml line 8 column 5: did not find expected key.
Как это исправить? Содержание моего 01-netcfg.yaml похоже:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
dhcp6: no
addresses: [10.0.2.15/64]
gateway4: 10.0.2.0
nameservers:
addresses: [8.8.8.8,8.8.4.4]
4 ответа
Итак, что касается конкретной ошибки, которую вы получаете, вы потерпели неудачу в базовом синтаксисе YAML и отступе, что является одной из причин netplan жалуется. YAML чрезвычайно ориентирован на отступы для того, как он интерпретирует команды, аргументы конфигурации и т. Д. Вы должны иметь правильные отступы для разбора конфигураций YAML. Сюрприз, вы вообще этого не делаете и нарушаете синтаксис YAML. Вот почему netplan жалуется, потому что вы не предоставляете надлежащую YAML.
Но даже более важно, чем синтаксис YAML, который заставит работать Netplan, у вас есть несколько критических сбоев в конфигурации вашей сети, и вам действительно нужно их исправить независимо от этого. Эти сбои, в частности:
10.0.2.15/64недопустимый диапазон CIDR IPv4. Приемлемые диапазоны CIDR находятся между/0(для всех IPv4) и/32(для одного адреса) для IPv4. Большинство сетей/24для диапазона CIDR (с этим диапазоном IP, который будет охватывать10.0.2.1 - 10.0.2.255как полезное адресное пространство, хотя я бы предположил,.1это ворота и.255это широковещательная рассылка, но она может отличаться в вашей сети, поэтому дважды проверьте все значения!). Необходим правильный диапазон CIDR, чтобы система знала, какова ее маска сети и доступное IP-пространство.10.0.2.0неправильный адрес шлюза..0адрес не является пригодным для использования адресом в IP-подсети, так как обычно он используется только префиксом сети. И так как ваш конфиг netowrk пытается сделать/24но ужасно терпит неудачу, этот шлюз, вероятно, должен быть10.0.2.1- но, опять же, сначала проверьте эти значения у администратора сети.
Итак, исправление отступов и исправление сети, чтобы предположить, что это /24 в зависимости от указанного вами IP-адреса и шлюза ваш YAML должен выглядеть следующим образом с соответствующими отступами. И по сравнению с вашим существующим, вам действительно нужно узнать, как работает отступ.
network:
version: 2
ethernets:
enp0s3:
dhcp4: no
dhcp6: no
addresses: [10.0.2.15/24]
gateway4: 10.0.2.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
Этот работал для меня:
сеть:
Ethernets:
enp2s0:
адреса:
- 192.168.0.2/24
dhcp4: ложь
gateway4: 192.168.0.1
неймсерверы:
адреса:
- 192.168.0.1
- 8.8.8.8
поиск:
- рабочая группа
версия: 2sudo netplan apply
Надеюсь, это тоже для вас.
Я попытался настроить netplan, используя руководства, подобные приведенному выше, и следующее:
- Настройка статических IP-адресов на сервере Ubuntu 18.04 LTS
- Как настроить статический IP-адрес в Ubuntu Server 18.04
Как настроить статический IP-адрес в Ubuntu 18.04 Bionic Beaver Linux
... но я обнаружил, что проще полностью удалить nplan и сделать что-то подобное, и решение, которое работает сразу, выполняет работу с наименьшим количеством хлопот, всегда будет тем, что я использую, а не чем-то новым, что более замысловатый и раздражающий.
Когда я редактировал .yaml подать и выполнить: $ netplan try это не удалось.
В моем случае я мог решить эту проблему, оставив место, в котором был исходный файл: это на Ubuntu Server 18.04.1 LST. Сделайте резервную копию исходного файла перед его редактированием. Удачи.
