服务器直通卡的核心作用是把物理硬件(主要是网卡和显卡)直接交给虚拟机独占使用,跳过虚拟化层的翻译开销,让虚拟机的网络吞吐和图形性能接近物理机水平。
很多朋友第一次接触“直通卡”这个名词,容易把它当成一块普通的PCIe扩展卡,它的价值不在卡本身,而在“直通”二字,它解决的是虚拟化环境里硬件性能被层层“剥削”的问题,今天咱们就用大白话聊聊这东西到底在什么场景下不可或缺,以及选购时该关注哪些门道。
直通卡到底做了什么:一个“专属通道”的诞生
虚拟化服务器的数据流向来有个绕不开的枢纽宿主机内核,虚拟机发出去的每一个数据包,默认要先被虚拟交换机(vSwitch)拦下来,经过CPU处理、内存复制,再交给物理网卡发送,这个过程叫“软件转发”,稳定但慢。
直通卡的逻辑很干脆:把物理网卡的PCIe接口直接映射给某一台虚拟机,这块网卡从此不再归宿主机管,虚拟机里的驱动直接和硬件对话,数据包从虚拟机网卡出去,不经虚拟交换机,直接进物理网卡,延迟和CPU占用同时降下来。
业内专家指出,在纯软件转发模式下,万兆网卡的吞吐通常要打七折左右,而直通后基本可以跑满线速,这也就是说,它最大的意义不是“多了一个接口”,而是去掉了转发环节里那层看不见的损耗。
物理网卡直通和SR-IOV是什么关系
严谨地说,直通卡有两种形态:
- 完整直通(PCIe Passthrough):一整块物理网卡分配给一台虚拟机,其他虚拟机碰不了。
- SR-IOV(单根I/O虚拟化):把一块物理网卡拆成多个虚拟功能(VF),每个VF分给不同的虚拟机,同时保留近线速性能。
多数人说的“直通卡”其实指的是第一种,SR-IOV需要网卡芯片和宿主机CPU同时支持,配置起来更复杂,但胜在一块卡可以多台虚拟机共用,无论哪种,核心目标都一样:让虚拟机能碰触真实硬件。
直通卡对软路由网络性能的提升有多大
如果你玩过爱快、OpenWrt或者ROS软路由,直通卡这几个字大概率不陌生,软路由本身跑在虚拟机上,它的WAN口和LAN口如果全是虚拟网卡,在多拨、跑满千兆甚至万兆时,CPU占用会明显飙升。
直通卡在这里的价值分两头看:
- 跑满带宽:拨号上网的游戏玩家或工作室,对延迟极其敏感,直通物理网卡后,数据包从光猫进软路由再到内网交换机,全程不再被虚拟化层“摸一遍”,延迟能降低0.2毫秒到0.5毫秒,别小看这点时间,竞技游戏里的网络抖动往往就是几毫秒的事。
- 降低CPU负载:家用软路由常用低功耗CPU,比如J4125、N5105,这类处理器本身算力一般,虚拟交换机转发数据时极易占用其中一个核心,直通后,转发交给网卡硬件完成,CPU能腾出手处理NAT、防火墙规则等任务。

据部分软路由玩家的实测,J4125平台在未直通时跑千兆下载,CPU占用率约60%;直通一张Intel I210网卡后,同线程下载CPU占用能降到30%以内,这组数据虽然没有精确统计来源,但多数论坛评测的趋势高度一致。
接口数量不够时,扩展网卡也是直通卡
有一些情况属于“伪直通”纯粹是接口不够用,比如一台低功耗工控机只有一个千兆口,你想装软路由,就需要加装一块四口英特尔网卡,这种扩展网卡在虚拟化平台里也能分配给特定虚拟机使用,从配置界面看和直通没区别。
但要注意区别:
- 真正意义上的直通:网卡必须支持VT-d(Intel)或AMD-Vi(AMD)技术,且宿主机BIOS里开启相关选项。
- 单纯扩展接口:只要卡是标准PCIe接口,宿主机识别就能用,不涉及硬件虚拟化穿透。
所以买卡之前,先想清楚自己是要“加接口”还是“绕开销”,如果是前者,普通的双口千兆网卡几百元就能解决。
直通卡和硬网卡的区别:别把两者搞混
这是新手最容易踩的坑,所谓的“硬网卡”在软路由圈子里指那些自带硬件加速芯片的网卡,比如常见的BCM5719、Intel I350系列,它们的特点是支持硬件校验和卸载、硬件NAT加速等特性。
直通卡和硬网卡的区别主要落在:
- 硬网卡的优势:不依赖CPU转发,本身就能处理大量网络计算任务,它在物理机上安装后,性能表现已然不错。
- 直通卡的优势:解决的是虚拟化架构下的性能损失问题,即便是最普通的Intel I210网卡,直通后跑虚拟机的性能也比宿主机虚拟交换机转发的万兆网卡要好。
用一个场景来解释:你有两张网卡,一张i350(硬网卡),一张I210(普通卡),在物理机上跑,i350综合性能远超I210;但在虚拟化软路由里,把I210直通给软路由,跑出来的吞吐往往比i350虚拟化转发更高,原因就是“绕路”比“硬件等级”更重要。
虚拟化平台里配置直通卡的具体步骤

