Ubuntu配置静态IP的核心方法是修改Netplan配置文件,通过编辑/etc/netplan/下的YAML文件并应用更改,即可实现网络地址的固定,确保服务器或工作站拥有稳定的内网身份。
在Linux服务器运维或桌面开发场景中,动态获取的IP地址虽然省事,但一旦重启或DHCP租约到期,IP变动会导致SSH连接中断、服务注册失效或数据库链接重置,对于需要长期稳定运行的服务而言,配置静态IP是基础且必要的操作,近年来,随着容器化和微服务架构的普及,网络配置的稳定性成为业内专家指出影响系统可用性的关键因素之一,本文将详细拆解Ubuntu 22.04及更高版本(使用Netplan)的配置流程,确保你能够一次性搞定,避免常见坑点。
Ubuntu配置静态IP地址命令详解
Ubuntu从17.10版本开始,逐步弃用了传统的/etc/network/interfaces配置方式,转而采用Netplan作为默认的网络配置管理器,这一变化意味着配置逻辑从复杂的脚本编写转向了声明式的YAML格式文件,理解这一转变是成功配置静态IP的前提。
确认当前网络接口名称
在动手修改之前,首先要知道你的网卡叫什么名字,Linux系统的网卡命名规则可能因版本而异,常见的有eth0、ens33或enp0s3等。
使用ip命令查看
打开终端,输入以下命令:
ip addr show
在输出结果中,寻找state UP且非lo(本地回环)的接口,记下它的名称,例如ens33,这个名称将在后续配置中作为关键字出现。
使用nmcli命令查看
如果你使用的是带有图形界面的Ubuntu桌面版,NetworkManager可能接管了网络配置,此时可以使用:
nmcli device status
这将列出所有网络设备和它们的状态,帮助你确认当前正在使用的连接名称。
定位Netplan配置文件
Netplan的配置文件通常位于/etc/netplan/目录下,该目录下可能包含一个或多个.yaml文件,文件名通常以数字开头,如00-installer-config.yaml或50-cloud-init.yaml。
识别正确的配置文件

并非所有文件都需要修改,以00-开头的文件是安装时生成的主配置文件,而50-或60-开头的文件可能是由云初始化或网络管理器自动生成的,如果修改主配置文件后未生效,请检查是否有更高优先级的覆盖文件,建议先备份原文件,以防配置错误导致网络断开:
sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak
如何修改Netplan YAML文件实现静态IP
YAML格式对缩进非常敏感,空格必须使用Tab或统一数量的空格,严禁混用,这是新手最容易出错的地方。
编辑配置文件
使用文本编辑器打开配置文件,推荐使用nano,因为它对新手更友好:
sudo nano /etc/netplan/00-installer-config.yaml
理解YAML结构
一个典型的静态IP配置块如下所示,请注意缩进层级,network是根节点,version和renderer是全局设置,ethernets是设备列表。
network:
version: 2
renderer: networkd # 或者 network-manager,取决于你的系统
ethernets:
ens33: # 替换为你的网卡名称
dhcp4: no # 关闭IPv4 DHCP
dhcp6: no # 关闭IPv6 DHCP(可选)
addresses:
- 192.168.1.100/24 # 静态IP地址和子网掩码
routes:
- to: default
via: 192.168.1.1 # 默认网关
nameservers:
addresses:
- 8.8.8.8 # 首选DNS
- 114.114.114.114 # 备用DNS
关键字段解析
- dhcp4: no:明确告诉系统不要通过DHCP获取IP,这是配置静态IP的关键开关。
- addresses:指定IP地址,注意末尾的`/24`表示子网掩码为255.255.255.0,如果子网不同,请相应调整数字。
- routes:定义路由表,`to: default`表示默认路由,`via`指向网关地址,网关通常是路由器的内网IP,如`192.168.1.1`。
- nameservers:配置DNS服务器,建议使用公共DNS如`8.8.8.8`(Google)或`114.114.114.114`(国内),以确保域名解析的稳定性。
保存并退出

