补充说明
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/禁用网络配置。