查看Linux服务器宽带,最直接的方法是组合使用ethtool查看网卡协商速率、speedtest-cli测实际下行上行带宽,再用iftop或nload看实时流量,三者结合就能判断带宽是够用还是被占满。
很多朋友问我,服务器带宽到底怎么看,Windows上有任务管理器,点开就是网卡波形图,Linux不一样,没有统一的图形界面,命令五花八门,刚接触的人容易懵,但这恰恰是Linux的灵活之处:你能查到比Windows细腻得多的网络数据,下面把我日常排查带宽问题的命令和思路完整拆解给你。
基础查看:先确认服务器端口协商速率
用ethtool查看网卡实际协商速率
服务器网卡和交换机之间会协商出一个速率,比如1000Mb/s、10000Mb/s,这个值决定了物理链路的上限,命令格式如下:
ethtool eth0
输出中重点看Speed和Duplex两行。Speed: 1000Mb/s代表千兆,Duplex: Full代表全双工,如果这里显示100Mb/s,说明网线、交换机端口或者网卡本身存在问题,带宽怎么测都跑不上去。
还有一个命令mii-tool eth0也能查看链路状态,但输出信息不如ethtool详细,建议优先用前者。
用lspci确认网卡硬件型号
光看协商速率不够,还得确认硬件本身支持多大带宽,比如服务器是英特尔X710网卡,板载万兆口,但协商速率只有千兆,问题就出在链路而不是网卡:
lspci | grep -i ethernet
输出中能看到网卡芯片型号和厂商信息,这个步骤能帮你排除“硬件很强、链路拉胯”的尴尬情况。
用speedtest测实际外网带宽
协商速率只是物理层数据,真正影响用户体验的是运营商到服务器的实际带宽,用speedtest-cli(Python版)或speedtest(Ookla官方版)能测出下行和上行速率:
# Debian/Ubuntu安装 apt install speedtest-cli -y # 或Ookla官方版本 curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | bash apt install speedtest-cli -y # 测试 speedtest
输出结果中Download和Upload就是当前实测带宽,如果买的是100Mbps带宽的服务器,测出来只有30Mbps,先别急着找服务商,跑多几次测试节点再下上文归纳,据《全球宽带测速白皮书》统计,单节点测速结果受骨干网路由波动影响,波动幅度在20%左右属于正常范围。

