我目前正在尝试切换到 Fedora,但无法通过有线连接进行通信。
我不知道出了什么问题,从计算机方面来看一切都很好,但我无法访问互联网。
现在我正在使用带有 wifi 扩展卡的电脑,但我更喜欢使用我的 LAN,就像我在 Windows 上所做的那样。
从lspci -v -s
我得到:
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-LM (rev 04)
DeviceName: Onboard LAN
Subsystem: Hewlett-Packard Company Device 18e7
Flags: bus master, fast devsel, latency 0, IRQ 28
Memory at f7f00000 (32-bit, non-prefetchable) [size=128K]
Memory at f7f3d000 (32-bit, non-prefetchable) [size=4K]
I/O ports at f080 [size=32]
Capabilities: [c8] Power Management version 2
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [e0] PCI Advanced Features
Kernel driver in use: e1000e
Kernel modules: e1000e
..所以有一个驱动程序,我检查了一下,它是正确的。
从ifconfig
我得到:
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::d7ca:22ac:2be6:6e32 prefixlen 64 scopeid 0x20<link>
inet6 fd00::f44d:810d:f682:c4 prefixlen 64 scopeid 0x0<global>
ether 64:51:06:52:33:54 txqueuelen 1000 (Ethernet)
RX packets 8550 bytes 1058180 (1.0 MiB)
RX errors 0 dropped 5512 overruns 0 frame 0
TX packets 336 bytes 45969 (44.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 20 memory 0xf7f00000-f7f20000
..但是没有ipv4地址,所以是我的路由器故障吗?
我尝试过以下方法:
首先,我重新安装了驱动程序,这让情况变得更糟(之后没有连接,只是收到类似“无法激活以太网连接”的错误)。
我已经阅读了一些与此问题相关的帖子,并将其添加pcie_aspm=off
到我的内核行中。
我真的不知道更多,所以非常感谢您的帮助!
答案1
尝试sudo ethtool eno1
查看是否正确检测到另一端的链路和速度/双工设置。还应sudo ethtool -S eno1
显示更长的数据包/错误计数器列表,这可能有助于确定有线连接丢弃传入数据包的原因。
有时,现代 NIC 的节能以太网功能可能会让旧的网络交换机/路由器感到困惑。您可以通过以下方式查看此功能的状态:
sudo ethtool --show-eee eno1
响应可能如下所示:
EEE settings for eno1:
EEE status: enabled - active
Tx LPI: 17 (us)
Supported EEE link modes: 100baseT/Full
1000baseT/Full
Advertised EEE link modes: 100baseT/Full
1000baseT/Full
Link partner advertised EEE link modes: 100baseT/Full
1000baseT/Full
如果“链路伙伴通告的 EEE 链路模式”为空,则电缆另一端的交换机/路由器并未声称支持 EEE,并且可能会被它混淆。在这种情况下,看看告诉您的 NIC 停止尝试使用 EEE 是否有帮助:
sudo ethtool --set-eee eno1 eee off
如果这有帮助,您可能需要永久禁用 EEE 功能,这样它就不会在重新启动后重新激活。有很多方法可以做到这一点;这是一个应该与您的网络配置管理方式几乎无关的配置。
要永久禁用 EEE,请创建一个名为以下内容的systemd 单元模板文件:/etc/systemd/system/[email protected]
[Unit]
Description=Disable EEE for %i
After=sys-subsystem-net-devices-%i.device
DefaultDependencies=no
[Service]
ExecStart=/usr/sbin/ethtool --set-eee %i eee off
ExecStop=/usr/sbin/ethtool --set-eee %i eee on
Type=oneshot
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
然后运行:
sudo systemctl enable [email protected]
使其持久,并且
sudo systemctl start [email protected]
立即激活它而无需重新启动。
如果您需要将其应用于其他网络接口,则只需使用最后两个命令,根据需要更改网络接口的名称。
输出中的这些行ifconfig eno1
表明 NIC 已丢弃所有收到的数据包的一半以上:
RX packets 8550 bytes 1058180 (1.0 MiB)
RX errors 0 dropped 5512 overruns 0 frame 0
谷歌搜索“Intel I217-LM drop packet”告诉我,Dell OptiPlex 9020 SFF 和 HP EliteDesk 800 G1 系统也有类似的症状,原因显然是使用的物理连接器组件:UDE RU1H251NRW2FRJ45 插孔 + 2x USB 2.0 端口。请在英特尔自己的支持论坛上查看此主题。
Subsystem:
输出中的行表明lspci -v -s
您的系统是某种 Hewlett-Packard 型号。您应该检查 HP 支持页面以了解您的系统型号:如果此问题会影响您的型号,我预计 HP 可能已发布有关此问题的支持通知。
由于英特尔显然计划在 I217-LM 上“开始产品停产流程”在今年最后一个季度,我认为您的系统并不是那么新,如果遇到此问题,可以选择保修更换。