在nano中,按Ctrl + O保存,回车确认,然后按Ctrl + X退出,务必检查文件末尾是否有空行,YAML对空白行处理较为严格,建议保留一个空行作为文件结束符。
应用配置与验证网络连通性
修改配置文件后,系统并不会立即生效,需要执行Netplan的应用命令。
执行Netplan Apply
在终端中输入:
sudo netplan apply
如果配置无误,命令将静默执行,无任何输出,如果配置有误,系统会报错并提示具体的行号和错误原因,如缩进错误或语法错误,此时需重新编辑文件并修正。
处理网络中断风险
如果是远程SSH连接服务器,执行netplan apply可能导致网络短暂中断或连接断开,建议在配置前确保有本地控制台访问权限,或配置好备用连接方式,若连接断开,不要惊慌,等待几秒后尝试重新连接,因为配置通常已生效。
验证配置结果
配置完成后,通过以下命令验证IP地址是否已更改:
ip addr show ens33
检查输出中的inet字段是否为你设置的静态IP,测试网络连通性:
ping -c 4 8.8.8.8 ping -c 4 www.baidu.com
如果能ping通IP和域名,说明静态IP、网关和DNS配置均正确。
Ubuntu配置静态IP常见问题排查
在实际操作中,用户常遇到配置不生效或网络不通的问题,以下是几种常见场景及解决方案。
配置后无法上网
多数情况下,这是因为网关或DNS配置错误,请再次检查routes中的via地址是否与你的路由器一致,某些企业内网可能需要特定的DNS服务器,而非公共DNS,据行业共识认为,内网环境下的DNS解析失败是导致“能Ping通IP但打不开网页”的主要原因。
Netplan Apply报错
如果执行sudo netplan apply时报错,通常是YAML格式问题,使用sudo netplan generate命令可以生成调试信息,指出具体的语法错误,常见错误包括缩进不一致、使用了Tab键而非空格、或冒号后缺少空格。
多网卡环境下的配置冲突

在拥有多个网卡(如同时连接有线和无线)的环境中,需确保只修改对应网卡的配置块,错误的配置可能导致默认路由指向错误的接口,从而引发网络混乱,建议通过ip route show查看当前默认路由指向哪个接口,确保配置与之匹配。
Ubuntu配置静态IP地址命令对比与选择
虽然Netplan是主流,但在某些特定场景下,其他工具也可能被使用,了解它们的区别有助于做出最佳选择。
Netplan vs NetworkManager
Netplan是一个配置生成器,它本身不直接管理网络,而是生成后端(如NetworkManager或systemd-networkd)所需的配置,对于桌面版Ubuntu,NetworkManager是默认后端;对于服务器版,systemd-networkd更为常见,修改Netplan文件后,后端服务会自动重新加载配置。
传统ifupdown的遗留问题
在Ubuntu 17.10之前,用户习惯使用/etc/network/interfaces文件,虽然该方式仍可通过安装ifupdown包使用,但在新版本中已不推荐,混合使用两种配置方式可能导致冲突,建议统一使用Netplan。
Q&A:Ubuntu配置静态IP常见问题解答
Ubuntu配置静态IP后重启失效怎么办?
如果重启后IP恢复为动态,通常是因为云实例(如AWS、阿里云)使用了Cloud-Init服务,Cloud-Init会在启动时覆盖Netplan配置,解决方法是编辑/etc/cloud/cloud.cfg文件,将preserve_hostname和manage_network设置为true,或直接在Netplan配置中禁用Cloud-Init的网络管理,具体取决于云厂商的文档建议。
如何查看当前生效的网络配置?
除了ip addr show,还可以使用netplan get命令查看当前系统实际应用的配置,该命令会输出当前Netplan引擎正在使用的YAML结构,有助于调试配置与实际状态不一致的问题。
Ubuntu配置静态IP地址命令是否适用于所有版本?
Netplan从Ubuntu 17.10引入,并在18.04 LTS中成为默认配置工具,对于Ubuntu 20.04、22.04及24.04 LTS,上述方法完全适用,对于更早的版本(如16.04),需使用传统的/etc/network/interfaces配置方式,两者语法和工具完全不同,请勿混淆。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/403795.html
