微信优化

weixinyouhua

Ubuntu网卡配置文件怎么改?Ubuntu修改网卡IP地址配置文件详解

2026-10-26 04:23:08

Ubuntu网卡配置文件的核心答案是:新版Ubuntu(18.04及以上)统一管理在/etc/netplan/目录下的YAML文件,旧版则用/etc/network/interfaces,改完执行sudo netplan apply即刻生效,今天我把这份配置文件的完整玩法、踩坑点和问得最多的几个问题一次讲透。

Ubuntu网卡配置文件怎么改?Ubuntu修改网卡IP地址配置文件详解

ubuntu网卡配置文件在哪

不少朋友第一次找网卡配置,习惯性去看/etc/network/interfaces,结果发现里面空空如也,行业共识认为,Ubuntu从18.04开始用Netplan取代了旧版ifupdown,配置文件的主目录固定在/etc/netplan/。

这个目录下通常放着.yaml后缀的文件,最常见的是01-network-manager-all.yaml或者50-cloud-init.yaml(云服务器上常见),我建议你执行这条命令看清楚实际情况:

ls -l /etc/netplan/

区分设备命名规则

网卡名字在配置里容易认错,老规矩是用eth0、eth1,但新版本普遍采用Predictable Network Interface Names,也就是ens33、ens160、enp0s3这种带硬件位置信息的名字,你用ip a或ifconfig -a先确认当前网卡的真实名称,再动笔改配置文件,这一步能避免一半的返工。

云端实例的网卡配置路径

如果你用的是简米云、酷番云这类国内云服务器,ubuntu网卡配置文件可能多了一个cloud-init生成的过程,某些机型重启后配置会被云初始化脚本重置,属于正常行为,别惊讶,直接改YAML里的对应内容即可,之后别再手动去动interfaces文件就行。

Ubuntu静态IP配置步骤

静态IP是局域网服务器最常用的场景,我以Ubuntu 22.04 LTS + Netplan为例,给你一套能直接照抄的流程,重点是把网卡名称替换成你自己机器上的实际名称。

第一步:备份原文件

动手前先做个备份,这个习惯能救你无数次,尤其是远程连接的情况下:

sudo cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.bak

第二步:编辑YAML配置

用sudo nano /etc/netplan/01-network-manager-all.yaml打开文件,把内容整理成下面这个结构(IP地址和网关按你自己的网段填):

network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [223.5.5.5, 119.29.29.29]

这里我把DNS地址写成国内公共DNS,因为在百度搜索“ubuntu静态IP配置方法”的不少朋友是部署网站服务,解析速度也是我考虑到的点。

第三步:应用配置

检查配置语法没问题之后,执行:

Ubuntu网卡配置文件怎么改?Ubuntu修改网卡IP地址配置文件详解

sudo netplan try

try模式会先试应用,等十几秒让你确认网络没断,没报错再按回车最终应用,远程SSH操作时强烈建议用try代替apply,万一写错IP地址也不至于把自己锁在门外,确认无误后运行:

sudo netplan apply

用ip a查看IP是否生效,再用ping -c 4 网关IP测一下连通性。

ubuntu网卡配置修改后不生效的排查清单

改完配置发现没动静,这是被问得最多的问题,多数情况下不是Netplan的锅,而是下面这五个细节出了岔子。

YAML缩进和空格问题

YAML对缩进极其敏感,必须用空格不能按Tab,而且层级关系要一致。ethnics:下面每行缩进两个空格,addresses:列表项要再缩进四个空格,一个多余的空格或者不对齐的缩进,直接导致netplan apply报错或静默失效。

渲染器冲突

renderer: networkd是服务器版默认,桌面版经常是renderer: NetworkManager,如果你Ubuntu桌面版想固定IP,建议保留NetworkManager渲染器,或者在文件里明确指定,混用容易造成配置被NetworkManager覆盖,修改后重启又打回原形。

多文件优先级冲突

