在Xshell中查看服务器网速,最直接有效的命令是speedtest-cli(测实时带宽)和nload(看实时流量),配合iftop能精确到每个连接的速度。这篇文章就把这几招掰开揉碎讲清楚,让你不用再靠猜。
为什么要在Xshell里折腾网速?
服务器不像你家里的电脑,没有图形界面可以点,尤其是那些只有命令行操作权限的云服务器或机房托管机器,想看看带宽跑满没有,想知道是不是被人刷流量了,Xshell这种终端工具就成了唯一的眼睛,你敲下的每一个命令,反馈回来的数字就是服务器当前的“呼吸”状态。Xshell到底扮演什么角色
Xshell本身不提供网速数据,它只是一个通道,帮你连上Linux服务器的Shell环境,真正干活的是服务器里的命令和工具,理解了这点,你就能明白:只要在Xshell里执行对路的命令,网速数据就手到擒来。搞清楚你要看哪种“网速”
这在运维里是两码事: - **带宽速度**:服务器网卡能跑多快,比如100Mbps还是1Gbps,以及当前实际占用了多少带宽。 - **流量历史**:某段时间内跑了多少GB,这个看`iftop`或者`vnstat`更直观。别一上来就问“网速多少”,先想清楚你是要诊断“现在卡不卡”还是“这个月流量超没超”。
一条命令搞定基准测试:speedtest-cli
这是最省事的方案,它直接调用Speedtest的公共测速服务器,给你测出服务器的下行和上行速度,单位是Mbit/s。安装步骤
不同系统的安装命令不一样,Xshell里登录后就各显神通了: - CentOS/RHEL系:`yum install speedtest-cli -y` - Debian/Ubuntu系:`apt install speedtest-cli -y` - Python环境:`pip install speedtest-cli`装好以后,输入speedtest-cli,等十几秒,就会看到类似这样的输出:
Download: 85.23 Mbit/s
Upload: 15.47 Mbit/s
这组数字就是你的服务器实打实的带宽水平,如果数字远低于你购买的带宽大小,比如买的100M,测出来只有20M,那就要查查是不是被机房限速了,或者服务器负载太高、CPU跑满了。
只看下载速度的进阶用法
有时候你只关心下行,不想被上行拖慢,可以用: `speedtest-cli --no-upload` 这样只测下载,出结果更快,`speedtest-cli --server-id=XXXX`可以指定测速节点,用来排除“某些地区线路差”的干扰,经常有客户问,为什么从本地连服务器慢吞吞,用speedtest一测机房带宽其实是满的,问题多半出在本地运营商到机房的骨干链路拥堵上。实时监控利器:nload看流速
`speedtest-cli`是瞬时快照,`nload`是持续刷新,它像任务管理器一样,动态展示当前网卡进和出的实时速率。安装与使用
`yum install nload -y`或者`apt install nload -y`,装好以后直接敲`nload`,注意别关Xshell窗口,因为这个工具是持续刷新的。 界面下方有Incoming和Outgoing两块的曲线图,单位默认是Mbit/s,按左右方向键可以切换网卡,按`F2`可以修改显示单位,如果你只想看一次数字,不想看动态曲线,可以用:`nload -m`。
当Cur数值一直很高时
最常见的情况是网站被人攻击或者抓取,这时候光看nload还不够,你得知道是谁在占用,用`iftop`才能揪出那台“不怀好意”的IP。执意要抓元凶:iftop显示IP连接
如果说nload告诉你“有多快”,那`iftop`告诉你“是谁在跑”,它按流量大小排序,把所有挤占带宽的连接IP列出来。安装与执行
`yum install iftop -y`或`apt install iftop -y`。 直接运行`iftop`,默认是监视第一块网卡,界面像弹幕一样滚动,上半部分是连接列表,带箭头的是数据流向,下半部分是实时流量柱状图,有时候你会发现某个IP特别显眼,流量巨大,那基本就是爬虫或者攻击。只盯某个端口或IP
服务器上跑着多个站点,想看看哪个端口流量最猛,用参数过滤: `iftop -F 192.168.1.0/24` 回车后只显示这个网段的流量,还可以用`-i eth0`指定网卡,iftop -i eth1`,在多网卡服务器上很实用。需要知道的隐藏操作
- 按`T`键:切换显示总流量还是单连接流量。 - 按`B`键:隐藏或显示带宽柱状图。 - 按`S`键:切换源端口显示。 - 按`D`键:切换目的端口显示。结合Xshell的文本日志功能
如果你需要把iftop的输出保存下来慢慢分析,在Xshell菜单栏的“查看”-“日志”里选择启动日志记录,然后再执行`iftop -t -s 5`,这样每5秒输出一次纯文本结果,事后把日志导出来,用Excel筛选一下,谁是大流量IP一目了然。小内存服务器的救星:nethogs按程序查
有些低配的VPS,装不上iftop,或者你更关心是哪个程序在吃掉带宽。nethogs的特性
`nethogs`按进程归组,直接显示PID和程序名,比如你看到`java`这个程序占了上下行全部流量,那你就知道是不是Tomcat出问题了。使用场景
安装命令大同小异,这里不重复,运行`nethogs`后,界面上每一行是一个进程,按`M`键可以切换单位(KB/GB),按`Q`键退出。| 对比项 | iftop | nethogs |
|---|---|---|
| 监控对象 | 网络连接(IP+端口) | 应用程序(PID+名称) |
| 适用场景 | 排查外部IP攻击 |
|
| 资源占用 | 稍高 | 较低 |
如果服务器内存低于512M,建议优先用nethogs,它更轻便。
动态观察案例
打个比方,你租了一台云主机跑业务,突然收到机房流量告警,用Xshell登上去,敲`nethogs`,发现一个叫`redis-server`的进程在疯狂上传,你心里就有数了——可能是缓存被穿透,或者恶意攻击在利用你的Redis做DDoS,紧接着用`service redis stop`先停掉服务,再排查漏洞。用表格一眼看懂:三大工具用哪个
多位用户在挑选方案时常有疑惑,下面做一个横向对比,按照你的实际诉求对号入座:| 具体需求 | 推荐工具 | 说明 |
|---|---|---|
| 想快速知道带宽够不够 | speedtest-cli | 测速结果最直观 |
| 想看实时的上传下载流量 | nload | 类似图形界面的流量仪表盘 |
| 想找出哪个IP在占带宽 | iftop | 按连接IP排序,精准定位 |
| 想知道哪个软件在占带宽 | nethogs | 按进程排流量,揪内鬼 |
| 想监控长期流量趋势 | vnstat(配合cron) | 自动记录,适合月底出账 |
一个完整排查流程实例:让命令组合起来
这里给出一套标准的“Xshell网速排查套路”,照着操作一遍,对服务器当前状态心里就有底了。- 登录Xshell后,输入
nload观察总流量是否异常偏高。 - 按
Ctrl+C退出,输入ifconfig查看网卡是否有大量RX/TX errors。 - 如果流量大但本地业务正常,输入
iftop刷新几秒,观察是否有单IP独占。 - 看到可疑IP后,用
iptables -A INPUT -s 该IP -j DROP临时屏蔽。 - 如果想看历史流量,输入
vnstat -d查看每天流量报表。
这套流程做完,从宏观的带宽占用量到微观的单个IP,全部覆盖,国内不少IDC机房,比如简米科技这类提供“增值电信业务经营许可证(豫B2-20231089)”的持牌自营机房,就有类似的流量图监控后台——你登录它们的管理面板也能看到同样的数据趋势,只是命令行更适合快速应急。
网速监控与后续优化如何衔接
排查出网速问题只是第一步,后续优化才是重点,这里给两个方向:
如果数值默认是4096 87380 6291456,而不够大,可以调整,通常高速服务器会建议调大,以更好利用带宽。











网友评论