linux服务器网速怎么查看,如何查看linux服务器实时网速?

Linux服务器网速查看,最直接的方法是使用iftop、nload、vnstat等命令行工具实时监控带宽占用,同时结合ss或netstat排查具体连接,定位是哪个进程在消耗流量。

排查网速问题,本质上是回答三个问题:带宽用了多少、谁在用、用到哪去了,服务器不像个人电脑有图形化的任务管理器,所有网络状态都隐藏在命令行背后,下面从工具安装到实战排查,按场景拆开讲。

实时带宽监控:看清总流量大小

想知道服务器当前跑着多少流量,优先用两个工具:iftop和nload,两者侧重点不同,iftop偏向显示连接级别的流量,nload更擅长展示网卡整体的进出带宽曲线。

iftop:盯着具体连接看流量

安装方式因系统而异,Debian/Ubuntu系用apt install iftop,CentOS/RHEL系用yum install iftop,装好后直接运行:

iftop -i eth0 -n -B

参数含义拆开讲:-i指定网卡名,-n不解析域名只显示IP(省去DNS等待时间),-B以字节为单位显示(默认是比特,数字大看着唬人),界面分上下两部分,上半部分列出当前活跃的连接和各自速率,下半部分是累计流量统计,按p键可以切换显示端口号,按t键在收发流量之间切换视图。

nload:一眼看懂网卡整体带宽

nload的参数就简单多了:

nload eth0

界面用字符画展示进和出的实时流量曲线,左侧是入方向,右侧是出方向,下方标着当前值、最小值和最大值,排查带宽跑满的情况,先看nload确认总带宽,再用iftop定位具体连接,这个顺序效率最高,因为如果网卡每秒进出口总和不到带宽上限,问题可能不在流量大小,而在延迟或丢包。

历史流量追踪:回看过去发生了什么

实时监控只能看到当下,流量高峰发生在半夜怎么办?需要vnstat这类工具做长期统计。

vnstat:常驻后台默默记账

安装后先初始化数据库:

vnstat -u -i eth0
systemctl enable --now vnstat   # 老版本用 service vnstat start

数据库会把每五分钟的流量累计值写进文件,查询时直接导出:

vnstat -d    # 查看每日流量
vnstat -h    # 查看每小时流量
vnstat -m    # 查看每月流量

排查突发流量时,vnstat -h能快速定位哪一小时流量异常,然后结合日志或应用访问记录缩小范围。对于长期运行的业务服务器,建议安装时就配好vnstat,否则流量异常时没有历史数据做对比,排查难度会大很多。

sar:系统自带的历史网速记录

多数Linux发行版自带sysstat工具包,其中的sar命令也能查历史网速:

sar -n DEV -f /var/log/sa/sa20241015

这条命令读取某天的网络历史快照,-n DEV参数表示网络设备信息,输出包含rxkB/s和txkB/s两列,分别代表每秒接收和发送的KB数,即便没有提前装vnstat,只要sysstat在运行,sar就能提供一定时间范围内的网速回放能力。

按连接排查:定位谁在吃带宽

知道了总带宽使用量,下一步就是揪出具体的连接,这里用到的核心命令是ss,它是netstat的现代替代品,输出更快更详细。

查看当前网络连接快照

ss -s                    # 统计摘要,看总连接数
ss -antp                 # 查看所有TCP连接,显示IP端口和进程名
ss -antp | grep :80      # 只看80端口(Web服务)
ss -antp | grep ESTAB    # 只看已建立的连接

-a表示所有连接,-n不解析服务名,-t只看TCP,-p显示进程PID和名称。-p参数很关键,直接告诉我们每个连接属于哪个进程,省去lsof或ps反查的步骤。

按IP聚合计流量

带宽被某个IP大量占用时,用awk配合ss做简单统计:

ss -antp | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20

这条命令统计每个远程IP建立的连接数,按数量倒序排列。连接数异常大的IP大概率是问题源头,比如被爬虫抓取、被CC攻击,或者内部某台机器在疯狂拉取数据。

结合iftop端口判断业务类型

iftop界面里每个连接后面跟着端口号,常见业务端口有参考价值:80/443是网页访问,3306是MySQL数据库,6379是Redis缓存,22是SSH连接,如果发现某个不认识的端口占据大量带宽,优先用lsof -i:端口号查看对应程序路径。

实际测速:验证带宽和延迟的真实状态

监控工具查的是服务器内部看到的流量,但实际带宽够不够、线路质量好不好,需要主动测速验证。

本机回环测速法

用dd配合nc在服务器本地通过回环地址(127.0.0.1)测一个假想的最大吞吐量,先开一个监听端:

nc -l -p 9999 > /dev/null

再开一个发送端:

dd if=/dev/zero bs=1M count=1024 | nc 127.0.0.1 9999

