跳到主要内容

CentOS7-开启网卡

· 阅读需 4 分钟

CentOS 7 刚装完机,ping 外网不通,ip addr 里也看不到 IP——这不是网络坏了,而是系统默认没有启用网卡。这篇笔记记录一下开启网卡的完整步骤和背后的原因。

背景

CentOS 7 在最小化安装(Minimal Install)时,安装向导里的网络开关默认是关闭的。如果安装过程中没有手动打开它,装完系统后网卡虽然被内核识别了,但不会在开机时自动激活,也不会去请求 IP 地址。表现出来就是:机器本地一切正常,但 ping 不通网关、yum 装不了软件、ssh 也连不上。

解决办法很简单:找到对应网卡的配置文件,把"开机启用"这个开关打开。

原理简述

CentOS 7 的网卡配置文件放在 /etc/sysconfig/network-scripts/ 目录下,每块网卡对应一个 ifcfg- 开头的文件,后缀就是网卡名,比如 ifcfg-ens33ifcfg-eth0

决定网卡是否开机启用的,是文件里的 ONBOOT 参数:

  • ONBOOT=no:开机不激活这块网卡,这是安装时没开网络开关的默认值;
  • ONBOOT=yes:开机自动激活,配合 BOOTPROTO=dhcp 就会自动向路由器请求 IP。

所以整件事的本质,就是把 ONBOOTno 改成 yes,再让网络服务重新读一遍配置。

实操步骤

1)进入网卡资源文件夹

cd /etc/sysconfig/network-scripts/

2)查看需要开启的网卡名称

# ip 命令支持前缀缩写,addres / addr 都等价于完整的 ip address
ip addres

输出里除了 lo(本地回环)之外的接口就是物理网卡,常见名字是 ens33ens160eth0。此时它的状态一般是 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