V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
cathedrel
V2EX  ›  Linux

做服务器的 debian 10,网卡 RTL8111/8168/8411 PCI Express Gigabit,现在速度只有 100M,如何强制网卡 1000M?

  •  
  •   cathedrel · 2021-01-31 03:39:57 +08:00 · 6279 次点击
    这是一个创建于 1396 天前的主题,其中的信息可能已经有所发展或是发生改变。

    主板双网口,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

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

    第 1 条附言  ·  2021-01-31 18:36:35 +08:00
    可以排除线的问题,把 debian10 的线拿下来换下千兆台式机的那根线,台式机依然千兆。而且这几根线是一起买的,质量看起来都还不错。

    在 debian10 上面运行 ethtool enp2s0,输出里面有一句:

    Link partner advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full

    完整的输出在这里:imgur . com / vLH3gmK (去空格)

    在千兆台式机上运行同样的命令可以看到同样的位置里面多了:

    Advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    1000baseT/Full

    是交换机的原因吗?可是换了交换机的口子还是百兆

    原因在哪儿呢?
    第 2 条附言  ·  2021-02-01 01:41:45 +08:00
    用 ubuntu 启动看了,还是 100M,在 ubuntu 上运行 ethtool enp2s0 的输出跟在 debian 上一个意思,Link partner advertised link modes 也是没有 1000M 的,现在怎么搞它??
    45 条回复    2021-04-13 09:54:02 +08:00
    vk42
        1
    vk42  
       2021-01-31 04:15:01 +08:00   ❤️ 2
    先确定是不是网线什么的问题吧,可能的话把确定 1000M 那条线连到这台机子上试试
    billwsy
        2
    billwsy  
       2021-01-31 04:42:56 +08:00 via iPhone   ❤️ 2
    强制千兆后失去连接,十有八九网线问题?看看网线不会是四芯的吧,网线长度多少,替换一根网线试试?
    lihongming
        3
    lihongming  
       2021-01-31 05:10:54 +08:00 via iPhone   ❤️ 2
    先排除硬件问题吧,我有块网卡也是这样,死活不上千兆,换一块同型号的就好了。后来发现那块网卡有根金手指是不通的。
    systemcall
        4
    systemcall  
       2021-01-31 09:54:46 +08:00   ❤️ 1
    之前遇到过,是网线坏了。换个网线试试
    lc7029
        5
    lc7029  
       2021-01-31 10:01:56 +08:00   ❤️ 2
    两个网卡,一个接百兆路由器,这个除了把路由器换成千兆之外没有办法。
    另一个网卡显示百兆,先看看网线是不是八根都通,是不是六类线(短距离五类也行),如果不是就先解决网线问题。
    看起来像是协商不到千兆,手动指定强制千兆,就断了。
    MeteorCat
        6
    MeteorCat  
       2021-01-31 10:14:47 +08:00 via Android   ❤️ 1
    光猫线是不是折弯了
    ungrown
        7
    ungrown  
       2021-01-31 11:40:45 +08:00   ❤️ 1
    可能是线或者接头的问题
    cathedrel
        8
    cathedrel  
    OP
       2021-01-31 18:11:42 +08:00
    @vk42
    @billwsy
    @lihongming
    @systemcall
    @lc7029
    @ungrown

    刚刚把 debian 10 接千兆交换机的线拿下来换下台式机上千兆口的那根线,依然千兆,而且这几根线是一起买的,现在排除是线的问题,debian 10 那边还能做什么操作?
    cathedrel
        9
    cathedrel  
    OP
       2021-01-31 18:26:29 +08:00
    @vk42
    @billwsy
    @lihongming
    @systemcall
    @lc7029
    @MeteorCat
    @ungrown

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


    我怀疑“Link partner advertised link modes”这一行有问题,这是指千兆交换机“建议”走百兆?可是同一台交换机接的另一台台式机上就是千兆,这是怎么回事呢?
    ungrown
        10
    ungrown  
       2021-01-31 19:58:49 +08:00   ❤️ 2
    好,如果能排除线、交换机等等的问题,那么接下来排查驱动程序
    尝试安装这个驱动“r8168-dkms”,如果已经安装了则反过来尝试将其卸载,然后看看情况是否变化
    另外, 为了彻底排查原物理链接(交换机、网线口、网线、等等)的问题,建议不拔线不换口不换机器,用 U 盘或者其他存储器启动一个其他的操作系统来看看能否成功千兆,可以尝试 win10 或者 ubuntu20 等常见且自动支持该网卡的操作系统
    cathedrel
        11
    cathedrel  
    OP
       2021-01-31 20:17:28 +08:00
    @ungrown 好建议,我这就来做个 ubuntu20 的启动盘试一下,晚点更新结果
    yuguorui96
        12
    yuguorui96  
       2021-01-31 20:38:17 +08:00
    用 ethtool 强制指定速度试试?
    yuguorui96
        13
    yuguorui96  
       2021-01-31 20:40:15 +08:00
    @yuguorui96 没看到你已经用 ethtool 了,用 mii-tool -v 验证下?
    terryhyx
        14
    terryhyx  
       2021-01-31 21:13:53 +08:00
    看一下交换机端口的设置 是自适应还是设死了 speed 和 duplex 的
    cathedrel
        15
    cathedrel  
    OP
       2021-01-31 21:17:54 +08:00
    @yuguorui96 mii-tool 是哪个软件包里面的?
    cathedrel
        16
    cathedrel  
    OP
       2021-01-31 21:19:11 +08:00
    @terryhyx 怎么看? tp-link 家用 8 口的交换机,好像不好设置什么的,而且同一台交换机上接的另一台机器的 intel 网卡就直接是千兆
    terryhyx
        17
    terryhyx  
       2021-01-31 21:22:38 +08:00
    家用交换机可以的话换个交换机试试看
    systemcall
        18
    systemcall  
       2021-01-31 22:13:53 +08:00   ❤️ 1
    rj45 接口也有可能坏了
    你的电脑,如果 2 个网口都是千兆的话,就在 Win10 或者 Ubuntu 下把两个网口用好的网线连接起来,看一下能不能到千兆。启动 Ubuntu Desktop LiveCD 就是在 Grub2 里面加个 loopback 的事,很好弄,可以试一下,要不了多久
    如果是普通的交换机,不是那种网管交换机 /VLAN 交换机 /3 层交换机之类的东西的话,应该是没有任何设置功能的,所有的口正常情况下都是 10Mbps/100Mbps/1Gbps 自适应,ethtool 里面应该是可以看到并且自动协商到 1Gbps 才对
    看上去不像是驱动的问题,因为 ethtool 里面可以看到正常的速率,而且你的网卡可以跑起来。交换机的接口也可以换一个,这个也可能损坏
    还是觉得电脑网口的问题可能性比较大,如果用 iperf3 来测速,百兆网卡应该是 90Mbps 多一些。我这边垃圾网卡都可以跑 95Mbps,应该不至于只有 7M/s 那么慢,而且如果是 smbv3 之类的协议可能还有压缩,实际的带宽开销更小
    no1xsyzy
        19
    no1xsyzy  
       2021-01-31 22:16:42 +08:00
    自认为可用千兆,收到对端握手是百兆
    基本可以认为问题出在物理链路上。
    甚至可能网口坏了
    pheyx
        20
    pheyx  
       2021-01-31 22:21:22 +08:00
    realtek 的网卡在 linux 下问题很多。usb 3.0 转千兆都比它强。
    kokutou
        21
    kokutou  
       2021-01-31 22:24:41 +08:00
    中间过了墙上的面板?
    面板没做好吧
    systemcall
        22
    systemcall  
       2021-02-01 00:13:23 +08:00   ❤️ 1
    @pheyx USB3.0 转千兆现在几乎只有亚信和 Realtek 的方案,后者的非常多
    还有千兆以太网的 phy,也是 Realtek
    反正我没遇到多少大问题,不过确实跑的不是很快。没有高贵的 Inte 网卡,没有办法测试。手里的板子只有一张特别老的是 Atheros 的网卡以外,都是 Realtek 的网卡,甚至 USB3.0 转千兆网卡也只有 Realtek 的。倒是有个国产山寨芯片的 USB2.0 百兆网卡,会给系统加广告的那种东西。交换机也都是 Realtek 的,甚至有的路由器里面的交换机也是 Realtek 的
    Realtek 是不好,但也不至于千兆网卡只能跑 70Mbps,又不是很长的网线。我有个房间的网线是坏的,只能跑 50 多 Mbps,可能是有点像,但是楼主的网线是好的,那就可能是电脑的网卡坏了
    应该不是 Realtek 的芯片坏了。Realtek 的无线网卡非常烂,但是有线网卡还能凑合用,感觉是 RJ45 接口或者网线变压器坏了,或者是板子被刮了的。看看网卡周围有没有粘贴,也许被修过。Realtek 的声卡芯片质量不是很好,有点容易坏,但是有线网卡还好
    pheyx
        23
    pheyx  
       2021-02-01 00:38:43 +08:00
    @systemcall 其实我以前是遇到了跟楼主类似的问题,当时我有一个 4 口 rtl 网卡的小主机,本来装 linux 运行的很好,直到突然有一天 4 口全变成百兆。跟楼主一样,试了几个不同的驱动都不行,我也是在那时知道了 linux 下这个芯片的网卡确实问题多,当然我有 rtl 网卡的其他机器在 win 下是没什么问题的。
    cathedrel
        24
    cathedrel  
    OP
       2021-02-01 01:41:10 +08:00
    @ungrown
    @systemcall
    @pheyx

    刚刚用 ubuntu 启动看了,还是 100M,在 ubuntu 上运行 ethtool enp2s0 的输出跟在 debian 上一个意思,Link partner advertised link modes 都没有 1000M 的,现在怎么搞它??
    cathedrel
        25
    cathedrel  
    OP
       2021-02-01 01:52:33 +08:00
    @pheyx
    @systemcall
    @ungrown
    @lc7029

    在 ubuntu 上强制 1000M:ethtool -s enp2s0 speed 1000 duplex full,网卡失去连接,ethtool enp2s0 再看,speed 和 duplex 都变成了 unknown
    LGA1150
        26
    LGA1150  
       2021-02-01 06:02:15 +08:00 via Android
    网卡坏了
    cathedrel
        27
    cathedrel  
    OP
       2021-02-01 06:59:00 +08:00
    @LGA1150 能上网,无中断,好着呢
    goodryb
        28
    goodryb  
       2021-02-01 09:41:44 +08:00
    我觉得如果要验证这种问题是不是还是 window 来的比较快,如果 win 下也只能是百兆,那真怀疑是不是网卡问题
    ungrown
        29
    ungrown  
       2021-02-01 09:46:23 +08:00
    @cathedrel #24 脑子不要僵,别把路走窄,既然 ubuntu 能够重现故障,何不再试一下 win10,也许你会发现 win10 下也能重现故障,如果当真如此,那说明问题还是在物理链路或者硬件上(主板、网卡芯片、RJ45 网口、水晶头、网线)
    julyclyde
        30
    julyclyde  
       2021-02-01 11:04:19 +08:00
    @yuguorui96 mii-tool 已经淘汰了很多年了
    tankren
        31
    tankren  
       2021-02-01 15:11:34 +08:00
    大概率线的问题或者网卡问题
    cathedrel
        32
    cathedrel  
    OP
       2021-02-01 19:00:46 +08:00
    @goodryb
    @ungrown 如果 windows 下也只是百兆,那就一定是硬件的问题?那就除了换硬件否则无解了是吧?
    goodryb
        33
    goodryb  
       2021-02-01 19:11:24 +08:00
    @cathedrel #32 我理解 windows 下驱动应该兼容性比较好,也不是说一定就怎么样
    ungrown
        34
    ungrown  
       2021-02-01 22:31:57 +08:00
    @cathedrel #32 可能性这个东西在 0 和 1 之间是连续分布的
    liuxu
        35
    liuxu  
       2021-02-02 14:12:03 +08:00   ❤️ 1
    要么网卡有问题,要么驱动有问题

    ip address show enp2s0
    ip link show enp2s0
    lspci -kv

    上面三个命令的输出看一下
    cathedrel
        36
    cathedrel  
    OP
       2021-02-02 20:58:39 +08:00
    @liuxu 输出的结果在此:(去掉空格)

    i.im gur.co m/y3 phucW.png

    i.im gur.c om/ST9 GPis.png
    liuxu
        37
    liuxu  
       2021-02-03 11:07:10 +08:00   ❤️ 1
    @cathedrel 发 imgur 的图片不用空格,v2 会直接解析显示图片

    我查了一下,看看你的内核版本

    uname -a

    我看到有人和你遇到同样的问题,内核在 4.18.16 修复了

    如果升级内核还有问题,看看 dmesg

    dmesg | egrep -i '(enp2s0|8168)'
    cathedrel
        38
    cathedrel  
    OP
       2021-02-03 18:13:40 +08:00
    @liuxu 谢谢提示,我现在的系统内核是 4.19 ,安装好就是这个内核,需要降级一下?

    现在的内核和 dmesg: i.im gur.co m/FK2 Gnhz.png (不加空格还不让发...)
    cathedrel
        39
    cathedrel  
    OP
       2021-02-03 18:21:43 +08:00
    @liuxu debian 10 默认的设置安装不了 4.19 以下的内核了,大动干戈的话系统会不会崩?
    liuxu
        40
    liuxu  
       2021-02-03 19:16:08 +08:00   ❤️ 1
    @cathedrel

    本地没啥问题,看看你的交换机,是不是 1 个 G 口 1 个 100M 口,把 debian 的网线插到台式机测试一下,看着是交换机限制到了 100M

    网卡启动加载上了,ip 也分配上了,驱动也 r8168 没问题的,自信点
    cathedrel
        41
    cathedrel  
    OP
       2021-02-03 19:44:56 +08:00
    @liuxu 线和端口都互换过的,确定不是网线问题不是端口问题,交换机是 8 口千兆交换机,台式机随便插哪个口都是千兆

    现在怎么办?尝试安装 4.18.16 的驱动?
    liuxu
        42
    liuxu  
       2021-02-03 19:46:21 +08:00
    @cathedrel 那就不知道了,除非实际调试
    ziwen1943
        43
    ziwen1943  
       2021-02-08 10:12:55 +08:00
    可能是五类线(网线上有标 cat.5),换六类网线( cat.6)试试.这种情况比较常见,还有,可以把这个网线插到千兆笔记本网卡上看看,可以判断是不是硬件链路限制 100M 。
    cathedrel
        44
    cathedrel  
    OP
       2021-02-08 18:20:17 +08:00
    @ziwen1943 试过了,这根线换到千兆台式机上台式机还是千兆,台式机的线给它用上它也还是百兆,不是线或着交换机端口的问题
    Variazioni
        45
    Variazioni  
       2021-04-13 09:54:02 +08:00
    有 4b 的价格不如搞个蜗牛星际之类的。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1096 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:53 · PVG 03:53 · LAX 11:53 · JFK 14:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.