云主机如何查看网络状态?
- 来源:纵横数据
- 作者:中横科技
- 时间:2026/7/28 14:15:08
- 类别:新闻资讯
云主机用着用着,用户突然反馈“网站打不开”、“卡得不行”、“图片加载一半就断了”——这些状况,十有八九和网络状态有关。CPU再快、内存再大,如果网络这条“水管”出了问题,数据送不出去也进不来,业务照样瘫痪。所以学会查看云主机的网络状态,是运维排查中避不开的一个关键技能。
从最基础的连通性测试开始
遇到网络问题,第一个要用到的工具一定是ping。在本地电脑上打开命令行,输入ping 你的云主机IP,看看能不能通。如果返回的是“请求超时”或“目标不可达”,说明网络链路根本就没建立起来。这时候要检查两件事:一是云主机的防火墙或安全组策略是否允许ICMP协议通过,很多云服务商默认只开放必要的端口,ping是被禁掉的;二是云主机是否真的在正常运行,有时候系统卡死也会导致无法响应。
ping不光能测通断,还能看延迟。连续多ping几次,观察往返时间是否稳定。如果延迟忽高忽低,或者出现大量丢包,说明网络线路本身不太稳定。这种情况在跨运营商访问时比较常见,比如电信用户访问联通机房的云主机,中间经过的跳数多,网络质量就没那么有保障。
如果ping不通但业务端口又能访问,那大概率是安全组把ICMP给屏蔽了。这时候可以用telnet或nc来测试特定端口是否开放。比如执行telnet 你的IP 80,如果返回“Connected”就说明80端口通的,可以正常提供HTTP服务。
查看当前系统的网络连接状态
登录到云主机内部之后,netstat命令是查看网络状态的第一选择。输入netstat -anpt,系统会列出所有TCP连接及其状态——LISTEN表示正在监听端口,ESTABLISHED表示已经建立的连接,TIME_WAIT表示等待关闭的连接。通过观察这些状态,能判断出很多问题。
比如某个时段网站访问量突然暴增,执行netstat一看,ESTABLISHED连接数有好几千,远超过平时的几百。这说明业务确实在承受高并发,但如果连接数持续居高不下甚至继续攀升,而业务量并没有相应增长,那就要怀疑是不是遭受了CC攻击——大量恶意连接占着不释放,消耗系统资源。
netstat输出内容有时候太多了,可以配合grep命令筛选。比如netstat -anpt | grep :80 | grep ESTABLISHED | wc -l可以统计出当前80端口上有多少活跃连接。这个数字如果异常大,就是一个很明显的警报信号。
还有一个更现代的工具叫ss,它的执行效率比netstat更高,尤其在连接数非常多的时候。ss -tunap命令的效果和netstat类似,但速度更快、显示的信息也更丰富。在高并发的生产环境上,ss往往是更推荐的选择。
实时查看网络流量和带宽使用情况
知道有哪些连接还远远不够,有时候你更想知道“现在到底有多少流量在跑”。这时候要用到iftop命令。安装iftop之后,直接在终端输入iftop,屏幕上会出现一个动态的流量排行榜,实时显示每个IP地址或连接的收发速度,单位是bps。
iftop的界面分成上下两半,上半部分是按连接展示的实时流量,下半部分是汇总信息。你可以很直观地看到是哪个远程IP在大量消耗带宽。如果发现一个陌生IP持续占用大量下行带宽,那可能是有人在恶意下载你的网站资源;如果上行带宽跑满,说明有大量数据正在被传输出去。
如果不关心具体是哪个IP,只想看整体网卡流量,可以用ip -s link查看网卡收发的总数据包数和总字节数。或者用watch -n 1 cat /proc/net/dev,每秒刷新一次各网卡的流量统计。这种方式适合快速确认“带宽是不是跑满了”。
还有一种场景是查看每个进程的网络流量。nethogs这个工具就专门干这个事。执行nethogs eth0之后,会列出每个进程当前占用的发送和接收带宽,并且按占用大小排序。你可以精确地知道是nginx在疯狂发数据,还是MySQL在同步日志,或者是某个后门程序在偷偷往外传数据。
路由追踪和链路质量分析
当网络出现区域性访问缓慢的时候,光看自己云主机的状态是不够的,还要看从用户端到云主机之间的中间链路是否通畅。traceroute命令就是用来干这个的。在Linux下执行traceroute 目标IP,会列出数据包从本机出发到达目标IP所经过的每一个路由节点,以及每一跳的延迟时间。
通过观察这些跳转记录,你可以发现延迟到底是出在哪一段。比如前几跳延迟正常,到了某一个运营商的节点之后延迟突然飙升到几百毫秒,那就说明问题出在那个中间节点上——而那个节点很可能不在你的可控范围之内,需要联系运营商或云服务商协助处理。
Windows系统下对应的命令是tracert,用法和traceroute类似。
通过云服务商控制台查看网络监控数据
除了登录云主机内部用命令行工具查看之外,云服务商的控制台通常会提供更宏观的网络监控视图。在云主机实例的监控面板里,一般可以看到“出入带宽”、“出入包量”、“丢包率”等指标的时间曲线图。
这些数据的价值在于它们是有历史记录的。命令行工具只能看到当前瞬时的状态,而控制台的监控图表能展示过去几小时甚至几天的网络趋势。你可以很直观地看到每天哪个时段带宽峰值最高,什么时候网络流量有明显的异常突增,这对于容量规划和异常发现都很有帮助。
有些云平台还支持网络拓扑可视化和流量分析功能,可以帮你梳理出云主机和外部网络之间的整体交互情况。
实际案例:带宽跑满导致业务中断
有一个做在线教育的客户,每到晚上七点到九点这个时间段,视频播放就变得非常卡顿。用iftop查看实时流量,发现出口带宽几乎被占满,持续稳定在峰值。再按进程排序,看到主要是nginx进程在大量发送数据。进一步排查日志,发现是盗链问题——其他网站直接把课程视频的地址嵌入到了自己的页面里,导致大量非授权用户在高峰期同时拉取视频流。
解决方案分两步走:先在nginx层面配置了referer防盗链规则,拦截了大部分非法请求;然后在云服务商控制台设置了带宽告警,当带宽使用率连续五分钟超过80%时自动发送告警通知。调整之后,晚高峰的带宽使用率从接近100%降到了60%左右,卡顿问题也就随之解决了。
总结
查看云主机的网络状态,有一套清晰的工具链条。ping解决“通不通”的问题,netstat和ss解决“有哪些连接”的问题,iftop解决“谁在占用带宽”的问题,nethogs解决“哪个进程在跑流量”的问题,traceroute解决“链路质量好不好”的问题。再加上云服务商控制台的监控面板提供的历史趋势和告警能力,基本上就能把云主机的网络状态看得明明白白。
工具虽然多,但遇到问题时顺着这条链路一个一个排查,总能找到症结所在。网络问题通常不会自己消失,早发现、早定位、早处理,才能把对用户的影响降到最小。




使用微信扫一扫
扫一扫关注官方微信 