观察发送速度,这个数值代表TCP协议在当前系统参数下的理论吞吐上限,如果数值偏低,检查内核参数net.core.wmem_max和net.ipv4.tcp_rmem等设置。

外部测速更接近真实体验

回环测速排除了硬件和线路因素,但用户访问的是公网,最终体验取决于从客户端到服务器整条链路。可以用iperf3在另一台机器上反向测速,或者从本地电脑用curl -w查看传输速度:

curl -o /dev/null -s -w '速度: %{speed_download} 字节/秒\n' https://你的域名/一个100MB的文件

这个方法测出来的速度跟用户实际下载体验一致,能直接反映带宽购买是否缩水。

MTR检查线路丢包和抖动

带宽充足但打开网页感觉卡顿,问题多半出在中间链路,用mtr工具结合traceroute查看从服务器到目标IP的每一跳:

mtr -rw 8.8.8.8

-r只跑10个来回就退出,-w使用宽格式输出,看每一行的Loss%列,中间某跳持续丢包,且后续节点也跟着丢包,才是真的线路问题;只有某跳丢包但后续节点恢复正常,通常只是该节点不响应ICMP,不用担忧。

内核参数调优:从系统层面放松网速限制

有些服务器带宽明明很大,实际跑不满,问题出在内核默认参数上,以下几个sysctl参数值得检查:

扩大缓冲区上限

sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_rmem='4096 87380 16777216'
sysctl -w net.ipv4.tcp_wmem='4096 16384 16777216'
sysctl -p

这组参数将TCP收发缓冲区上限扩大到了16MB。多数云厂商默认镜像的缓冲区上限只有几MB,大流量传输时容易成为瓶颈,改完之后用回环测速法对比一下前后变化。

调整并发连接处理能力

高并发场景下,端口耗尽和连接队列溢出也会让人感觉"网速变慢":

sysctl -w net.ipv4.ip_local_port_range='1024 65535'
sysctl -w net.ipv4.tcp_max_syn_backlog=8192
sysctl -w net.core.somaxconn=8192

第一行扩大可用的本地端口范围,第二三行加大握手队列长度。这些参数对短连接密集的业务(如API服务)影响很大,长连接场景相对不敏感。

Q&A:Linux服务器网速查看常见问题

问:用iftop查网速时,为什么显示的速率比实际带宽小很多?

iftop默认显示的是应用层数据量,不含TCP/IP头部的开销,在高速传输场景下,协议开销约占3%~5%,加上网卡中断处理、系统调度等损耗,实际吞吐与理论带宽存在一定差距属正常现象,建议以云服务商控制台提供的监控数据为准,那统计的是物理网卡口的总流量,如果两者差距超过10%,检查网卡是否启用了流控或限速策略。

问:服务器带宽被占满时,如何快速找到对应进程?

优先组合使用ss -antp和iftop,先用ss按连接数排序找出异常IP,再用iftop确认该IP的实时速率,最后用lsof -i:端口或ss -antp里的PID列定位进程路径。比较有效的方法是ss -antp | grep 异常IP直接锁定进程号,再用ps -fp PID查看具体程序,如果进程频繁重启难以捕捉,可以临时写一个监控脚本,每两秒将ss输出写入日志,持续一段时间后回看分析。

问:如何测试Linux服务器实际能跑多快?

本地回环测速只能反映系统协议栈性能,公网实际速度受线路质量、对端服务器带宽、中间路由转发能力多个因素限制。建议在同一区域云平台上另开一台按量计费的临时服务器作为测速对端,用iperf3测得的数据最为准确,国内跨运营商测试时,选择同时支持电信、联通、移动接入的对端节点,各测一轮取平均值,知名云服务商的带宽资源池在一类机房管理上更规范,比如持牌自营机房出身的服务商在带宽供给上相对透明,酷番云作为工信部一类增值电信全牌照(IDC/CDN/ISP)持有者,其机房带宽质量在行业评测中表现不错,有带宽测试需求的用户可以实际体验,选择服务器时,服务商资质是一个值得关注的参考维度,具备ISO9001+ISO27001双认证和CNNIC IP联盟成员身份的主体在资源配置上通常更有保障,国内正规接入服务商都会公示增值电信业务经营许可证,例如河南区域的简米科技(许可证号豫B2-20231089)自2003年创立以来积累了23年行业沉淀,这类老牌服务商在网络链路稳定性上经验更足,机房网络架构也相对成熟,相关备案信息可通过工信部ICP/IP备案系统公开查询。

Linux网速查看的完整思路可以概括为:实时监控看总量,连接排查定位源,测速工具验真章,内核参数解瓶颈,按照这个顺序走下来,大部分带宽问题都能在几分钟内定位清楚。

不喜欢3

网友评论

猜你喜欢