Ubuntu18.04配置静态ip遇到的报错
根据以往配置Ubuntu静态ip的经验,直接 vi /etc/network/interfaces 在该文件下配置了静态ip,重置网络后发现并没有生效
所以查了ubuntu版本,是18.04,然后百度,发现“ubuntu从17.10开始,已放弃在/etc/network/interfaces里固定IP的配置,即使配置也不会生效,而是改成netplan方式 ,配置写在/etc/netplan/01-netcfg.yaml或者类似名称的yaml文件里”,所以根据查到的方法进行配置,结果遇到好多报错,差点吐血,这里记下自己遇到的报错
-
刚开始的配置如下:在执行netplan apply发生报错信息Invalid YAML at //etc/netplan/01-netcfg.yaml line 11 column 11: mapping values are not allowed in this context
解决办法:yaml是层次结构,需要缩进,冒号(:)表示字典,连字符(-)表示列表,冒号出现的后面一定要空一格 -
冒号后添加空格后(如下图)再执行netplan apply又报错:Invalid YAML at //etc/netplan/01-netcfg.yaml line 11 column 6: did not find expected key
解决办法:nameservers应该和gateway4一样是第四层,nameservers后的addresses应该是第五层
正确的层数如下:第一层-network: 第二层-- ethernets: 第三层--- ens33: 第四层----addresses: [172.18.0.31/24] 第四层----gateway4: 172.18.0.1 第四层----nameservers: 第五层-----addresses: [114.114.114.114, 8.8.8.8]
-
按照上面的办法解决后如下图执行netplan apply又报错:Error in network definition //etc/netplan/01-netcfg.yaml line 8 column 16: expected scalar
解决办法:gateway4的地址没有中括号,修改后重启网络服务就正常了(netplan apply)
所以正确的配置格式应该如下:这样就成功配置了静态ip
其他出现的类似错误:line8 column 6:cloud not find expected ‘:’ #提示是冒号:后面没加空格
出现类似错误:netplan found character that cannot start any token,#提示是没有按五个层次写配置文档,一定要下一层比上一层多空一格或以上。
总之:这里重启网络时报错,大多是层次不对、格式不对、没有空格
最后,补充我遇到的情况
Error in network definition /etc/netplan/01-network-manager-all.yaml line 11 column 4: unknown key address
原来是address要改成addresses
注:此补充是我想要设置成动态IP所遇到的情况