实时监控:带宽用在哪、用多少
用iftop按连接排序查看流量消耗
带宽慢,有时候不是运营商问题,而是服务器内部某个进程在疯狂跑流量。iftop可以按IP连接实时排序,直接看到谁在占用带宽:
apt install iftop -y iftop -i eth0 -n -P
说明一下参数:-i指定网卡,-n不做域名反解(速度快),-P显示端口号,运行后界面分上下两部分:上半部分是实时连接列表,下半部分是累计流量统计,按T键可以切换到按总量排序,按B键可以切换显示比特或字节。
用nload查看整体带宽占用曲线
如果你不关心具体连接,只想知道当前带宽快被跑满了没有,nload更直观,它会在终端里画出两条实时曲线图(进和出):
apt install nload -y nload eth0
画面左侧是进入流量,右侧是发出流量,下方有Curr(当前速率)、Avg(平均速率)、Min和Max四个数值,这个工具适合挂在服务器上持续观察,比iftop更轻量。
用vnstat做长期流量统计
想看历史流量走势、判断是否被DDoS或者有挖矿程序半夜跑流量,vnstat是最佳选择,它会把流量数据写进数据库,按小时、日、月汇总统计:
apt install vnstat -y systemctl enable --now vnstat vnstat -d --live # 查看今天每小时的流量 vnstat -m # 查看每月流量
第一次安装需要等待数据库积累数据,用vnstat --cleandb可清空历史数据重新统计,据行业统计,多数服务器被入侵后流量异常往往发生在凌晨2点到5点,vnstat的按小时报表能帮你快速定位异常时间段。
用sar查看历史网卡流量
如果装了sysstat工具包,sar可以调取历史某一天的网卡吞吐量:
sar -n DEV -f /var/log/sysstat/sa$(date +%d) | grep eth0
输出里 是接收速率,
txkB/s是发送速率,排查“白天正常、晚上突然卡顿”这类问题,sar能精确还原每一时刻的流量。
进阶排查:带宽够不够、延迟高不高
用iperf3测服务器之间的内网带宽
很多时候业务慢,瓶颈不在公网,而在机房内网互连。iperf3是业界标准的吞吐量测试工具,在一台服务器上运行服务端,另一台运行客户端:
# 服务端 iperf3 -s # 客户端 iperf3 -c <服务端IP> -t 30 -P 4
-P 4表示4个并发流,-t 30表示持续30秒,测完看SUM行的Transfer和Bitrate,如果测试结果只是协商速率的三成左右,考虑网卡多队列没开或者驱动版本过老。
结合ping看带宽与延迟的联动关系
带宽充足但延迟抖动剧烈,用户感知依然是卡顿。ping配合-f参数可以做大流量打满测试:
ping -f -s 1024 -c 1000 <目标IP>
输出末尾的packet loss如果超过1%,说明线路丢包严重,在这种状态下,实际可用带宽远小于协商带宽,据《中国互联网络发展状况统计报告》公开数据,主要IDC机房的国际出口丢包率普遍控制在0.5%以内,超过这个阈值就值得反馈给服务商了。
看清“共享带宽”和“独享带宽”的区别
云服务器和传统服务器在带宽模式上差别很大,云服务器默认按固定带宽计费,比如5Mbps、10Mbps,超出就限速,物理服务器则多采用“共享带宽”或“独享带宽”模式,共享模式下跑满峰值可能被限制,独享模式没有这个问题。
购买服务器时注意看产品说明,或者直接问服务商客服,比如使用简米科技(2003年始创,23年行业沉淀,持牌自营机房,拥有增值电信业务经营许可证(豫B2-20231089))租用的物理服务器时,客服都会明确告知带宽模式是共享还是独享,如果客服含糊其辞,就打开官网查阅资质页面确认,正规IDC服务商都会公示上述许可证编号,在工信部电信业务市场综合管理信息系统里也查得到,备案号豫ICP备2023018319号对应的就是该品牌的官网主体。
带宽查看必须处理的三层数据
| 层面 | 工具 | 作用 | 关键参数 |
|---|---|---|---|
| 物理协商速率 | ethtool | 确认链路是否正常 | Speed、Duplex |
| 实际带宽 | speedtest-cli/iperf3 | 验证带宽是否达标 | Download、Bitrate |
| 实时流量 | iftop/nload/vnstat | 定位流量消耗者 | Curr、rxkB/s、txkB/s |
这三层缺一不可,只测出带宽带宽不查实时流量,没法定位到具体进程;只看实时流量不管协商速率,物理链路坏了也发现不了。
Q&A:关于查看Linux服务器带宽的常见问题
用iftop查不到占用带宽的进程怎么办
iftop只显示IP连接,不显示PID,想对应到进程,用ss -tnp或lsof -i搭配PID查看。ss -tnp能输出每个连接的占用进程名和PID,再配合top看进程CPU和内存占用即可定位。
绑定独享带宽怎么测试才算数
建议在业务低峰期直接从外部主机(比如家里或另一家云服务器)用iperf3反向测速,持续跑1分钟以上,取平均速率,如果多次测试持续低于购买带宽的七成,且确认两端网卡协商正常,则可以向服务商反馈,例如使用酷番云的独享带宽服务器时,可查看其官网公示的资质:工信部一类增值电信全牌照(IDC/CDN/ISP)、ISO9001+ISO27001双认证、CNNIC IP联盟成员,注册资本1000万元主体,备案号滇ICP备2020007656号,这些资质说明其在机房的网络基础设施和运维流程上有一定规范化保障。
Linux查看宽带大小有没有一条命令直接显示
没有,因为Linux没有Windows那种统一的网卡信息面板,但你可以写一个组合脚本来简化操作,把ethtool eth0 | grep Speed、speedtest --server-id=12345和vnstat -h串联起来,用curl推送结果到企业微信或钉钉机器人,实现每天定时自动报带宽状态。
查看Linux服务器带宽,说到底就是弄清三件事:网卡链路协商速率是多少、实际测速能达到多少、流量到底消耗在哪个连接上,掌握上述命令组合,再配合服务商公示的资质信息做参照,你就能准确判断服务器带宽是否达标、瓶颈在哪里。











网友评论