在Linux系统中安装网卡(无论是内置还是外置)通常涉及硬件识别、驱动安装、网络配置及连通性测试等步骤,不同类型的网卡(如PCIe、USB)和Linux发行版(如Debian/Ubuntu、CentOS/RHEL)可能存在细节差异,但整体流程基本一致,以下将详细说明具体操作步骤。

硬件识别:确认网卡是否被系统检测
在安装驱动前,需先确认Linux系统是否已识别到网卡硬件,可通过以下命令查看:
-
PCIe/内置网卡:使用
lspci命令列出所有PCI设备,过滤网络相关设备(通常包含“Ethernet”“Network”等关键词)。lspci | grep -i "ethernet" # 示例输出:04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
输出中会显示网卡型号和厂商信息,用于后续查找对应驱动。
-
USB网卡:使用
lsusb命令列出USB设备,过滤网络相关设备(通常包含“Ethernet”“ASIX”“Realtek”等)。lsusb | grep -i "ethernet" # 示例输出:Bus 001 Device 002: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
-
查看内核日志:使用
dmesg命令查看内核启动时的硬件识别信息,过滤网络相关日志。dmesg | grep -i "eth|network" # 示例输出:rtl8169 0000:04:00.0: eth0: RTL8169 Gigabit Ethernet at 0xffffa444c000, 00:1a:2b:3c:4d:5e, XID 0c0a, IRQ 42
若日志中出现网卡名称(如
eth0、enp4s0),说明系统已识别硬件,但可能尚未加载驱动。
驱动安装:让系统支持网卡硬件
Linux内核已支持大部分常见网卡驱动(如Intel、Realtek、Broadcom等),若系统未自动加载,需手动安装驱动。
检查驱动是否已加载
使用lsmod命令查看当前已加载的内核模块,过滤网卡相关模块(如r8169、e1000e、igb等)。
lsmod | grep -i "eth|net"
若列表中存在对应网卡的驱动模块,说明驱动已加载,可直接跳转至“网络配置”部分;若不存在,需继续安装。
自动安装驱动(主流发行版)
大多数现代Linux发行版(如Ubuntu 20.04+、CentOS 8+)会自动加载常用网卡驱动,或通过包管理器自动安装。
-
Debian/Ubuntu系统:
使用ubuntu-drivers devices命令检测推荐的驱动,或直接安装firmware-linux(通用固件包)和linux-firmware(内核固件包)。sudo apt update sudo apt install linux-firmware firmware-linux
安装后重启系统,内核通常会自动加载对应驱动。
-
CentOS/RHEL系统:
使用dnf install kmod-r8169(针对Realtek网卡)或dnf install e1000e-pci(针对Intel网卡)安装驱动,若不确定驱动名称,可通过lspci -nn查看网卡的PCI ID,再搜索对应驱动。
# 查看PCI ID(含厂商ID:设备ID) lspci -nn | grep -i "ethernet" # 示例输出:04:00.0 0200: 10ec:8168 (Realtek Semiconductor Co., Ltd.) # 根据ID搜索驱动(如8168对应r8169驱动) dnf search kmod-8168
手动安装驱动(第三方或较新网卡)
若网卡较新(如PCIe 4.0网卡)或厂商未提供开源驱动,需手动安装官方驱动(以Realtek RTL8111为例):
-
下载驱动源码:从Realtek官网或GitHub获取最新驱动(如
r8168-8.050.00.tar.gz)。wget https://github.com/mtorromeo/r8168/archive/refs/tags/v8.050.00.tar.gz tar -xvzf v8.050.00.tar.gz cd r8168-8.050.00
-
安装编译工具:
- Debian/Ubuntu:
sudo apt install build-essential linux-headers-$(uname -r) - CentOS/RHEL:
sudo dnf install kernel-devel gcc make
- Debian/Ubuntu:
-
编译并安装驱动:
sudo ./autorun.sh # 或手动执行:sudo make clean && sudo make && sudo make install
-
加载驱动:
sudo modprobe r8168 # 加载驱动模块
-
验证驱动:
lsmod | grep r8168 # 确认驱动已加载 dmesg | grep r8168 # 查看驱动加载日志
网络配置:设置IP地址并启用网卡
驱动加载后,需配置网络参数(IP地址、子网掩码、网关等)才能使网卡正常工作,Linux网络配置方式分为静态IP和DHCP动态获取,以及传统ifconfig和现代ip命令两种工具。
使用ip命令(推荐)
-
查看网卡状态:
ip a # 查看所有网卡及其IP地址(如enp4s0、eth0)
若网卡显示
DOWN状态,需先启用:sudo ip link set enp4s0 up # 替换为实际网卡名
-
配置静态IP:
sudo ip addr add 192.168.1.100/24 dev enp4s0 # 设置IP和子网掩码(24位掩码即255.255.255.0) sudo ip route add default via 192.168.1.1 # 设置默认网关(根据实际网关修改)
临时配置(重启后失效),若需永久配置,需修改配置文件(见下文)。
-
配置DHCP:
sudo dhclient enp4s0 # 启用DHCP获取IP
修改配置文件(永久生效)
不同发行版的配置文件位置不同:

