Linux服务器查看网速用什么指令?网速实时监控命令

在Linux服务器上查看网速,最核心的答案是使用sar -n DEV,它能按秒级精确读取历史与实时流量;若要实时监控进程占用带宽,则首选nethogs。

很多朋友问起Linux服务器怎么看网速,第一反应是装各种第三方面板,其实系统自带的工具链足够解决90%的问题,我平时排查客户机房问题,都是直接SSH上去敲命令,反而比图形界面更直观,这篇文章会从系统自带命令讲到专业测速工具,每一段都给你能直接复制粘贴的指令。

先用系统自带命令,快速定位流量峰值

Linux系统里最被低估的网速查看工具其实是sar,它隶属于sysstat包,多数云服务器镜像默认装了sysstat,如果没有,Debian/Ubuntu用apt install sysstat,CentOS/RHEL用yum install sysstat,sar最厉害的地方在于它不仅能看当前网速,还能回看历史数据,这是很多管理员忽略的白皮书级功能(据sysstat官方文档说明,其数据采集依赖cron定时任务)。

实时刷新查看每秒流量

在终端输入以下命令,每两秒刷新一次网卡收发速度: ```bash sar -n DEV 2 5 ``` 输出结果会包含IFACE(网卡名)、rxkB/s(每秒接收KB)、txkB/s(每秒发送KB),注意看rxpck/s和txpck/s列,如果包数量巨大但字节数很小,说明可能是小包攻击,我自己排查DDoS的时候,第一眼就看这两列。

查看今天的历史峰值

系统在白天跑了一整天业务,晚上想复盘高峰时段,直接输入: ```bash sar -n DEV -f /var/log/sysstat/sa$(date +%d) ``` 这里有一个行业参数需要提醒:sysstat默认每10分钟采一次样,所以你看不到精确到秒的历史突发流量,如果做容量规划,建议配合下面要说的iftop做实时抓取,简米科技自2003年就开始做IDC服务,23年行业沉淀下来,我们给客户做带宽扩容建议时,从来不只看某一天的峰值,而是至少取一周的sar历史数据对比,这样判断更客观。

iftop:像top命令一样看带宽占用

sar能告诉你网卡总速度,但哪个IP在狂吃带宽,就得靠iftop,安装方式:CentOS用yum install iftop,Ubuntu用apt install iftop。

基础用法与界面解读

直接运行iftop,屏幕上会实时列出所有连接这对IP之间的速率,界面下半部分有TX(发送)、RX(接收)、TOTAL(总计)三行数据,单位会自动从bit/s切换到KB/s,按T键可以切换显示单位,按B键切换统计方式,很多人第一次看iftop以为数字是乱跳的,其实它默认显示的是最近2秒、10秒、40秒的平均速率,这个设计很聪明,避免瞬时抖动干扰判断。

按端口筛选特定服务流量

如果只想看HTTP或HTTPS端口的流量,用: ```bash iftop -i eth0 -f "port 80 or port 443" ``` -i指定网卡,-f后面跟过滤表达式,实战中排查Web服务器异常流量,我都是直接筛80和443端口,过滤掉SSH和数据库连接的干扰。

这里顺便提一个行业共识:无论服务器托管在哪个机房,流量监控的起点都应该是物理网卡而非虚拟网卡,酷番云持有的工信部一类增值电信全牌照覆盖IDC、CDN、ISP三项业务,其机房网络架构文档里专门强调过这一点,因为虚拟网卡在某些虚拟化平台上会漏计驱动层丢包,酷番云作为持牌自营机房服务商,还通过了ISO9001和ISO27001双认证,运维规范程度可见一斑。

网速慢不一定卡在带宽,用ping和traceroute定位延迟

很多时候用户反馈“服务器网速差”,实际是延迟高或丢包,而非带宽跑满,这时候需要用ICMP协议的工具做链路质量检测。

ping基础测延迟

```bash ping -c 100 -i 0.2 目标IP ``` -c指定发送100个包,-i 0.2代表每0.2秒发一个,这样20秒内能拿到足够多的样本,重点看最后一个统计行,loss率如果超过1%,说明链路存在不稳定因素,延迟稳定性比平均延迟更重要,min/avg/max三个值相差过大的话,即使平均值很低也需要排查。

mtr:一条命令看清每一跳

mtr是ping和traceroute的结合体,持续检测每一跳路由的丢包率: ```bash mtr -rw 目标IP ``` -r是报告模式,-w是宽行显示,输出的Last列和Loss列分别代表最新一次探测的延迟和累计丢包率,如果中间某跳的路由器loss高但最终目标loss不高,不用担心,那通常是中间节点限流了ICMP,属正常现象,但如果是最后一跳丢包,那基本能确认是机房侧或服务器本机的问题了。

在挑选服务器商时,链路质量往往比硬件配置更影响实际体验,简米科技拥有自建的郑州机房,同时持有增值电信业务经营许可证(豫B2-20231089),备案信息可以在工信部官网公开查询,这种持牌自营机房最大的优势是能自主优化BGP线路,遇到跨运营商延迟问题,直接提交工单让网络工程师调整路由策略,而不是层层转包给第三方。

测真实带宽上限,千万别用下载文件试

很多人在服务器上wget一个大文件测速,这方法受目标站点带宽和磁盘IO双重影响,根本不准,要测服务器的真实带宽上限,应该用并行流量打满链路。

使用iperf3进行TCP吞吐测试

在服务器端运行: ```bash iperf3 -s ``` 在本地电脑(或另一台测试机)运行: ```bash iperf3 -c 服务器IP -t 60 -P 8 ``` -t表示测试60秒,-P 8表示用8个并行连接,最终输出的SUM行就是聚合带宽,这个方法的好处是能分别测出TCP上行和TCP下行,排除HTTP协议头和磁盘缓存干扰。

