技术解析

做服务器的 debian 10,网卡 RTL8111/8168/8411 PCI Express Gigabit,现在速度只有 100M,如何强制网卡 1000M?
0
2021-06-11 21:28:24
idczone

主板双网口,RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller,两个网口都连着网线,一条接千兆交换机,一条接百兆路由器,千兆交换机上连着的另一台电脑网卡 Intel Corporation I350 在系统里看是千兆连接,没有想到过 debian10 里面还能只有百兆。刚刚拷贝文件才发现速度只有 7M/s 左右,然后就是折腾:

一开始看 ethtool -i enp2s0,驱动是 r8169,apt install r8168-dkms,装完重启系统,驱动显示为 r8168 了,但是速度还是百兆美国服务器

我在想会不会两个网口也有“水桶理论”:都按照最低速的那个来算?于是禁用连着百兆路由器的那个网卡,重启,连千兆交换机的网卡还是百兆的速度

又在网上找了一条命令 “ethtool -s enp2s0 speed 1000 duplex full”, 运行之,ssh 终端失去相应,重启 debian 10,还是 100M

没辙了,求教,怎么让它老老实实走千兆??多谢!


先确定是不是网线什么的问题吧,可能的话把确定 1000M 那条线连到这台机子上试试

强制千兆后失去连接,十有八九网线问题?看看网线不会是四芯的吧,网线长度多少,替换一根网线试试?

先排除硬件问题吧,我有块网卡也是这样,死活不上千兆,换一块同型号的就好了。后来发现那块网卡有根金手指是不通的。

之前遇到过,是网线坏了。换个网线试试

两个网卡,一个接百兆路由器,这个除了把路由器换成千兆之外没有办法。
另一个网卡显示百兆,先看看网线是不是八根都通,是不是六类线(短距离五类也行),如果不是就先解决网线问题。
看起来像是协商不到千兆,手动指定强制千兆,就断了。

光猫线是不是折弯了

可能是线或者接头的问题







刚刚把 debian 10 接千兆交换机的线拿下来换下台式机上千兆口的那根线,依然千兆,而且这几根线是一起买的,现在排除是线的问题,debian 10 那边还能做什么操作?








debian 10 上运行 ethtool enp2s0 输出在此:imgur . com / vLH3gmK (去空格)

我怀疑“Link partner advertised link modes”这一行有问题,这是指千兆交换机“建议”走百兆?可是同一台交换机接的另一台台式机上就是千兆,这是怎么回事呢?

好,如果能排除线、交换机等等的问题,那么接下来排查驱动程序
尝试安装这个驱动“r8168-dkms”,如果已经安装了则反过来尝试将其卸载,然后看看情况是否变化
另外, 为了彻底排查原物理链接(交换机、网线口、网线、等等)的问题,建议不拔线不换口不换机器,用 U 盘或者其他存储器启动一个其他的操作系统来看看能否成功千兆,可以尝试 win10 或者 ubuntu20 等常见且自动支持该网卡的操作系统

好建议,我这就来做个 ubuntu20 的启动盘试一下,晚点更新结果

用 ethtool 强制指定速度试试?

没看到你已经用 ethtool 了,用 mii-tool -v 验证下?

看一下交换机端口的设置 是自适应还是设死了 speed 和 duplex 的

mii-tool 是哪个软件包里面的?

怎么看? tp-link 家用 8 口的交换机,好像不好设置什么的,而且同一台交换机上接的另一台机器的 intel 网卡就直接是千兆

家用交换机可以的话换个交换机试试看

rj45 接口也有可能坏了
你的电脑,如果 2 个网口都是千兆的话,就在 Win10 或者 Ubuntu 下把两个网口用好的网线连接起来,看一下能不能到千兆。启动 Ubuntu Desktop LiveCD 就是在 Grub2 里面加个 loopback 的事,很好弄,可以试一下,要不了多久
如果是普通的交换机,不是那种网管交换机 /VLAN 交换机 /3 层交换机之类的东西的话,应该是没有任何设置功能的,所有的口正常情况下都是 10Mbps/100Mbps/1Gbps 自适应,ethtool 里面应该是可以看到并且自动协商到 1Gbps 才对
看上去不像是驱动的问题,因为 ethtool 里面可以看到正常的速率,而且你的网卡可以跑起来。交换机的接口也可以换一个,这个也可能损坏
还是觉得电脑网口的问题可能性比较大,如果用 iperf3 来测速,百兆网卡应该是 90Mbps 多一些。我这边垃圾网卡都可以跑 95Mbps,应该不至于只有 7M/s 那么慢,而且如果是 smbv3 之类的协议可能还有压缩,实际的带宽开销更小

自认为可用千兆,收到对端握手是百兆
基本可以认为问题出在物理链路上。
甚至可能网口坏了

