Linux在插入电缆时禁用以太网自动协商?

我最近注意到我只在我的千兆家庭网络上获得了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显式启用自动协商时,它似乎将所有模式通告给交换机并使用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主板的intel NIC(来自〜2015)和一个非管理型交换机(Netgear GS208).

解决方法:

经过几个小时的搜索,我在最明显的地方找到了解决方案:

NetworkManager似乎在以太网端口的设置中以某种方式禁用了自动协商:

Linux在插入电缆时禁用以太网自动协商?

奇怪的是,即使知道了NetworkManager可以改变以太网链接模式,我甚至找不到在线详细介绍该功能的单一来源.根据我发现的谷歌搜索结果的唯一方法是通过ethtool设置它.

上一篇:linux – 如何使用网络管理器在Fedora中设置DNS解析器?


下一篇:Openshift All In One一键部署工具