/etc/netplan/目录下有多个yaml文件时,Netplan按文件名排序合并,后加载的同名配置会覆盖先加载的,设计上01开头的文件优先级最高,别放两个文件里都定义同一块网卡的不同IP地址,否则结果不可控。

cloud-init劫持

云主机整改前,先看一眼/etc/netplan/50-cloud-init.yaml是否存在,存在的话,建议把你的静态IP配置写到50之后的文件里(比如99-custom.yaml),因为cloud-init在重启时会重新生成配置,这时候你需要sudo cloud-init clean --machine-id配合处理,或者直接在云控制台修改弹性IP,这比在系统里改更省心。

配置生效但网络服务没重启

极少数情况下netplan apply成功了,ip a也显示新IP但外网不通,我遇到的多是路由表还有旧网关残留,跑一遍sudo ip route flush default再重新加载配置,问题就能解决。

Ubuntu新旧版本网卡配置对比

不只一个朋友来问“ubuntu网卡配置文件版本区别”,干脆整理成表格,方便你按需查阅。

Ubuntu网卡配置文件怎么改?Ubuntu修改网卡IP地址配置文件详解

Ubuntu版本 默认配置文件 生效命令
04及以上 /etc/netplan/.yaml sudo netplan apply
04及以下 /etc/network/interfaces sudo systemctl restart networking

老版本安装netplan怎么处理

有些生产环境还在用16.04跑老业务,想统一配置文件也不是不可能,Ubuntu 16.04可以手动安装netplan,但依赖关系复杂,我不建议强行升级这层组件,在这些机器上继续用interfaces文件里iface eth0 inet static那套写法更稳妥,你不要试图一刀切。

桌面版与服务器版差别

桌面版Ubuntu默认图形化网络管理接管网卡,配置文件里渲染器是NetworkManager,你直接用命令行改YAML当时有效,但重启后可能被图形化设置还原,我的建议是桌面环境直接在“设置→网络→齿轮图标→IPv4”里改静态IP,系统和文件配置是同一个底层,改起来更直观。

双网卡配置的实用场景

做软路由、内网穿透、流量转发的话会遇到双网卡配置,这个问题百度搜“ubuntu双网卡配置”的人也很多,在Netplan下的思路其实很简单:准备两个物理接口,分别定义各自的addresses和routes,默认路由只让其中一张卡走。

network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: no
      addresses: [192.168.1.100/24]
      routes:
        - to: default
          via: 192.168.1.1
    ens34:
      dhcp4: no
      addresses: [10.0.0.100/24]
      routes:
        - to: 10.0.0.0/24
          via: 10.0.0.1

改动生效后,用ip route show table main查看默认路由走哪张卡,流量方向不对就用ip rule加策略路由,这部分属于进阶玩法了,有兴趣的可以单独研究。

Ubuntu网卡配置文件常见问题解答

ubuntu网卡配置文件改了不生效怎么办

按顺序检查:先验证DNS和网关IP是否填错,再检查YAML缩进是否符合规则,然后看/etc/netplan/目录下有没有多个文件互相覆盖,都没问题的话,执行sudo netplan apply后立刻用ip addr对照实际地址,再设置一个闲置的vlan接口测试网络状态,通常排查到这三步问题就跑不掉了。

Ubuntu 22.04改静态IP和20.04有区别吗

没有本质区别,两者都用Netplan方案管理ubuntu网卡配置文件,字段语法完全一致,不同的是22.04默认开启了一些网络安全增强属性,但配置静态IP的核心路径没有变化,你在20.04上用的配置文件可以直接搬到22.04上跑,重点确认网卡接口名和实际设备名一致,其它不用大动。

netplan配置语法怎么用

通用格式就是network: version: 2打头,接下来声明ethernets、wifis、bridges等类型,每个类型下再写具体网卡名,官方语法还支持link聚合和VLAN子接口,写这些复杂内容时先把基础字段背熟,再配合netplan generate做静态检查,错误时的报错信息会精确告诉你在第几行出的问题。

相关文章

2024年,SaaS软件行业碰到获客难、增长慢等问题吗?

我们努力让每一次邂逅总能超越期待