Background
2.5G网卡,iperf3测速只有1G
Solution
1. 查询网卡及其驱动信息
# 查询网卡pci编号
lspci | grep RTL8125
# 06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
# 查询网卡加载的驱动
lspci -s 06:00.0 -k
# 06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
# Subsystem: ASUSTeK Computer Inc. RTL8125 2.5GbE Controller
# Kernel driver in use: r8169
# Kernel modules: r8169
2. 安装r8125驱动
apt update
apt install -y dkms pve-headers-$(uname -r) git
git clone https://github.com/awesometic/realtek-r8125-dkms.git
cd realtek-r8125-dkms
./dkms-install.sh
3. 禁用r8169驱动
# 检查是否仍在加载r8169驱动
lsmod | grep -i r8169
# r8169 114688 0
# 禁用r8169驱动
sudo tee -a /etc/modprobe.d/blacklist-r8169.conf > /dev/null <<EOT
# To use r8125 driver explicitly
blacklist r8169
EOT
# 更新内核初始化文件 (让黑名单生效)
sudo update-initramfs -u
reboot
Reference
PVE 8安装 ReakTEK RTL8125B 2.5G网卡驱动 - 知乎
FAQ
1. sudo update-initramfs -u 告警
sudo update-initramfs -u
# output
update-initramfs: Generating /boot/initrd.img-6.8.12-18-pve
Running hook script 'zz-proxmox-boot'..
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..
No /etc/kernel/proxmox-boot-uuids found, skipping ESP sync.
# warning
System booted in EFI-mode but 'grub-efi-amd64' meta-package not installed!
Install 'grub-efi-amd64' to get updates.
Removable bootloader found at '/boot/efi/EFI/BOOT/BOOTX64.efi', but GRUB packages not set up to update it!
Run the following command:
# solution
echo 'grub-efi-amd64 grub2/force_efi_extra_removable boolean true' | debconf-set-selections -v -u
Then reinstall GRUB with 'apt install --reinstall grub-efi-amd64'
2. PVE内核升级后网卡驱动失效
apt dist-upgrade 升级 PVE 时可能升级内核,DKMS 安装的 r8125 驱动需为新内核重新编译。
正确处理方式(避免失联)
升级后不要立即重启。此时系统仍在运行旧内核,r8125 驱动正常工作,网络未断开。
利用当前网络,先解除 r8169 黑名单,确保新内核的备用方案就绪:
# 重启前解除 r8169 黑名单,让新内核回落为 r8169
sed -i 's/^blacklist r8169/#blacklist r8169/' /etc/modprobe.d/blacklist-r8169.conf
update-initramfs -u
reboot
重启后新内核加载 r8169 驱动,网络正常连接。通过 SSH 远程完成后续操作:
# 安装新内核头文件(此时 uname -r 为新内核版本)
apt install pve-headers-$(uname -r) -y
cd /root/realtek-r8125-dkms
./dkms-install.sh
# 恢复黑名单,禁用 r8169,让 r8125 接管
sed -i 's/^#blacklist r8169/blacklist r8169/' /etc/modprobe.d/blacklist-r8169.conf
update-initramfs -u
reboot
第二次重启后,r8125 驱动为当前内核编译,正常工作。
若已重启导致失联(物理恢复)
如果已经重启并断网(r8125 未为新内核编译、r8169 被黑名单屏蔽),需接显示器键盘物理恢复:
# 临时恢复 r8169 驱动
sed -i 's/^blacklist r8169/#blacklist r8169/' /etc/modprobe.d/blacklist-r8169.conf
update-initramfs -u
reboot
网络恢复后,执行上述 正确处理方式 中的安装头文件、重装 r8125 驱动、恢复黑名单、重启步骤。
也可以重启后选旧内核启动(GRUB → Advanced options),进去后网络正常,再为新内核重新编译驱动。