Linux服务器网络不稳定怎么办?,网络波动如何排查

Linux服务器网络不稳定,先在两端用 mtr 定位到具体跳数,再用 ip -s link 和 ethtool 看网卡错误计数,绝大部分问题在这两步就能分出是链路、网卡还是本机负载,剩下的才轮到内核参数。

网络时快时慢、SSH 偶尔卡顿、接口隔几分钟超时一次,这类问题最磨人,它不像宕机那样有明确信号,你登录上去看 CPU 内存都正常,top 一切平静,可业务就是断断续续,下面按“分清故障类型逐层定位长期加固”的顺序讲,都是能照着敲命令的路子。

Linux网络故障排查必须要懂的五个命令!
加载中
Linux网络故障排查必须要懂的五个命令!
D
DevOps架构师阿良
9255--
原视频地址

先把故障类型分清楚:网络抖动、丢包和带宽打满不是一回事

很多运维上来就改内核参数,这是典型的药不对症,三种现象的处理方向差得很远:

  • 网络抖动:延迟忽高忽低,ping 值在 5ms 到 200ms 之间跳,多见于链路拥塞、无线回传、云厂商跨可用区转发。
  • 持续丢包:延迟稳定但丢包固定在某个比例,多为网卡错误、光模块老化、MTU 不匹配。
  • 带宽打满:丢包伴随重传飙升,sar -n DEV 里 rxkB/s 贴着网卡上限跑。

(表格略)

用一张表对照更直观:

现象 典型原因 首个验证命令
延迟忽高忽低,偶发超时 链路拥塞、跨区转发、队列排队 mtr -rwzc 200 目标IP
丢包比例稳定 网卡错误、MTU 黑洞、光模块 ip -s link show eth0
吞吐先高后崩 网卡速率协商、半双工 ethtool eth0
连接建立慢但通 SYN 队列溢出、连接数打满 ss -lnt、nstat -az

先把这张表对上号,再往下走。

Linux服务器丢包严重怎么排查:四层定位法

排查顺序建议从外到内,别一上来就翻内核源码。

第一层:确认丢在哪一跳

在服务器和客户端两边分别跑长 ping 和 mtr,样本量给足,200 个包起步:

ping -c 200 -i 0.2 目标IP
mtr -rwzc 200 目标IP

mtr 的价值在于它把每一跳的丢包都列出来,看两个细节:丢包是从第几跳开始的,以及后续跳数是否恢复正常,如果某一跳丢 20% 但下一跳丢 0%,那通常是那一跳路由器对 ICMP 限速,不是真故障;如果从某跳开始一直丢到底,问题就锁定在那一段。

顺带用 ip route get 目标IP 确认出口网卡,多网卡机器上经常出现流量走了错误网卡的情况。

第二层:看网卡自己有没有在丢

ip -s link show eth0
ethtool -S eth0 | egrep -i 'err|drop|discard|fifo|miss'
ethtool eth0

ip -s link 的 RX errors、RX dropped、TX errors 三个计数是核心,注意区分:errors 增长对应物理层或驱动问题,dropped 增长多半是本机缓冲不够或上层丢弃。

ethtool eth0 重点看 Speed 和 Duplex,千兆网卡被协商成 100M 半双工是经典事故,症状就是大流量时延迟飙升、小流量完全正常,这种情况换网线、换交换机端口、强制指定速率都能验证。

驱动层的问题看内核日志:dmesg -T | grep -iE 'eth|link|reset|timeout',频繁出现 link up/down 或者 tx timeout,基本可以判定网卡、驱动或线缆有问题。

第三层:TCP 重传和连接队列

丢包在应用层最直观的表现是重传,查看方式:

nstat -az | grep -iE 'Retrans|Reset|Overflow'
ss -lnt

Send-Q 长期不为 0,说明应用写得慢、内核发不出去;Recv-Q 堆积则是应用读得慢,这和网络无关,但表现很像网络卡。

nstat 里 TcpExtListenOverflows 或 ListenDrops 有增长,说明 SYN 队列被打满,需要调 net.core.somaxconn 和 net.ipv4.tcp_max_syn_backlog。

还有一个容易被忽略的点:NAT 场景下的 conntrack 表满,用 conntrack -C 对比 sysctl net.netfilter.nf_conntrack_max,接近上限时新连接会直接丢,日志里表现为 nf_conntrack: table full。

第四层:MTU 黑洞和流量整形

云上环境尤其注意 MTU,VXLAN 封装后有效 MTU 通常是 1450,GRE 更小,判断方法:

ping -M do -s 1472 -c 3 目标IP

1472 加 28 字节头部正好 1500,如果大包不通小包通,就是典型的 MTU 黑洞,调小网卡 MTU 或开启 net.ipv4.tcp_mtu_probing=1。

