最稳妥的在线操作方式是直接用modprobe加载或卸载网卡驱动,不重启系统、不中断其他服务,前提是网卡未被活跃使用;需先用lspci或ethtool确认模块名,再sudo modprobe加载(可带参数)并ip link set up启用接口,卸载前须down接口、flush地址、确认无占用,再sudo modprobe -r卸载,最后通过dmesg日志验证真实状态。

直接用 modprobe 加载或卸载网卡驱动,是 Linux 下最稳妥的在线操作方式。它不重启系统、不中断其他服务,只针对特定驱动模块生效,前提是网卡未被活跃使用(比如没有 IP 地址、没启用、没被网络管理工具锁定)。
确认目标网卡和对应驱动模块名
先查清楚你要操作的网卡用的是哪个内核模块:
- 运行
lspci -nnk | grep -A 3 -i ethernet,找网卡设备行及其下方的Kernel driver in use:或Kernel modules:字段 - 常见驱动如
e1000(Intel 千兆)、igb(Intel 多端口)、r8169(Realtek 主流)、mlx5_core(Mellanox RDMA)等,注意区分大小写 - 也可用
ethtool -i eth0 | grep driver(把eth0换成你的接口名)快速获取当前驱动名
热加载驱动模块
加载前确保该模块没被占用,且依赖已就位(modprobe 会自动处理):
- 执行
sudo modprobe 模块名,例如sudo modprobe r8169 - 若需传参数(如禁用 MSI、调低中断频率),可加在命令末尾:
sudo modprobe igb InterruptThrottleRate=1500 - 加载后不会自动启用网卡接口,需手动激活:
sudo ip link set eth0 up(替换为实际接口名)
热卸载驱动模块
卸载前必须停用网卡并释放所有关联资源:
- 先关闭接口:
sudo ip link set eth0 down - 删掉 IP 地址(如有):
sudo ip addr flush dev eth0 - 确认无进程占用:
lsmod | grep ^模块名查看 used by 列是否为 0;若有非零值,说明有其他模块或服务在用它 - 执行
sudo modprobe -r 模块名,例如sudo modprobe -r r8169—— 它会自动卸载依赖模块(如mdio、libphy),比rmmod更安全
验证操作是否生效
不能只看 lsmod,要结合内核日志判断真实状态:
- 加载后立即运行
dmesg | tail -15,查找类似r8169 0000:02:00.0: irq 42 for MSI或registered PHC的成功提示 - 卸载后同样查
dmesg,确认有没有unregister、removed类日志,避免残留 - 检查接口是否重建:
ls /sys/class/net/ | grep eth,或ip link show看接口是否存在











