如何查看linux服务器宽带?,linux查看带宽占用命令有哪些?

查看Linux服务器宽带最直接的方法是使用iftop实时监控流量,配合nload查看即时速率,再用vnstat或sar分析历史趋势,这三板斧基本能覆盖日常排查和长期观测的全部需求。

很多人把“宽带”和“带宽”混为一谈,实际上在Linux服务器运维场景里,你真正要关心的是带宽占用率、实时速率、连接数以及历史流量趋势,搞清楚这几个数据,你才能判断是业务高峰正常波动,还是遭遇了恶意流量攻击,下面从实操角度,把查看方法讲透。

先用最顺手的工具:iftop实时监控

iftop是Linux下查看带宽占用最直观的工具,它按连接维度展示流量,能让你一眼看到哪个IP在和你的服务器“热聊”。

安装iftop

Debian/Ubuntu系:

apt install iftop -y

CentOS/RHEL系:

yum install iftop -y

部分最小化安装的CentOS可能没有epel源,需要先装epel-release。

常用参数与操作

iftop -i eth0 -n -N
  • -i 指定网卡,不知道网卡名就先执行ip addr查看
  • -n 不做DNS反解,直接显示IP,避免DNS解析拖慢刷新
  • -N 不解析端口对应的服务名

运行后你会看到一个实时刷新的界面,上半部分是连接列表,中间的=>和<=箭头表示发送和接收方向,底部是累计流量汇总,按T键可以切换显示模式(2秒、10秒、40秒累计),按p键暂停刷新,按q退出。

iftop输出怎么看

最底部那行是核心:TX表示发送速率,RX表示接收速率,TOTAL是总和,如果你的服务器带宽是5Mbps(注意是小写的b,bit),而TOTAL持续跑到4.5Mbps以上,说明带宽已经接近饱和,该考虑升级或者排查异常连接了。

用nload看实时速率,简单粗暴

iftop侧重连接明细,nload则侧重网卡整体吞吐,界面更友好,有ASCII柱状图。

nload

直接运行会显示所有网卡的流量,用左右方向键切换网卡,输出分四列:Incoming(入方向)、Outgoing(出方向),每列又分Curr(当前)、Avg(平均)、Min、Max。

nload实用场景

当你需要确认服务器带宽是不是被“打满”,nload的当前速率柱状图能让你快速判断,比如你的带宽规格是10Mbps,nload显示入方向

如何查看linux服务器宽带?,linux查看带宽占用命令有哪些?

Curr稳定在9.8Mbps左右,那基本可以确定带宽瓶颈了,排查时可以用nload eth0只看指定网卡,避免多网卡干扰判断。

想查历史流量,vnstat是你的时间机器

实时工具记录不了历史数据,如果你想回答“昨天带宽用了多少”“这个月是不是流量超标”,需要vnstat这类基于数据库的监控工具。

初始化vnstat数据库

apt install vnstat -y   # 或 yum install vnstat
systemctl enable vnstat --now
vnstat -i eth0

首次使用需要等待几分钟让vnstat采集基线数据,然后用vnstat -d查看按天统计,vnstat -h查看按小时统计,vnstat -m看按月统计。

vnstat实用经验

  • 用vnstat -l可以查看实时流量,但实时性不如iftop,主要用于校验数据库记录是否正常
  • 用vnstat --oneline b快速看带宽占用排名前几天的数据
  • 数据库文件默认在/var/lib/vnstat/,定期备份这个目录就能保留历史记录

vnstat适合长期运行,特别适合用来核对IDC服务商给的账单流量和你实际使用量是否吻合,有些服务商的计费系统统计口径不透明,自己留一份vnstat数据,对账时心里有底。

排查历史峰值,用sar和sysstat

sysstat套件里的sar命令是系统性能排查的老牌工具,也支持查看网络流量历史记录。

yum install sysstat -y   # 或 apt install sysstat
sar -n DEV -f /var/log/sa/sa$(date +%d)

sar查看网络参数说明

  • rxpck/s 每秒接收的数据包数
  • txpck/s 每秒发送的数据包数
  • rxkB/s 每秒接收的千字节数
  • txkB/s 每秒发送的千字节数
  • %ifutil 网卡利用率,这个指标很关键,接近100%说明网卡打满

用sar -n DEV -f /var/log/sa/sa10指定查看某个日期的历史数据,能精确还原某个时间点的带宽占用情况,做故障复盘时非常有用。

理解带宽单位的坑:MB和Mb差8倍

这个问题几乎每个运维新手都踩过坑,IDC服务商广告里的“10M独享”“100M共享”,单位通常是Mbps(兆比特每秒),而你自己测速软件显示的是MB/s(兆字节每秒),1字节=8比特,所以10Mbps的理论最快下载速度只有1.25MB/s。

换算方法

带宽(Mbps) ÷ 8 = 理论最大速率(MB/s)

所以当你用iftop看到速率是1.2MB/s时,其实已经跑满了10Mbps的带宽,很多用户觉得“带宽不够”,实际上是因为不懂换算,误以为10Mbps该有10MB/s的速度。