如果本机配过 tc 限速,用 tc -s qdisc show dev eth0 看 backlog 和 drop 计数,限速策略写错导致的丢包,现象和链路故障几乎一样。

云服务器网络延迟高,是服务器问题还是运营商问题

这是用户问得最多的一类问题,云上排查和物理机不完全一样,因为你看不到物理链路,但可以看几处边界信号。

先做排除,再看边界:

  • 在同一可用区内两台机器互 ping,延迟稳定在 1ms 以内,说明云内网络正常。
  • 跨可用区或跨地域延迟升高,属于正常物理距离,看是否在厂商文档的参考区间内。
  • 只有公网访问慢,内网互访正常,那多半是公网出口或运营商侧链路。

业内专家指出,云环境的网络问题有相当一部分最终定位到公网出口拥塞或运营商互联质量,而不是用户实例本身,这种情况下继续在服务器上改参数,属于无效努力。

具体判断路径:

  1. 用 mtr 从服务器到客户端方向跑,再从客户端到服务器方向跑,对比丢包出现在哪一段。
  2. 换一个运营商线路的机器做对照测试,比如同时用电信和联通节点。
  3. 检查实例规格的网络收发包能力(PPS 上限),小规格实例在突发流量下会先丢包。

如果是公网质量问题,处理方式是提工单、换弹性公网 IP、或者加 CDN 和转发层做兜底,而不是继续调内核。

网络恢复稳定之后:双网卡绑定与监控告警

定位完故障,接下来做的是让它别再复发。

双网卡 bond 怎么配

单点网卡和单点交换机是物理机环境最常见的隐患,Linux 双网卡绑定(bonding)有几种模式:

  • mode=1 主备:配置简单,交换机不用配合,切换时有一次短断。
  • mode=4 LACP:需要交换机侧做端口聚合,吞吐和冗余兼得。
  • mode=0 轮询:不推荐生产使用,容易出现乱序。

配置文件在 /etc/sysconfig/network-scripts/ 下建 ifcfg-bond0,关键几行:

BONDING_OPTS="mode=4 miimon=100 lacp_rate=fast xmit_hash_policy=layer3+4"

注意:云服务器上的多网卡通常不支持 LACP,主备模式也需要厂商支持,上生产前先确认,这条踩坑的人不少。

该盯哪些指标

监控上至少埋这几个点,比看平均延迟有用得多:

  • 网卡 RX/TX dropped 的增量速率,不是绝对值。
  • TCP 重传率的分钟级增量。
  • 各链路的 mtr 丢包率,定期主动探测。
  • 连接数、conntrack 使用率和文件描述符占用。

据工信部公开的通信行业服务质量统计口径,链路质量主要看丢包率与时延抖动这两项,和自己的监控指标对得上。

Linux服务器网络不稳定怎么办:三个高频疑问

问:ping 一直通但业务偶尔报超时,这种情况怎么查?

ping 走 ICMP,业务走 TCP,路径上设备对两者的处理策略可能不同,重点看 TCP 重传、SYN 队列溢出和 conntrack 表满三项,命令在第三层定位里已经列过,另外确认业务侧有没有配超时时间过短的连接池。

问:改了内核参数之后网络更差了,是什么原因?

常见于调大 net.core.somaxconn 和 backlog 却没同步调整应用侧的 accept 队列,或者为了降延迟把 tcp_retries2 调得过小,导致轻微丢包就断连,改参数前先记录基线,一次只改一到两个,观察 24 小时再动下一个。

问:物理机和云服务器的排查思路有什么差别?

物理机多一层网卡速率协商、光模块和交换机端口,ethtool 和 dmesg 的信息量更大;云服务器看不到物理链路,重心放在实例规格的 PPS 上限、安全组丢包计数、公网出口质量,以及多网卡环境下的路由和策略路由配置上。

抓住一条主线就够了:先用 mtr 把丢包钉到具体一跳,再用网卡计数和 TCP 重传判断是本机还是链路,最后才动内核参数和架构层面的冗余,顺序反了,问题只会越查越糊。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/linux%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%bd%91%e7%bb%9c%e4%b8%8d%e7%a8%b3%e5%ae%9a%e6%80%8e%e4%b9%88%e5%8a%9e%ef%bc%9f%ef%bc%8c%e7%bd%91%e7%bb%9c%e6%b3%a2%e5%8a%a8%e5%a6%82%e4%bd%95%e6%8e%92%e6%9f%a5/

赞 (0)
上一篇 2026年11月5日 02:54
下一篇 2026年11月5日 02:56