-
Debian/Ubuntu(NetworkManager):
使用nm-connection-editor图形工具或nmcli命令行配置:sudo nmcli connection add type ethernet con-name "eth0" ifname enp4s0 ip4 192.168.1.100/24 gw4 192.168.1.1 sudo nmcli connection up eth0
-
CentOS/RHEL(NetworkManager):
sudo nmcli connection add type ethernet con-name "eth0" ifname enp4s0 sudo nmcli connection modify eth0 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual sudo nmcli connection up eth0
-
传统发行版(如CentOS 7使用ifcfg):
编辑/etc/sysconfig/network-scripts/ifcfg-enp4s0:TYPE=Ethernet BOOTPROTO=static # 静态IP,若为DHCP则改为dhcp IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=114.114.114.114 ONBOOT=yes # 开机自启
保存后重启网络服务:
sudo systemctl restart network
连通性测试:验证网卡是否正常工作
配置完成后,使用以下命令测试网络连通性:
-
查看网卡状态:
ip a show enp4s0 # 确认IP地址已分配
-
ping网关:
ping 192.168.1.1 # 测试与本地网关的连通性
-
ping公网IP:
ping 8.8.8.8 # 测试与外网的连通性
-
测试DNS解析:
nslookup www.baidu.com # 确认DNS解析正常
若所有测试均成功,说明网卡安装配置完成;若失败,可检查驱动是否加载、配置文件是否正确、网线是否插好等。
相关问答FAQs
Q1:Linux安装网卡后无法连接网络,提示“Network is unreachable”,怎么办?
A:可能原因及解决方法:
- 驱动未加载:运行
lsmod | grep [网卡驱动名]检查驱动是否加载,若未加载,使用sudo modprobe [驱动名]手动加载,或重新安装驱动。 - IP配置错误:检查IP地址、子网掩码、网关是否正确,可通过
ip a和ip route查看当前配置。 - 网络服务未启动:对于CentOS/RHEL,运行
sudo systemctl restart network;对于Ubuntu,运行sudo systemctl restart NetworkManager。 - 网线或路由器问题:确认网线插紧,路由器正常工作,尝试更换网线或接口。
Q2:如何确认网卡是否加载了正确的驱动?
A:可通过以下命令验证:
- 查看驱动模块:
lsmod | grep [网卡名],例如lsmod | grep r8169,若输出包含r8169模块,说明驱动已加载。 - 查看PCI设备驱动信息:
lspci -k -s [网卡PCI地址],例如lspci -k -s 04:00.0,输出中“Kernel driver in use”字段即为当前使用的驱动(如r8169)。 - 使用ethtool查看:
sudo ethtool -i enp4s0,输出“driver”字段显示驱动名称,“version”字段显示驱动版本。
若驱动名称与网卡型号不匹配(如Realtek网卡显示e1000e驱动),需重新安装正确的驱动。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/36267.html