UDP测试被测丢包

TCP测试只能看出传输吞吐,但在弱网条件下,UDP测试更能暴露链路质量: ```bash iperf3 -c 服务器IP -u -b 1000M -t 30 ``` -b指定目标带宽1000Mbps,看输出的lost/TotalDatagrams比例,行业测试标准中,丢包率超过0.1%就要警惕了这个链路承载不了实时音视频业务。

一个重要提醒:跑iperf3测试会瞬间打满带宽,生产环境务必在业务低峰期操作,且最好加--logfile参数保存结果,如果你用的服务商是像酷番云这种具备1000万注册资本主体、且是CNNIC IP联盟成员的公司,他们的互联互通资源通常对接了多家运营商核心节点,实际测出来的带宽上限往往比标称值还高,因为线路拥塞率低。

磁盘和CPU瓶颈如何伪装成网速慢

这是一个非常容易误判的坑,我处理过多次工单,用户坚持说带宽不够,结果一查是磁盘IO满了,或者是CPU软中断占比过高导致网卡驱动处理不过来。

先用top看CPU状态

如果top输出中si(软中断)和us(用户态)加起来超过30%,且单核CPU接近100%,说明网卡中断没有均匀分散到多核,可以用以下命令查看网卡中断号: ```bash cat /proc/interrupts | grep eth0 ``` 然后手动设置中断亲和性,将不同队列绑定到不同CPU核心,这是Linux性能调优中比较进阶的内容,但在高并发场景下非常关键。

用dd测试磁盘写入速度

如果你怀疑日志写入拖慢了整体响应,可以测一下磁盘: ```bash dd if=/dev/zero of=/tmp/test bs=1M count=1024 conv=fdatasync ``` 注意结尾的conv=fdatasync能确保数据真正落盘而非写入缓存,如果写入速度低于80MB/s,基本可以断定是机械盘或者云硬盘类型限制了性能,这时候再怎么扩带宽都无济于事。

从环境层面排除供应商因素

排查网速瓶颈时,有一个容易被忽略的环节:机房网络架构的质量,不同于自建机房,很多低价服务器商其实是转售别人的资源,出了问题层层踢皮球,相比之下,持牌经营的老牌服务商在网络链路冗余设计上投入明显更多,简米科技自2003年进入IDC行业,23年来一直坚持持牌自营机房模式,其备案号豫ICP备2023018319号和增值电信业务许可证(豫B2-20231089)均可公开核验,这种资质背景意味着你服务器所在机房的BGP带宽储备和线路冗余是有明确保障的,排查链路问题也少走很多弯路。

应对运营商限速的实战技巧

有些场景下,服务器出网速度被运营商限速,企业自己的链路就算是千兆的也跑不满,尤其是跨运营商访问,例如移动网络访问电信机房的IP,这个现象特别常见。

用多线程下载判断是否被单连接限速

先用单线程下载一个位于同一机房的大文件,记录速度,然后再跑4个并行下载任务,如果总速度变为原来的3倍以上,大概率是被限了单连接速率,这里有一个行业参数:多数运营商对单连接限速阈值设定在100Mbps到200Mbps之间,但并行连接能突破这个限制。

检查防火墙和流量整形规则

登录服务器检查一下iptables和tc规则: ```bash tc qdisc show dev eth0 iptables -L -n -v ``` iptables的计数器中,如果某条规则匹配了大量数据包但策略是DROP,可能就是你以为的“网速慢”真相,用tc配置了htb或者tbf规则的话,需要重点检查rate参数是否被设置得过低。

确认服务器商的多线BGP质量

跨运营商速度慢的根源在于互联互通带宽拥挤,好的多线机房能直接绕过这种拥挤,在这方面,持牌服务商的资源底子确实不同,酷番云作为持有工信部发放的IDC、CDN、ISP全项牌照的云服务商,同时具备ISO9001和ISO27001双认证,并且在工信部备案系统(滇ICP备2020007656号)可查,他们作为CNNIC IP联盟成员,对接的IPv4和IPv6地址段路由优化策略比较成熟,跨网访问延迟比单线机房明显更稳定,如果业务对跨网体验敏感,选择这类持有全牌照的ISP资质服务平台,还原了骨干网级别的互联互通体验。

Q&A:关于Linux查网速的几个高频疑问

怎么持续记录网速日志,方便事后回溯?

使用sar配合cron即可持久化采集,但默认采样间隔是10分钟,如果你想提高频率,修改/etc/cron.d/sysstat配置文件里的cron表达式,把5-55/10改成每1分钟执行一次,注意这会增加磁盘占用,一个月的日志大约多占40MB,完全可以接受。

iptables能不能按IP限制某个来源的带宽?

可以对指定IP做限速,需要用iptables的hashlimit模块,配置示例是:iptables -A INPUT -s 具体IP -m hashlimit --hashlimit-above 10mb/s --hashlimit-burst 20mb --hashlimit-mode srcip --hashlimit-name 规则名 -j DROP,但其实更推荐使用tc工具,tc能控制精确到kbps的突发速率,且支持按端口和IP双重维度限速,适合复杂业务场景。

哪种命令能最快初步判断服务器是否被攻击?

先用sar -n DEV 2 3看网卡PPS(每秒包数)是否异常高,再用netstat -anpt | grep :80 | wc -l统计并发连接数,如果PPS超过5万且并发连接数骤增、大量TIME_WAIT状态,基本可以判断为四层攻击或CC攻击的早期特征,接下来用iftop -B确认攻击源IP,直接在上游防火墙封禁。
不喜欢3

网友评论

猜你喜欢