Ошибка конфигурации 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, используя руководства, подобные приведенному выше, и следующее:

Когда я редактировал .yaml подать и выполнить: $ netplan try это не удалось.

В моем случае я мог решить эту проблему, оставив место, в котором был исходный файл: это на Ubuntu Server 18.04.1 LST. Сделайте резервную копию исходного файла перед его редактированием. Удачи.

Другие вопросы по тегам