Linux 命令速查
网络 man netplan

netplan

Ubuntu 的网络配置工具,通过 YAML 文件声明网络接口。

返回

补充说明

netplan 命令 是 Ubuntu 17.10+ 引入的声明式网络配置工具。配置写在 /etc/netplan/*.yaml,由 netplan 渲染给底层 systemd-networkd 或 NetworkManager 执行。VPS 上改 IP、网关、DNS 都通过它完成。

修改后必须 sudo netplan apply 才生效。

语法

netplan [命令]

命令

apply     应用当前配置(重新渲染并生效)
try       试运行配置,120 秒内不确认自动回滚(远程改网络时先用它,防失联)
get       查看生效的合并配置
set       直接修改某项配置
info      显示可用文件与渲染器
generate  只渲染后端配置,不应用
revert    回退到上次成功应用前的状态

配置文件示例

静态 IP(VPS 常用,/etc/netplan/01-static.yaml):

network:
  version: 2
  renderer: networkd          # 服务器用 networkd;桌面用 NetworkManager
  ethernets:
    ens18:                    # 接口名,用 `ip -br link` 查看
      addresses:
        - 203.0.113.7/24
        - 2001:db8::7/64      # 可选 IPv6
      routes:
        - to: default
          via: 203.0.113.1
          metric: 100
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]
        search: [example.com]

DHCP(还原为自动获取):

network:
  version: 2
  ethernets:
    ens18:
      dhcp4: true

实例

# 远程改 VPS 网络,先用 try 防止配错失联
sudo netplan try

# 应用配置并确认路由
sudo netplan apply && ip -br a && ip route

# 查看最终生效配置
sudo netplan get

# 权限问题:netplan 要求 yaml 不能全局可读(包含密码时会拒绝)
sudo chmod 600 /etc/netplan/*.yaml

注意

  • YAML 缩进严格,用空格不用 Tab。
  • 云镜像系统(AWS/阿里云等)的配置在 /etc/netplan/50-cloud-init.yaml,手工修改后建议在其头部注释确认不会被 cloud-init 覆盖,或在 /etc/cloud/cloud.cfg.d/ 禁用网络配置。

参考链接