前言

一般centos出现无法上网的原因有两种,一种是电脑的网卡配置文件没有正确配置,这种问题是比较好处理的找到配置文件的模板,补充缺失的配置文件即可。另一种原因是网卡驱动没有安装,这时候需要重新安装网卡的驱动问题,操做过程会麻烦一些,但是按照正常的操作也是可以修复的。这里需要特别说一下的是,如果是通过再生龙这种备份系统还原镜像的方式安装的系统,正好网卡不是通用类型,那么即使驱动匹配安装的时候可能还是会报错,原因可能是还原上去的网卡驱动跟当前电脑不匹配所以无法试用,所以出现后面这种问题可以尝试通过U盘引导重装Centos系统再安装驱动解决。centos的版本为:CentOS-7-x86_64-Everything-1908.iso,刻录工具为:balenaEtcher

由于无法上网特别不方便,大家可以使用手机数据项连接USB共享网络到电脑上使用,特别方便
由于无法上网特别不方便,大家可以使用手机数据项连接USB共享网络到电脑上使用,特别方便
由于无法上网特别不方便,大家可以使用手机数据项连接USB共享网络到电脑上使用,特别方便


配置文件修复

  • 先查看网卡文件是不是可以被查看的到,下面的截图是lz修复网络后的截图,如果指令执行只能看到lo口、virbr0口、virbr0或者一些虚拟以及docker网卡,无法读取例如em1这种格式名称的网卡那说明网卡可能没有被读取,大概率需要重装网卡驱动,也可以尝试一下修改配置文件能否修复
ip addr

在这里插入图片描述

如果网卡文件中有正确的网卡,可能是默认mac地址错误导致的,只需要记录下 link/ether 后面的mac地址参数,然后在网卡文件中添加HWADDR=mac地址 键值对然后重启就可以解决了(ONBOOT设置为yes),参考链接:
解决centos7无法联网问题
CentOS 7 不能连接网路的解决方法

下面是解决ip addr中没有正确网卡信息的方法

  • 跳至网卡目录,查看网卡文件,一般都是ifcfg-en开头,ifcfg-lo是本地回环接口,相当于 127.0.0.1这个不用管,除了这个文件外,网卡目录下不允许有两个网卡文件否则的话会报错,可以通过指令ip addr 查看能够看到的网卡信息保留,删除多余网卡文件
cd /etc/sysconfig/network-scripts/
ls

在这里插入图片描述

  • 查看对应的网卡配置文件,我这里提供一个可以正常使用的服务器网卡文件模板

在这里需要说一下,很多帖子都会交大家设置BOOTPROTO参数为static,另外添加IPADDR参数实际上就是设置静态IP,个人操作实际上应该是没有什么效果的。
ONBOOT参数一定要设置为yes,这个是很重要的参数。

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s20f0u13
UUID=3a7ac948-3c55-4635-a43c-1814f356f765
DEVICE=enp0s20f0u13
ONBOOT=yes

在这里插入图片描述
设置完成之后可以尝试关闭NetworkManager服务,我看网上很多人使用这种方法成功了,所以这里也记录一下。如果说在执行指令service network restart时报错,那可能是驱动的文件,可以试一下安装驱动的方法

systemctl stop NetworkManager
systemctl disable NetworkManager  
systemctl start network.service
service network restart



安装驱动

  • 使用nmcli指令查看网卡驱动是否安装,nmcli指令是NetworkManager包中的一个网络相关指令,如果无法使用的话可以先启动NetworkManager。DEVICE项就是网卡驱动是否正常,lz是问题解决后的截图,所以现在em1是正常的,另外enp0s是手机共享网络时留下来的
nmcli con show

在这里插入图片描述

NetworkManager相关指令,根据情况使用

#启动
systemctl start NetworkManager
#查看状态
systemctl status NetworkManager
#停止
systemctl stop NetworkManager
  • 由于网卡驱动跟网卡的型号关系比较大,所以我们需要先获取网卡型号再去下载对应的网卡驱动。获取网卡型号,可以看到lz这台电脑的显卡型号是(11) I219-LM,网上可以找到匹配的e1000e驱动包下载
lspci | grep Ethernet

在这里插入图片描述

  • 下载驱动,下载地址:Intel
    下载的时候一定要下载对应的版本,并且下面的文字会有说明兼容的网卡版本
    在这里插入图片描述

文件下载后就是解压编译安装了

解压

tar xzvf e1000e-xxx.tar.gz

检查是否已经安装内核源码。我的是已经包含了,所以进行下一步。没有的话使用手机共享网络yum指令安装yum install -y gcc

gcc
rpm -qa | grep kernel
rpm -qa | grep gcc

进入解压后的驱动文件夹里面包含src目录

cd e1000e-xxx/src

在src目录下,依次执行

make
make install

然后就会看到将生成的xxx.ko 文件自动放到以下路径

/lib/modules/xxx/updates/drivers/net/ethernet/intel/e1000e/e1000e.ko

将生成的e1000e.o文件复制到路径 /lib/modules/xxx/kernel/drivers/net 下

cp e1000e.o /lib/modules/xxx/kernel/drivers/net

加载驱动程序

depmod -a

测试驱动程序,没报错说明正确。加载的过程中可能会报错,我这里是由于bios中boot security模式没有关闭导致的,所以关闭后重启就行

modprobe e1000e

报错信息(没报错的跳过这个步骤)
在这里插入图片描述

设置boot security安全模式(没报错的跳过这个步骤)
在这里插入图片描述
查看是否已经加载

lsmod

重启网络服务

service network restart

操作到这里正常情况下能解决很多网络不能使用的问题。


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