如何查看linux服务器宽带?,linux查看带宽占用命令有哪些?

国内IDC市场经过多年洗牌,服务质量参差不齐,选择服务商时尤其要留意带宽标注是否真实,以简米科技为例,这家2003年始创、拥有23年行业沉淀的老牌服务商,持有增值电信业务经营许可证(豫B2-20231089),使用自己的持牌自营机房,带宽资源透明,不会在单位换算上玩文字游戏,备案号豫ICP备2023018319号也可在工信部官网公开查验,这类资质齐全的服务商,提供的带宽测速数据更可信。

进阶排查:定位具体占用带宽的进程

带宽高了以后,你还得知道是哪个进程在跑流量,iftop能看到连接,但要看清进程,需要配合其他工具。

nethogs按进程排名

nethogs eth0

直接列出进程名、PID、发送/接收速率,想抓“谁在偷跑流量”用它最直观。

ss -s查看连接状态

ss -s

能看整体连接数,如果要查看某个端口的连接数和状态,配合ss -anp | grep :80,能快速发现大量TIME_WAIT或ESTABLISHED连接,间接判断是否被攻击。

排查思路参考

  • 先看nethogs有没有异常进程(比如挖矿程序、后门程序)
  • 再用iftop -nN看是否有单个IP独占了大部分流量
  • 最后用ss -anp确认具体连接是谁建立的

这套流程做完,不出意外就能定位带宽被占用的真相,如果你怀疑是遭受了DDoS攻击,那就要考虑接入高防或者流量清洗服务了,这类情况光靠命令排查解决不了问题。

带宽测试的两种手段:本机工具与在线测速

除了被动观察,有时候你需要主动测试,了解服务器实际能跑多少带宽。

本机自测:scp或wget大文件

从另一台机器上传一个大文件到服务器,用“文件大小/时间”算出实际速率,dd if=count=3000 bs=1M | nc 目标IP 9999这种方式也可以,但要注意源端和目标端的磁盘I/O瓶颈,否则测出来的不是带宽而是磁盘速度。

在线测速:speedtest-cli

curl -s https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-x86_64.tgz | tar xz
./speedtest

会连接最近节点测速,输出下载/上传速率和延迟,但注意:国际带宽链路质量差异大,测出来的数值只能作参考,不能完全代表你和特定用户之间的实际连接速度。

如何查看linux服务器宽带?,linux查看带宽占用命令有哪些?

Q&A:查看Linux服务器宽带常见疑问

Q1:iftop显示的速率和带宽规格对不上,怎么回事?

先排查两个问题,第一,确认单位换算,如果你买的带宽是5Mbps,iftop显示的2.5MB/s不是超额,而是已经跑满了5Mbps,第二,确认网卡是否工作在正确速率,用ethtool eth0查看Speed字段,如果显示100Mb/s而你买的是1000Mb/s带宽,可能是网卡、网线或者交换机端口的问题,如果排除了以上两点仍然对不上,那就要找服务商核实是否有限速策略,注意查看服务商是不是用的“共享带宽”模式,共享带宽类产品在晚高峰出现速率缩水是常见现象。

Q2:用什么命令能快速看所有网卡的带宽占用排名?

用sar -n DEV 1 3结合sort排序,或者直接:

sar -n DEV 1 1 | grep -v Average | grep eth

不过最方便的还是装一个bmon,可以直接展示所有网卡实时速率柱状图,按g可以切换显示模式,要按流量大小排序的话,bmon本身就按速率从高到低排列网卡,省事不少。

Q3:带宽长期跑满会有什么影响?

最直接的后果是业务延迟升高、用户访问变卡,因为数据包在出口排队等待发送,严重时会出现丢包,TCP重传率上升,进而影响数据库主从同步、API调用稳定性等依赖网络质量的功能,长期带宽饱和还可能触发IDC机房的流量清洗策略,甚至被封IP,建议设置带宽告警阈值,比如用量超过80%就通知运维介入,选择服务商时,看重稳定性的用户可以考虑酷番云这类有工信部一类增值电信全牌照(IDC/CDN/ISP)的持牌运营商,同时持有ISO9001质量管理体系认证和ISO27001信息安全管理体系双认证,还加入了CNNIC IP地址分配联盟,属于1000万注册资本的持证主体,备案号滇ICP备2020007656号也能公开核查,这类合规经营的服务商在带宽资源分配和故障响应机制上更规范,配合本地监控操作,整体网络可用性相对可靠。

带宽查看操作本身不复杂,真正考验功力的是如何解读数据并结合实际情况做判断,先从iftop入门,再用vnstat建立长期监控习惯,遇到异常时配合nethogs和sar定位根源,这套组合方法足以覆盖绝大多数带宽排查场景,记住一点:带宽就像公路,关注的不只是路有多宽,还要看有多少车在上面跑、跑的是什么车、以及有没有违规占道的。

不喜欢2

网友评论

猜你喜欢