Ubuntu 17.10下如何用Netplan配置IPv6及解决YAML语法错误
嘿,我来帮你搞定这个问题!你遇到的YAML语法错误是Netplan配置里的高频坑,先解决这个,再一步步教你正确配置IPv6。
先解决你的YAML错误
错误提示“Invalid YAML at //etc/netplan/01-netcfg.yaml line 7 column 23: found unexpected ':'”,本质是YAML格式不规范——YAML对符号的格式要求特别严格,大概率是你在冒号:后面没加空格,或者缩进用了Tab键(YAML只认空格缩进)。
举个反例:你可能写了addresses:["2001:db8::1/64"],但正确的写法应该是addresses: ["2001:db8::1/64"](冒号后必须有空格);或者缩进用了Tab,这会直接导致解析失败,一定要换成两个空格缩进。
Ubuntu 17.10用Netplan配置IPv6的正确姿势
Ubuntu 17.10默认用Netplan管理网络,配置文件在/etc/netplan/目录下,通常是01-netcfg.yaml(文件名可能略有不同,比如00-installer-config.yaml)。下面给你两种常见场景的配置示例:
场景1:静态IPv6地址配置
先备份原文件更稳妥:
sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
然后编辑配置文件:
network: version: 2 ethernets: enp0s3: # 替换成你的实际网卡名,用`ip link`命令查看 addresses: - 192.168.1.100/24 # 可选的IPv4静态地址 - 2001:db8::100/64 # 你的IPv6静态地址,注意格式:- 开头,地址正确 gateway4: 192.168.1.1 # 可选的IPv4网关 gateway6: 2001:db8::1 # IPv6网关地址 nameservers: addresses: - 8.8.8.8 # IPv4 DNS - 2001:4860:4860::8888 # IPv6 DNS服务器(谷歌的公共DNS)
场景2:自动获取DHCPv6地址
如果你的网络支持DHCPv6,配置更简单:
network: version: 2 ethernets: enp0s3: dhcp4: yes # 开启IPv4 DHCP(可选) dhcp6: yes # 开启IPv6 DHCP
敲黑板:YAML格式必守规则
- 所有冒号
:后面必须跟一个空格,比如version: 2而不是version:2 - 缩进只能用两个空格,绝对不能用Tab键(编辑器可以设置Tab转空格)
- 列表项(比如addresses下的每一行地址)必须以
-开头(短横线加空格)
应用配置并验证
先测试配置(安全操作,出错会自动回滚):
sudo netplan try这个命令会加载配置并测试,如果没有错误,会提示你按回车确认应用;如果有问题,会在15秒后自动恢复原配置,避免断网。
确认配置没问题后,正式应用:
sudo netplan apply验证IPv6是否生效:
- 查看网卡的IPv6地址:
ip -6 addr show enp0s3(替换成你的网卡名) - 测试IPv6连通性:
ping6 2001:4860:4860::8888,如果能收到回复说明配置成功。
- 查看网卡的IPv6地址:
内容的提问来源于stack exchange,提问作者andi-g
相关产品推荐
相关产品推荐