realtek 的网卡在 linux 下问题很多。usb 3.0 转千兆都比它强。

中间过了墙上的面板?
面板没做好吧

USB3.0 转千兆现在几乎只有亚信和 Realtek 的方案,后者的非常多
还有千兆以太网的 phy,也是 Realtek
反正我没遇到多少大问题,不过确实跑的不是很快。没有高贵的 Inte 网卡,没有办法测试。手里的板子只有一张特别老的是 Atheros 的网卡以外,都是 Realtek 的网卡,甚至 USB3.0 转千兆网卡也只有 Realtek 的。倒是有个国产山寨芯片的 USB2.0 百兆网卡,会给系统加广告的那种东西。交换机也都是 Realtek 的,甚至有的路由器里面的交换机也是 Realtek 的
Realtek 是不好,但也不至于千兆网卡只能跑 70Mbps,又不是很长的网线。我有个房间的网线是坏的,只能跑 50 多 Mbps,可能是有点像,但是楼主的网线是好的,那就可能是电脑的网卡坏了
应该不是 Realtek 的芯片坏了。Realtek 的无线网卡非常烂,但是有线网卡还能凑合用,感觉是 RJ45 接口或者网线变压器坏了,或者是板子被刮了的。看看网卡周围有没有粘贴,也许被修过。Realtek 的声卡芯片质量不是很好,有点容易坏,但是有线网卡还好

其实我以前是遇到了跟楼主类似的问题,当时我有一个 4 口 rtl 网卡的小主机,本来装 linux 运行的很好,直到突然有一天 4 口全变成百兆。跟楼主一样,试了几个不同的驱动都不行,我也是在那时知道了 linux 下这个芯片的网卡确实问题多,当然我有 rtl 网卡的其他机器在 win 下是没什么问题的。




刚刚用 ubuntu 启动看了,还是 100M,在 ubuntu 上运行 ethtool enp2s0 的输出跟在 debian 上一个意思,Link partner advertised link modes 都没有 1000M 的,现在怎么搞它??





在 ubuntu 上强制 1000M:ethtool -s enp2s0 speed 1000 duplex full,网卡失去连接,ethtool enp2s0 再看,speed 和 duplex 都变成了 unknown

网卡坏了

能上网,无中断,好着呢

我觉得如果要验证这种问题是不是还是 window 来的比较快,如果 win 下也只能是百兆,那真怀疑是不是网卡问题

脑子不要僵,别把路走窄,既然 ubuntu 能够重现故障,何不再试一下 win10,也许你会发现 win10 下也能重现故障,如果当真如此,那说明问题还是在物理链路或者硬件上(主板、网卡芯片、RJ45 网口、水晶头、网线)

mii-tool 已经淘汰了很多年了

大概率线的问题或者网卡问题


如果 windows 下也只是百兆,那就一定是硬件的问题?那就除了换硬件否则无解了是吧?

我理解 windows 下驱动应该兼容性比较好,也不是说一定就怎么样

可能性这个东西在 0 和 1 之间是连续分布的

要么网卡有问题,要么驱动有问题
ip address show enp2s0
ip link show enp2s0
lspci -kv
上面三个命令的输出看一下

输出的结果在此:(去掉空格)
i.im gur.co m/y3 phucW.png
i.im gur.c om/ST9 GPis.png

发 imgur 的图片不用空格,v2 会直接解析显示图片
我查了一下,看看你的内核版本
uname -a
我看到有人和你遇到同样的问题,内核在 4.18.16 修复了
如果升级内核还有问题,看看 dmesg
dmesg | egrep -i '(enp2s0|8168)'

谢谢提示,我现在的系统内核是 4.19 ,安装好就是这个内核,需要降级一下?
现在的内核和 dmesg: i.im gur.co m/FK2 Gnhz.png (不加空格还不让发...)

debian 10 默认的设置安装不了 4.19 以下的内核了,大动干戈的话系统会不会崩?


本地没啥问题,看看你的交换机,是不是 1 个 G 口 1 个 100M 口,把 debian 的网线插到台式机测试一下,看着是交换机限制到了 100M
网卡启动加载上了,ip 也分配上了,驱动也 r8168 没问题的,自信点

线和端口都互换过的,确定不是网线问题不是端口问题,交换机是 8 口千兆交换机,台式机随便插哪个口都是千兆
现在怎么办?尝试安装 4.18.16 的驱动?

那就不知道了,除非实际调试

可能是五类线(网线上有标 cat.5),换六类网线( cat.6)试试.这种情况比较常见,还有,可以把这个网线插到千兆笔记本网卡上看看,可以判断是不是硬件链路限制 100M 。

试过了,这根线换到千兆台式机上台式机还是千兆,台式机的线给它用上它也还是百兆,不是线或着交换机端口的问题

有 4b 的价格不如搞个蜗牛星际之类的。。。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服