最近拿台式机将Windows重装成Ubuntu20.04系统,插入网线后无法识别有线连接,网上各种资料更改网卡配置无效,最后发现是主板中有线网卡的型号和系统中网卡的驱动不匹配,更换驱动后解决问题。
查看并删除原驱动
1、查看网卡型号
lspci | grep net
其中的Ethernet controller:后的部分为网卡型号
2、查看网卡驱动
lspci -k
这个命令会列出系统所有的pci设备的硬件和驱动信息,找到Ethernet相关的行,比如我这里显示的是:
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)
Subsystem: Gigabyte Technology Co., Ltd Onboard Ethernet
Kernel driver in use: r8169
Kernel modules: r8169
Kernel driver显示的是驱动信息,这里显示的是r8169。因为网卡型号和驱动不匹配,导致了无法使用有线网上网。
3、卸载原有驱动
①查看驱动文件所在的位置,其中的r8169请自行替换为自己的网卡驱动名称。
modinfo r8169 | grep filename
②备份或直接删除驱动文件,下面两个命令执行其中一个即可,其中的path请用上一步查找到的文件路径替换,r8169请用自己的驱动名称替换
mv path/r8169.ko path/r8169.ko.backup #备份
rm path/r8169.ko #直接删除
③卸载驱动
sudo rmmod r8169
lsmod | grep r8169
4、安装正确驱动
官网下载驱动:【https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software】
我插了个无线网卡所以本机可以下载,没有网络的自行下载完U盘插入也行
我这里下载的版本是:r8168-8.049.02(根据你下载的压缩包名称就可以看出版本)
方法一、执行安装文件
①将下载的压缩包解压到/usr/src/
sudo tar xvf r8168-8.049.02.tar.bz2 -C /usr/src
②执行安装文件
cd /usr/src/r8168-8.049.02/
sudo sh ./autorun.sh
方法二、通过dkms安装
①安装dkms
sudo apt-get install dkms
②将下载的压缩包解压到/usr/src/
sudo tar xvf r8168-8.049.02.tar.bz2 -C /usr/src
③在解压的文件夹中,新建dkms.conf文件,输入以下内容
sudo vim /usr/src/r8168-8.049.02/dkms.conf
PACKAGE_NAME=Realtek_r8168
PACKAGE_VERSION=8.049.02
DEST_MODULE_LOCATION=/updates/dkms
BUILT_MODULE_NAME=r8168
BUILT_MODULE_LOCATION=src/
MAKE="'make' -C src/ all"
CLEAN="'make' -C src/ clean"
AUTOINSTALL="yes"
④编译DKMS并挂载驱动
sudo dkms add -m r8168 -v 8.049.02
sudo dkms build -m r8168 -v 8.049.02
sudo dkms install -m r8168 -v 8.049.02
sudo depmod -a
sudo modprobe r8168 #挂载驱动
成功之后有线自动就连接上啦~~
删除驱动
sudo dkms remove r8168/8.049.02 --all
此时可以ping通外网,如www.baidu.com,但局域网却ping不同,安装openssh-server之后成功互ping
sudo apt install openssh-server
systemctl status sshd //查看状态
systemctl enable ssh //设置开启自启动
参考文档【https://segmentfault.com/a/1190000037617931】