1. 前提条件
- 拥有能够正常使用的 APT 源,一般为社区无订阅源。
- 通过 SSH 连接 PVE 主机。
2. 安装工具
我们需要安装一些工具,用于安装网卡驱动过程中,获取网卡信息,编译网卡驱动。
sudo apt install net-tools lshw ethtool dkms pve-headers其中安装 pve-headers 会自动安装 proxmox-default-headers,且会更新内核到相对应版本。如果不希望更新内核,可以指定安装具体的版本。
sudo apt install proxmox-headers-$(uname -r)3. 获取网卡信息
安装驱动前,尝试查看当前网卡信息。
sudo lshw -c network -businfo
Bus info Device Class Description
============================================================
pci@0000:00:1f.6 nic0 network Ethernet Connection (2) I219-V
usb@2:3 enx6c1ff76e5998 network Ethernet interface输出中 nic0为主板板载网卡,enx6c1ff76e5998为新加入的 USB 网卡,编号为网卡 MAC 地址。
进一步获取详细信息。
ethtool -i
driver: cdc_ncm
version: 6.17.4-1-pve
firmware-version: CDC NCM (NO ZLP)
expansion-rom-version:
bus-info: usb-0000:00:14.0-3
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
#
ethtool enx6c1ff76e5998
Settings for enx6c1ff76e5998:
Supported ports: [ ]
Supported link modes: Not reported
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: off
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: Unknown
Current message level: 0x00000007 (7)
drv probe link
Link detected: no4. 下载驱动
去往 Realtek 官网下载网卡驱动,对于这款 RTL-8156B USB 网卡驱动下载地址为:Realtek USB FE / GbE / 2.5GbE / 5G / 10G Family Controller Software。
选择 Unix (Linux)最新驱动进行下载,编写本博客时版本为 2.21.4,支持内核版本至 6.17。
下载完成后将驱动上传至 PVE 工作目录,比如/usr/src。通常下载的驱动文件为 .tar.bz2格式,对其进行解压。
cd /usr/src
mkdir r8152-2.21.4
tar -xjvf r8152-2.21.4.tar.bz2 -C r8152-2.21.4
cd r8152-2.21.4驱动包只有 Makefile,需要手动创建dkms.conf。
PACKAGE_NAME="r8152"
PACKAGE_VERSION="<your_driver_version>" # 例如 2.21.4
BUILT_MODULE_NAME="r8152" # 编译后生成的模块文件名,通常是 .ko 后缀
DEST_MODULE_LOCATION="/updates/dkms" # 建议放到 /updates/dkms
AUTOINSTALL="yes"
REMAKE_INITRD=yes"
CLEAN="make clean"
BUILT_MODULE_LOCATION="."保存为dkms.conf后,执行以下步骤:
# 添加到 DKMS,替换成你的包名和版本号
dkms add r8152/2.21.4
# 构建模块
dkms build r8152/2.21.4
# 安装模块
dkms install r8152/2.21.4输入内容如下。
Creating symlink /var/lib/dkms/r8152/2.21.4/source -> /usr/src/r8152-2.21.4
Sign command: /lib/modules/6.17.4-1-pve/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Building module(s)..... done.
Signing module /var/lib/dkms/r8152/2.21.4/build/./r8152.ko
Installing /lib/modules/6.17.4-1-pve/updates/dkms/r8152.ko
Running depmod... done.加载模块并验证。
modprobe r8152
lsmod | grep r8152重新获取网卡信息。
lshw -c network -businfo
ethtool -i enx6c1ff76e5998
driver: r8152
version: v2.21.4 (2025/10/28)
firmware-version:
expansion-rom-version:
bus-info: usb-0000:00:14.0-3
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
#
ethtool enx6c1ff76e5998
Settings for enx6c1ff76e5998:
Supported ports: [ MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: on
Port: MII
PHYAD: 32
Transceiver: internal
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00007fff (32767)
drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
Link detected: no常见问题
如果加载驱动之后,仍然显示驱动为 cdc_ncm,载入 udev 规则文件,调整驱动优先级。将驱动源码目录下 50-usb-realtek-net.rules 拷贝 到 /usr/lib/udev/rules.d/目录下,重新加载模块。
最后
关于 PVE 网卡改名下篇文章再写。