CentOS7-开启网卡
CentOS 7 刚装完机,ping 外网不通,ip addr 里也看不到 IP——这不是网络坏了,而是系统默认没有启用网卡。这篇笔记记录一下开启网卡的完整步骤和背后的原因。
背景
CentOS 7 在最小化安装(Minimal Install)时,安装向导里的网络开关默认是关闭的。如果安装过程中没有手动打开它,装完系统后网卡虽然被内核识别了,但不会在开机时自动激活,也不会去请求 IP 地址。表现出来就是:机器本地一切正常,但 ping 不通网关、yum 装不了软件、ssh 也连不上。
解决办法很简单:找到对应网卡的配置文件,把"开机启用"这个开关打开。
原理简述
CentOS 7 的网卡配置文件放在 /etc/sysconfig/network-scripts/ 目录下,每块网卡对应一个 ifcfg- 开头的文件,后缀就是网卡名,比如 ifcfg-ens33、ifcfg-eth0。
决定网卡是否开机启用的,是文件里的 ONBOOT 参数:
ONBOOT=no:开机不激活这块网卡,这是安装时没开网络开关的默认值;ONBOOT=yes:开机自动激活,配合BOOTPROTO=dhcp就会自动向路由器请求 IP。
所以整件事的本质,就是把 ONBOOT 从 no 改成 yes,再让网络服务重新读一遍配置。
实操步骤
1)进入网卡资源文件夹
cd /etc/sysconfig/network-scripts/
2)查看需要开启的网卡名称
# ip 命令支持前缀缩写,addres / addr 都等价于完整的 ip address
ip addres
输出里除了 lo(本地回环)之外的接口就是物理网卡,常见名字是 ens33、ens160 或 eth0。此时它的状态一般是 DOWN,且没有 inet 地址。
3)编辑对应的配置文件
# 文件名是 ifcfg- 加上一步查到的网卡名,例如网卡叫 ens33:
vi ifcfg-ens33
4)找到 ONBOOT=no 这一行,把 no 改成 yes 后保存文件

如果是接在有 DHCP 的路由器下面,顺便确认一下 BOOTPROTO=dhcp,这样重启网络后会自动拿到 IP。
5)重启网络服务,让配置生效
service network restart
再执行一次 ip addr,网卡状态变成 UP 并且有了 inet 地址,就说明成功了。
踩坑与注意
1)配置文件名容易记错。目录里的文件是 ifcfg-网卡名(中间没有多余的连字符),vi 打开前可以先 ls 看一眼,避免手滑新建了一个空文件、改了半天不生效。
2)改的是"配置"不是"状态"。ONBOOT=yes 只决定开机行为,改完必须重启网络服务(或重启机器)才生效。临时想拉起网卡也可以用 ifup ens33,但不改配置文件的话,下次重启又会回到没网的状态。
3)虚拟机场景下拿不到 IP,先检查虚拟网络模式。VMware/VirtualBox 里如果桥接、NAT 配置不对,ONBOOT 改了也 ping 不通外网,这属于宿主机层面的问题,和本文的开关无关。
装机时在安装向导的"网络和主机名"页面直接把网卡开关打开,装完就自带网络,可以省掉上面所有步骤。
小结
CentOS 7 装完没网,多数情况不是驱动或硬件问题,只是 ONBOOT 默认为 no。用 ip addr 确认网卡名,到 /etc/sysconfig/network-scripts/ 下改对应 ifcfg- 文件的 ONBOOT=yes,再 service network restart,网络就通了。这是每台新装 CentOS 7 机器几乎都要过一遍的固定动作,记下来省得每次现查。
评论 / COMMENTS