要将 Ubuntu 中 ens33
和 ens36
网卡的 IP 及网关配置设置为永久生效(重启后不丢失),需通过 netplan
配置并禁用 cloud-init
对网络的干扰(避免重启后配置被覆盖),具体步骤如下:
一、最终的永久生效配置文件
编辑 /etc/netplan/00-installer-config.yaml
(或系统中实际的配置文件),内容如下(以保留 ens36
网关为例):
双网卡永久网络配置
network:ethernets:ens33: # 无网关,仅内网通信addresses: [192.168.70.XX/24]nameservers:addresses: [8.8.8.8, 114.114.114.114]# 不配置routes(无默认网关)ens36: # 有网关,负责对外通信addresses: [192.168.1.XX/24]nameservers:addresses: [8.8.8.8, 114.114.114.114]routes:- to: defaultvia: 192.168.1.1 # 仅保留此网关version: 2renderer: networkd # 固定网络管理器,避免冲突
二、关键步骤:禁用 cloud-init 网络管理(防止配置被覆盖)
若系统启用了 cloud-init
(常见于云服务器或虚拟机),其会自动生成网络配置并覆盖手动设置,需执行以下操作禁用:
创建配置文件:
bash
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
写入以下内容(告知 cloud-init 不管理网络):
yaml
network: {config: disabled}
保存退出(
Ctrl+X
→Y
→ 回车)。
三、应用配置并验证
测试配置语法(防止错误导致断网):
bash
sudo netplan try
出现提示后按回车确认,若报错则根据提示修正缩进或格式。
永久应用配置:
bash
sudo netplan apply
重启服务器验证:
bash
sudo reboot
重启后检查是否生效:
bash
# 查看IP是否正确 ip addr show ens33 ip addr show ens36# 查看网关是否为ens36的192.168.1.1 ip route show
总结
通过以上步骤:
netplan
配置文件定义了两张网卡的静态 IP、DNS 和网关(仅ens36
保留网关)。- 禁用
cloud-init
网络管理,确保重启后手动配置不被覆盖。 - 配置会永久生效,无论重启多少次,IP 和网关都保持不变。