当我在计算机上工作时,网络有时会多次断开连接并重新连接。这种情况不定期发生,我无法重现它。有谁知道我该如何解决这个问题?
这里是硬件信息:
Network:
Device-1: Intel Ethernet I219-LM vendor: Holco Enterprise Co /Shuttle
driver: e1000e v: kernel port: N/A bus-ID: 00:1f.6
IF: eth1 state: down mac: <filter>
Device-2: Intel Ethernet I225-V vendor: Holco Enterprise Co /Shuttle
driver: igc v: kernel port: N/A bus-ID: 01:00.0
IF: eth0 state: up speed: 2500 Mbps duplex: full mac: <filter>
# nmcli device show
GENERAL.DEVICE: eth0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 80:EE:73:FA:CF:22
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: eth0
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnecti>
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.1.106/24
IP4.GATEWAY: 192.168.1.1
IP4.ROUTE[1]: dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 100
IP4.ROUTE[2]: dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]: 192.168.1.1
IP4.SEARCHES[1]: shuttle
IP6.ADDRESS[1]: 2a02:1210:7489:a300:2697:710a:426:426d/64
IP6.ADDRESS[2]: 2a02:1210:7489:a300:e284:205d:22b6:9db1/64
IP6.ADDRESS[3]: fe80::1744:cadf:be2:4aee/64
IP6.GATEWAY: fe80::a6ce:daff:feb7:b0a0
IP6.ROUTE[1]: dst = 2a02:1210:7489:a300::/64, nh = ::, mt = >
IP6.ROUTE[2]: dst = fe80::/64, nh = ::, mt = 1024
IP6.ROUTE[3]: dst = ::/0, nh = fe80::a6ce:daff:feb7:b0a0, mt>
IP6.DNS[1]: 2a02:1210:7489:a300::1
IP6.SEARCHES[1]: home
GENERAL.DEVICE: eth1
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 80:EE:73:FA:CF:21
GENERAL.MTU: 1500
GENERAL.STATE: 20 (unavailable)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
WIRED-PROPERTIES.CARRIER: off
IP4.GATEWAY: --
IP6.GATEWAY: --
GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 10 (unmanaged)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
IP6.ADDRESS[1]: ::1/128
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = ::1/128, nh = ::, mt = 256
这里是日志的输出:
# journalctl -u NetworkManager -f
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.1141] device (eth0): carrier: link connected
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.1143] device (eth0): state change: unavailable -> disconnected (reason 'carrier-changed', sys-iface-state: 'managed')
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.1151] policy: auto-activating connection 'eth0' (7ba00b1d-8cdd-30da-91ad-bb83ed4f7474)
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.1156] device (eth0): Activation: starting connection 'eth0' (7ba00b1d-8cdd-30da-91ad-bb83ed4f7474)
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.1157] device (eth0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.1158] manager: NetworkManager state is now CONNECTING
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.1160] device (eth0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.1356] device (eth0): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.1362] policy: set 'eth0' (eth0) as default for IPv4 routing and DNS
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.2509] device (eth0): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'managed')
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.2598] device (eth0): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed')
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.2600] device (eth0): state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed')
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.2604] manager: NetworkManager state is now CONNECTED_SITE
Dec 06 09:11:46 sh NetworkManager[919]: <info> [1701850306.2606] device (eth0): Activation: successful, device activated.
到目前为止我尝试过:
- 更换所有电缆
- 更换开关
- 重新安装整个系统
- 关闭 IPV6 但没有任何帮助。
答案1
您的eth0
接口是 Intel I225-V。如果你用谷歌搜索它,你会发现很多关于它的尖酸刻薄的讨论。
https://community.intel.com/t5/Ethernet-Products/Intel-I225-V-Drops-Connections/mp/1474748
似乎有一大批 Intel I225-V 芯片存在硬件错误。显然,收到该批次大部分主板的制造商是华硕和技嘉,但其他制造商可能也收到了一些有缺陷的芯片。
该芯片的最初版本确实要求在 2.5G 速度下有 8 字节的数据包间间隙,而不是规范允许的 5 字节间隙。这将导致数据包丢失并以 1 GB 速度重新协商链路。反复的重新谈判可能会导致速度大幅放缓。请参阅英特尔官方勘误表:https://cdrdv2.intel.com/v1/dl/getContent/621661
随后的修订试图解决该问题,但显然第一次并没有完全正确,或者由于第一次修复而出现了其他问题。
由于您的 I225-V 显然已集成到主板(如 所示vendor: Holco Enterprise Co /Shuttle
),请查看您的系统/主板供应商是否以 BIOS 更新的形式或作为单独的 NIC 固件更新的形式提供固件更新。
显然,固件解决方法可能需要针对主板型号进行调整,因此您应该更喜欢来自特定主板/系统供应商的固件而不是通用固件。
但是,如果您有其中一个有缺陷的芯片修订版,则固件解决方法可能无法实现稳定的 2.5G 链路,而是会使卡更持久地切换到 1G 链路,无论硬件如何,该链路都应该保持稳定漏洞。
显然,B3 芯片版本(大部分?)可用,而旧版本在各个方面都存在问题。