相关推荐

  • 如何防御ICMP攻击?,怎么防止ICMP洪水攻击?

    防御ICMP攻击的核心在于限制ICMP数据包的速率和类型,并配合防火墙规则过滤异常流量,ICMP攻击虽然技术门槛不高,但长期占据DDoS攻击的相当比例,无论是Ping of Death还是Smurf、ICMP洪水,目标都是耗尽目标带宽或CPU资源,要有效防御,不能简单地一刀切禁用ICMP,而是需要一套分层策略……

    2026年7月21日
    1300
  • 我的世界服务器32k怎么弄,原版指令有哪些?

    想在我的世界服务器弄32k,原版环境先认清一件事:32k不是生存合成产物,而是命令、NBT或插件强制写入的结果,原版生存最多只能做出锋利5、力量5这类顶级附魔,离32767级差得远,32k这个叫法来自计算机里的32767,它是短整型数据的最大值,服务器玩家把附魔等级写成32767后,面板显示夸张伤害,慢慢就叫开……

    2026年9月10日
    200
  • Excel表格中的条件格式红旗标记怎么设置,怎么去掉

    Excel红旗是条件格式中图标集的一种,用于快速标识数据状态,其设置方法简单,通过“条件格式”菜单即可实现,能显著提升表格的可读性和管理效率,什么是Excel红旗及其实际应用场景Excel红旗是指Microsoft Excel软件中内置的一种条件格式图标,通常以红色旗帜形状呈现,用于在表格中直观地标记出需要特别……

    2026年7月21日
    3800
  • 海外服务器国内访问延迟高怎么优化,海外服务器国内访问延迟高怎么解决

    海外服务器国内访问延迟高,最有效的优化路径是组合使用CDN加速、BGP优化路由和优质专线接入,同时选择持牌服务商部署国内节点,简米科技与酷番云等具备合规资质与硬件资源的IDC品牌,能提供可落地的解决方案,海外服务器国内访问延迟高的主要原因物理距离决定传输底线光信号在光纤中传播速度约为真空中光速的2/3,从美国西……

    2026年8月1日
    1200
  • 反向代理如何设置cdn?CDN加速配置方法详解

    反向代理设置CDN的核心在于将源站IP隐藏,通过配置DNS解析和反向代理服务器(如Nginx或Apache)拦截请求,并将静态资源缓存至边缘节点,从而加速访问并保护源站安全,在2026年的网络架构中,单纯依靠源站服务器已经难以应对高并发和复杂的网络环境,许多站长在构建网站时,往往忽略了反向代理与CDN结合的重要……

    2026年7月10日
    18400
  • 服务器、客户端和PC的区别是什么?,它们之间是如何连接的?

    服务器、客户端与 PC 的区别解析在计算机网络和信息技术领域,服务器、客户端和 PC 是三个经常被提及但侧重点完全不同的概念,理解它们的区别,关键在于区分“逻辑角色”与“物理形态”,服务器 (Server)服务器的核心角色是资源提供者,它是一台高性能的计算机,专门用于为网络中的其他设备(客户端)提供数据、服务……

    2026年7月12日
    14100
  • 我的世界手机版2b2t服务器怎么才能进,进不去怎么办

    我的世界手机版没办法直接进入原版2b2t服务器,但你可以通过连接支持基岩版的2b2t风格镜像服务器,或者使用第三方跨平台工具获得类似体验,为什么手机版玩家总在找2b2t入口2b2t是《我的世界》Java版中最著名的无政府服务器,没有规则、禁止特权、地图永不重置,吸引大量玩家挑战极限生存,手机版玩家想进去,多半是……

    2026年8月7日
    600
  • 防ddos和cc的cdn怎么选?防ddos和cc攻击的cdn推荐

    选择具备强大 DDoS(分布式拒绝服务攻击) 和 CC(Challenge Collapsar,通常指应用层攻击,如 HTTP Flood) 防护能力的 CDN(内容分发网络),是企业保障业务稳定性的关键,以下是一份专业的指南,帮助你理解如何选择、哪些服务商值得考虑,以及需要注意的关键技术点, 核心概念区分在选……

    2026年7月12日
    19700
  • 戴尔服务器无法从光盘启动怎么办,是什么原因

    dell服务器从光盘启动不了,多数情况下不是光驱坏了,而是引导顺序没把光驱放到第一项、UEFI模式与Legacy光盘不兼容,或光盘本身没有可引导结构,先按F11进一次性引导菜单选光驱测试,再进F2调整引导序列即可解决,先排查光盘和光驱的物理状态在改动BIOS设置之前,先确认两件事:这张光盘在别的机器上能不能引导……

    2026年9月20日
    000
  • ASP环境下如何实现上传并保存txt文件的具体步骤详解?

    ASP环境下实现TXT文件上传功能,需结合服务器端脚本与前端表单,确保安全性与稳定性,以下是具体实现方案,核心原理与基础配置ASP(Active Server Pages)通过内置对象处理上传请求,其中Request.BinaryRead方法用于获取原始二进制数据,再通过解析获取文件内容,由于ASP原生不支持直……

    2026年2月3日
    13100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注