You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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下的每一行地址)必须以- 开头(短横线加空格)

应用配置并验证

  1. 先测试配置(安全操作,出错会自动回滚):

    sudo netplan try
    

    这个命令会加载配置并测试,如果没有错误,会提示你按回车确认应用;如果有问题,会在15秒后自动恢复原配置,避免断网。

  2. 确认配置没问题后,正式应用:

    sudo netplan apply
    
  3. 验证IPv6是否生效:

    • 查看网卡的IPv6地址:ip -6 addr show enp0s3(替换成你的网卡名)
    • 测试IPv6连通性:ping6 2001:4860:4860::8888,如果能收到回复说明配置成功。

内容的提问来源于stack exchange,提问作者andi-g

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:32:40