不管你是ESXi还是Proxmox VE(PVE),配置直通的逻辑大致相同,下面以PVE为例,给出可复现的操作路径。
第一步:确认CPU和主板支持
- Intel平台:进BIOS找“VT-d”选项,开启。
- AMD平台:找“IOMMU”选项,开启。
- 命令行验证:PVE的SSH里执行
dmesg | grep -i iommu输出说明开启成功。
第二步:修改内核参数
对于PVE 7以上版本,编辑/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT后面加上:
intel_iommu=on iommu=pt
AMD平台则加:
amd_iommu=on iommu=pt
保存后执行update-grub,重启。
第三步:找到网卡PCI地址并直通
- 执行
lspci | grep Ethernet,记下网卡对应的PCI地址(形如01:00.0)。 - 在PVE网页管理界面选中虚拟机,进入“硬件”标签。
- 点击“添加”“PCI设备”,选择刚才找到的网卡地址。
- 勾选“PCI-Express”和“ROM-Bar”选项(如果硬件支持)。
- 开启虚拟机,在客户机系统里安装驱动即可。
这套流程在ESXi上也有对应操作,不过ESXi的图形界面更简洁,直接在“编辑虚拟机”里添加PCI设备即可,需要注意:直通是排他性的,同一块网卡同时只能给一台虚拟机用。
什么情况下不建议用直通卡
直通卡不是万灵药,以下场景里,它反而会添乱:
- 虚拟机需要迁移:直通硬件和物理位置强绑定,你想把虚拟机从一台服务器迁移到另一台,直通配置会直接失效,业务会中断。
- 一台虚拟机想独享多块网卡:可以直通,但宿主机剩余网卡可能不够管理网络用,管理口一旦被占掉,远程维护就麻烦。
- 买了不兼容的廉价网卡:部分螃蟹卡(Realtek)和杂牌网卡的PCIe ID不在PVE的直通白名单里,直通后可能出现中断冲突,表现为虚拟机里网卡频繁掉线。
行业共识认为,直通卡更适合那些长期固定位置、不折腾迁移的物理机,如果你的虚拟机经常要快照、迁移、克隆,老老实实用虚拟网卡反而更省心。
直通卡价格区间和怎么选才划算
二手市场是直通卡的主要流通渠道,目前常见的几款:
| 网卡型号 | 速度 | 行情参考价 | 特点 |
|---|---|---|---|
| Intel I210-T1 | 千兆 | 80-150元 | 单口、稳定、发热低 |
| Intel I350-T2 | 千兆 | 150-250元 | 双口、支持硬件卸载 |
| Intel X710-DA2 | 万兆 | 600-900元 | 需配SFP+模块 |
| Mellanox ConnectX-3 | 万兆 | 200-400元 | 性价比高、延迟极低 |
选购时注意几点:
- 尽量选Intel芯片组,兼容性最好。
- 确认网卡接口类型是RJ45还是SFP+,后者需要额外购买光模块或DAC线。
- 拆机卡(机房退下来的)性价比高,但注意金手指和散热片是否完好。
- 万兆直通是“分水岭”:千兆直通的延迟降低感知有限,但万兆直通带来的吞吐提升非常明显,如果你只是千兆宽带拨号,没必要为了直通专门加卡。
直通卡有什么用:结论落在这三点
想用一句话概括:直通卡是虚拟化环境里的“直通车”,让虚拟机直接占用物理硬件,减少中转损耗,具体用途集中在三个方面:
- 软路由场景,跑满带宽并降低CPU占用;
- 虚拟化游戏和多开场景,显卡直通获得接近物理机的图形性能;
- 数据中心场景,提升虚拟机网络吞吐和降低延迟。
判断自己要不要买直通卡,先看现有的虚拟化环境是否存在性能瓶颈,如果虚拟机里的网卡吞吐总差一口气、CPU动不动就满载,而你又不打算迁移虚拟机,入一块直通卡会是不错的升级路径。
常见问题解答:直通卡和虚拟机性能
直通卡能同时给两台虚拟机用吗
不能,完整直通模式下,一块物理网卡只能分配给一台虚拟机独占,如果有多台虚拟机都需要直通,要么给每台虚拟机分配独立的物理网卡,要么使用SR-IOV技术把一块网卡拆成多个虚拟功能。
直通卡在PVE里识别不到怎么办
先检查BIOS的VT-d/IOMMU是否开启,再确认内核参数是否生效,可以在SSH里执行`dmesg | grep -i DMAR`查看是否有报错,如果内核参数没问题但依然识别不到,多半是网卡固件或兼容性问题,尝试在虚拟机里改用半虚拟化网卡(virtio)作为替代方案。
只有一块网卡的机器还能用直通吗
可以,但需要谨慎操作,前提是你的主板有管理口(如IPMI)或者你愿意接受直通网卡后宿主机Web管理界面暂时失联,更推荐的做法是先加装一块廉价的双口千兆网卡,一块口做宿主机管理,另一块口直通给虚拟机,这样两头不耽误。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/893318.html

