按教程打开 ifcfg-ens33 是个空文件?Linux 网卡配置的三条出路
“照着教程输入路径,打开 ifcfg-ens33 准备改 IP,结果 vim 里空空如也,什么都没有。"——这是很多人上手 Linux 网络配置的第一盆冷水。教程明明写着改这个文件,自己的系统里它偏偏是空的,甚至压根没有。卡在这一步的人不计其数,其实不是教程错了,是有一层背景没交代清楚。
先把名字读懂。ens33 不是什么玄学代号,是 Linux 的"可预测网卡命名"体系:ens 前缀表示主板固件提供的以太网槽位,33 是槽位编号。在这套体系之前,网卡统一叫 eth0、eth1,插拔位置一变名字就对不上号,命名规则改革后,网卡名字与物理位置绑定,重启不再漂移。所以看到 ens33、ens32 或者 enp 开头的名字,先认下:这就是你的有线网卡,只是叫法变了。
那文件为什么是空的?常见原因有两类:一是装机时选了自动获取 IP,系统以动态方式拿到了地址,没有为这块网卡生成静态配置文件,自然打开是空的;二是发行版或版本把网络管理交给了 NetworkManager,连接信息存在它自己的库里,不落到这个目录。不管哪一种,“文件是空的"都只说明静态配置没写过,不代表网卡坏了——先用 ip addr 确认网卡本身在、有没有拿到地址,再动手配。
三条出路,按顺手程度排:
- nmtui 图形化配置,最推荐新手。终端输入 nmtui,选 Edit a connection,选中对应网卡,把 IPv4 配置从 Automatic 改成 Manual,填地址、网关、DNS,一路确定保存。它本质上还是编辑 NetworkManager 的连接,只是不用手写文件,字段含义一目了然,填错的地方少。
- 手写配置文件。确认路径和文件名后,按模板写关键字段:TYPE=Ethernet、BOOTPROTO=static、ONBOOT=yes(开机启用,漏了这行重启丢 IP 是经典事故)、IPADDR、NETMASK 或 PREFIX、GATEWAY、DNS1。保存后 nmcli connection reload 再 nmcli connection up 对应连接,让配置生效。
- nmcli 命令行直配。适合要批量操作、写脚本的场景,一条命令改一个字段,思路与 nmtui 相同,只是全靠命令行敲。
配完的验证别省:ip addr 看地址上没上,ping 网关、ping 外网域名分两步——网关通而域名不通,多半是 DNS 没填对。另外提醒一句,有些机器上你会发现"没有配置文件网络却是通的”,那是 NetworkManager 动态管理的结果,配置文件从来不是网络状态的唯一事实源,nmcli connection show 才能看到当前真实连接。
Linux 基础运维的这类"第一盆冷水”,贵州诚鑫致达科技在给企业客户做服务器与内网环境交付时见得最多:装机只是开始,网络、权限、服务逐项配顺,业务才能往上跑。你在网卡配置上还踩过哪些坑?评论区说说,下一篇接着讲。