我正在尝试使用静态 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]
答案1
因此,关于您收到的具体错误,您没有掌握基本的 YAML 语法和缩进,这是netplan
出现投诉的原因之一。YAML 是极其缩进导向,用于解释命令、配置参数等。您需要有适当的缩进才能解析 YAML 配置。令人惊讶的是,您根本没有这样做,而且破坏了 YAML 语法。这就是为什么netplan
抱怨,因为您没有提供正确的 YAML。
但即使更重要的是比使 Netplan 工作的 YAML 语法更重要,你的网络配置出现了一些严重故障,无论如何你都需要修复这些问题。这些故障具体包括:
10.0.2.15/64
不是有效的 IPv4 CIDR 范围。对于 IPv4,可接受的 CIDR 范围介于/0
(对于所有 IPv4) 和/32
(对于单个地址) 之间。大多数网络都/24
适用于 CIDR 范围(对于此 IP 范围,它将包含10.0.2.1 - 10.0.2.255
可用的地址空间,尽管我假设.1
是网关,是.255
广播,但这可能在您的网络中有所不同,因此请仔细检查所有值!)。需要正确的 CIDR 范围,以便系统知道其网络掩码和可访问的 IP 空间是什么。10.0.2.0
不是合适的网关地址。该.0
地址不是 IP 子网划分中可用的地址,因为它通常仅由网络前缀持有。由于您的网络配置尝试执行/24
但失败了,因此该网关可能应该是10.0.2.1
- 但再次,请先与您的网络管理员仔细检查这些值。
因此,修复你的缩进和修复网络以假设它是/24
基于您指定的尝试 IP 和网关,您的 YAML 应该如下所示,并带有正确的缩进。与现有的 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]
答案2
这个对我有用:
网络: 以太网: enp2s0: 地址: - 192.168.0.2/24 dhcp4: 假 网关4:192.168.0.1 名称服务器: 地址: - 192.168.0.1 - 8.8.8.8 搜索: - 工作组 版本:2
然后按照以下命令:
sudo netplan generate
sudo netplan apply
希望对你也同样适用。
答案3
我尝试使用类似上述和以下的指南来配置 netplan:
如何在 Ubuntu 18.04 Bionic Beaver Linux 上配置静态 IP 地址
...但我发现彻底删除 nplan 并执行类似这样的而能够立即见效、用最少麻烦完成工作的解决方案永远是我所使用的那个,而不是那些更复杂、更烦人的新方法。