Ошибка конфигурации 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 поиск: - рабочая группа версия: 2
sudo 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. Сделайте резервную копию исходного файла перед его редактированием. Удачи.