我的一个网络适配器(Edimax 10 Gigabit Ethernet SFP+)报告的 MTU 为 1496。我已通过检查 WireShark 中捕获的最大数据包大小(1514 字节,减去以太网报头和 FCS)验证了这一点,这导致有效负载大小为 1496 字节。我想将 MTU 更改为 1500。操作系统是 Windows Server 2019,并且安装了 Hyper-V。适配器连接到虚拟交换机,管理操作系统正在共享网络适配器。
运行 Powershell 查询适配器属性我们得到:
PS C:\Users\Administrator> Get-NetAdapter | Select-Object -Property InterfaceDescription, ifIndex, MtuSize
InterfaceDescription ifIndex MtuSize
-------------------- ------- -------
Hyper-V Virtual Ethernet Adapter 25 1500
Intel(R) 82574L Gigabit Network Connection 16 1500
Edimax 10 Gigabit Ethernet SFP+ PCI Express Adapter 4 1496
尝试设置 Edimax 10 Gigabit 的 MTU 失败:
PS C:\Users\Administrator> netsh interface ipv4 set subinterface "4" store=persistent mtu=1500
The parameter is incorrect.
尝试使用相同命令为 Intel(R) 82574L 设置 MTU 成功:
PS C:\Users\Administrator> netsh interface ipv4 set subinterface "16" store=persistent mtu=1500
Ok.
我也尝试添加注册表项来直接设置它。重新启动后,Get-NetAdapter 返回相同的 1496 MTU 值,似乎忽略了注册表项。
我在 Windows 10 机器上有相同的网络适配器,同样的问题。
如何更改 MTU?
答案1
回答:禁用适配器属性中的“QoS(IEEE 802.1q)卸载”选项允许我将 MTU 设置为 1500。我不确定这是否是预期的行为,或者禁用该选项是否会破坏网络中的任何其他内容,但我会将其标记为已回答,因为它解决了基本问题 - 适配器拒绝更高的 MTU,因为它无法遵守其当前配置。
答案2
如果您是公司的一员,请查看您公司的 IT 部门是否正在安装名为 ZScaler ZCC 的软件。
Zscaler 是一款安全应用程序。为了提高效率,它将 MTU 数据包大小限制为 1500。