17人参与 • 2025-12-05 • Linux
netplan 是 ubuntu 18.04 及以上版本默认的网络配置工具,相比传统的 ifupdown 更简洁、易维护。本教程以 vmware 虚拟机(ubuntu 系统)为例,手把手教你配置静态 ip,解决「有内网 ip 但无法联网」「配置冲突」等常见问题。
ens33(虚拟机默认网卡名,可通过 ip a 确认)192.168.111.22/24,网关 192.168.111.2打开虚拟机终端,执行以下命令确认网卡名称和状态:
ip a
输出示例(重点关注 ens33 网卡):
1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state unknown group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens33: <broadcast,multicast,up,lower_up> mtu 1500 qdisc fq_codel state up group default qlen 1000
link/ether 00:0c:29:94:ef:9d brd ff:ff:ff:ff:ff:ff
altname enp2s1
ens33 状态为 down,先执行 sudo ip link set ens33 up 启动网卡。netplan 配置文件默认存放在 /etc/netplan/ 目录,执行以下命令查看:
ls -l /etc/netplan/
输出示例:
-rw------- 1 root root 428 12月 4 17:40 00-installer-config.yaml -rw-r--r-- 1 root root 102 12月 3 10:00 01-network-manager-all.yaml # 冲突文件,需删除
若存在 01-network-manager-all.yaml 等指向 networkmanager 的配置文件,会和 netplan 冲突,需删除:
# 删除冲突配置文件 sudo rm /etc/netplan/01-network-manager-all.yaml # 验证删除结果 ls -l /etc/netplan/
使用 nano 编辑主配置文件 00-installer-config.yaml(注意 yaml 严格缩进,禁止用 tab,仅用空格):
sudo nano /etc/netplan/00-installer-config.yaml
写入以下内容(替换为你的 ip/网关/dns):
network:
version: 2 # netplan 版本,固定为 2
renderer: networkd # 明确用 networkd 管理,避免冲突
ethernets:
ens33: # 网卡名称,需和 ip a 输出一致
dhcp4: false # 关闭 dhcp,启用静态 ip
addresses:
- 192.168.111.22/24 # 静态 ip + 子网掩码
routes:
- to: default # 默认路由
via: 192.168.111.2 # 网关 ip(必须是虚拟机网段的真实网关)
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # dns 服务器(公共 dns/内网 dns)
| 字段 | 说明 |
|---|---|
renderer: networkd | 指定网络渲染器为 networkd,ubuntu 服务器版默认推荐 |
dhcp4: false | 关闭 dhcpv4,若需 ipv6 静态配置,可添加 dhcp6: false |
addresses | 静态 ip 列表,格式为「ip/子网掩码」,支持配置多个 ip |
routes.to: default | 指向默认网关,所有外网流量走该路由 |
nameservers.addresses | dns 服务器列表,优先用公共 dns(8.8.8.8/114.114.114.114) |
netplan 要求配置文件仅 root 可读写(权限 600),执行以下命令修正:
# 设置权限为 600(仅 root 可读可写) sudo chmod 600 /etc/netplan/00-installer-config.yaml # 设置归属为 root:root sudo chown root:root /etc/netplan/00-installer-config.yaml # 验证权限 ls -l /etc/netplan/00-installer-config.yaml
输出示例(权限正确):
-rw------- 1 root root 428 12月 4 17:40 /etc/netplan/00-installer-config.yaml
先用 netplan try 测试配置(临时生效,超时自动回滚,按回车确认永久生效):
sudo netplan try
输出说明:
warning:root:cannot call open vswitch:忽略(未使用 ovs 交换机,不影响);do you want to keep these settings? 时,按回车键确认保留配置。测试无报错后,执行以下命令永久生效:
# 生成配置 sudo netplan generate # 应用配置 sudo netplan apply # 重启网卡(可选) sudo ip link set ens33 down && sudo ip link set ens33 up
ip a
输出示例(ens33 已配置静态 ip 192.168.111.22):
2: ens33: <broadcast,multicast,up,lower_up> mtu 1500 qdisc fq_codel state up group default qlen 1000
link/ether 00:0c:29:94:ef:9d brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.111.22/24 brd 192.168.111.255 scope global ens33
valid_lft forever preferred_lft forever
ip route
输出示例(默认网关 192.168.111.2 已生效):
default via 192.168.111.2 dev ens33 proto static 192.168.111.0/24 dev ens33 proto kernel scope link src 192.168.111.22
# 测试内网连通性(ping 网关) ping -c 3 192.168.111.2 # 测试外网 ip 连通性 ping -c 3 8.8.8.8 # 测试域名解析(验证 dns) ping -c 3 baidu.com
via 不一致;via 改为该值。netplan apply 报错 error in network definition;dhcp4: false 而非 dhcp4:false);sudo netplan try 测试语法,会提示具体错误行。netplan try 提示 permissions for /etc/netplan/xxx.yaml are too open;sudo chmod 600 /etc/netplan/xxx.yaml 修正权限。sudo systemctl restart systemd-networkd 重启网络服务,再执行 sudo ip link set ens33 up 启动网卡。sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak
sudo cp /etc/netplan/00-installer-config.yaml.bak /etc/netplan/00-installer-config.yaml sudo netplan apply
ubuntu 虚拟机配置静态 ip 的核心是:
按本教程配置后,虚拟机可稳定使用静态 ip,同时保证内网/外网连通性。
以上就是ubuntu虚拟机配置静态ip的流程步骤的详细内容,更多关于ubuntu配置静态ip的资料请关注代码网其它相关文章!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论