我最近注意到我的千兆家庭网络仅获得 100Mbit/s 的吞吐量。
当我查看它时,ethtool
我发现我的 ArchLinux Box 使用的100baseT/Half
是链接速度,而不是1000baseT/Full
其 NIC 和连接到它的交换机支持的链接速度。我不知道为什么,但 NIC 似乎没有根据以下内容宣传其链接模式ethtool
:
Settings for enp0s31f6:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Speed: 100Mb/s
Duplex: Half
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: off
MDI-X: on (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
当通过运行显式启用自动协商时,ethtool --change enp0s31f6 autoneg on
它似乎会向交换机通告其所有模式并使用1000baseT/Full
.
这仅在大部分时间和一段时间内有效。当我拔下电缆并将其重新插入时,自动调节功能会关闭大多数时候, 但不总是。另外,有时将 autoneg 设置为 on 会立即再次禁用它。重新启动也会再次禁用它。
请注意,拔出插头时自动协商不会被禁用,而是重新插入时会被禁用。dsmeg
当启用 autoneg 并插入电缆时记录此信息:
[153692.029252] e1000e: enp0s31f6 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
[153699.577779] e1000e: enp0s31f6 NIC Link is Up 100 Mbps Half Duplex, Flow Control: None
[153699.577782] e1000e 0000:00:1f.6 enp0s31f6: 10/100 speed: disabling TSO
我正在使用我的 asrock 主板(从 ~2015 年起)的英特尔网卡和非托管交换机 (Netgear GS208)。
答案1
答案2
我有完全相同的问题,我很确定我从来没有有意识地设置过这个......
ethtool --change enp0s31f6 autoneg on
立即修复它,网络正确自动协商为 1Gbit 全双工,然后当我查看 NetworkManager 时,它确实设置为 100mbit...