当前位置: 首页 > news >正文

【netstat和ss】Windows和Linux下的,网络连接排查简单案例

网络连接排查利器:netstat与ss命令详解

初识netstat:Windows下的网络连接查看工具

需要查看本机的网络连接情况时,Windows系统提供了一个非常实用的命令:netstat。和findstr组合形成一个有用的组合命令:

netstat -ano | findstr 50052

让我们分解这个命令:

  • netstat:网络状态查看工具
  • -a:显示所有连接和监听端口
  • -n:以数字形式显示地址和端口号(不解析主机名和服务名)
  • -o:显示拥有每个连接的进程ID
  • | findstr 50052:通过管道将结果传递给findstr,筛选包含"50052"的行

这个命令的作用是查找所有使用50052端口的网络连接,并显示相关进程ID。在实际工作中,这非常有用,比如:

  1. 当你启动一个服务但发现端口被占用时
  2. 当你想确认某个服务是否正常监听指定端口时
  3. 当排查网络连接问题时

结果解读示例:

TCP    0.0.0.0:50052          0.0.0.0:0              LISTENING       1234
TCP    192.168.1.100:50052    203.0.113.45:443       ESTABLISHED     5678
  • 第一行表示本地正在监听50052端口,进程ID是1234
  • 第二行表示本地通过50052端口与203.0.113.45的443端口建立了连接,进程ID是5678

Linux中的对应工具:ss命令

在Linux系统中,传统的netstat命令已被更强大的ss(Socket Statistics)命令取代。实现相同功能的命令是:

ss -tulnp | grep 50052

参数解释:

  • -t:显示TCP连接
  • -u:显示UDP连接
  • -l:显示监听状态的连接
  • -n:不解析服务名称
  • -p:显示进程信息
  • | grep 50052:筛选包含50052的行

进阶用法:查看特定协议的连接

# 只查看TCP连接
ss -tlnp | grep 50052

# 只查看UDP连接
ss -ulnp | grep 50052

实际工作案例分享

案例1:端口冲突排查

场景:在Windows服务器上启动一个Java应用,报错"Port 50052 already in use"。

解决步骤

  1. 运行命令:
    netstat -ano | findstr 50052
    
  2. 发现50052端口被进程ID为6789的进程占用
  3. 打开任务管理器,查看PID为6789的进程,发现是之前未正常关闭的同类应用
  4. 结束该进程后,成功启动新应用

案例2:Linux服务连接验证

场景:在Linux服务器部署了gRPC服务,配置监听50052端口,但客户端无法连接。

排查过程

  1. 首先检查服务是否监听正确端口:
    ss -tlnp | grep 50052
    
    如果没有输出,说明服务未成功启动或配置错误
  2. 检查防火墙设置:
    sudo iptables -L -n | grep 50052
    
  3. 发现防火墙阻止了该端口,添加规则后问题解决

学习建议与进阶技巧

  1. 常用组合

    • Windows: netstat -ano(查看所有连接)
    • Linux: ss -tulnp(查看所有监听端口)
  2. 进程查找

    • Windows: 在任务管理器中查看PID对应的进程
    • Linux: ps -aux | grep <PID>lsof -i :50052
  3. 定时监控

    watch -n 1 "ss -tulnp | grep 50052"
    

    每1秒刷新一次50052端口的连接状态

  4. 网络连接状态理解

    • LISTENING/ESTABLISHED/TIME_WAIT等状态的含义
  5. 安全应用

    • 定期检查异常连接,防范恶意软件
    • 了解正常服务的端口使用情况,便于快速识别异常

https://github.com/0voice

相关文章:

  • 【前端面试题】计算机网络相关
  • ROS2 部署大语言模型节点
  • 【AVRCP】深度解析 AVRCP 定时器机制:从 TRCP/TMTC/TMTP 看蓝牙遥控的实时性保障
  • HAL_TIM_IC_CaptureCallback 函数
  • 蓝桥杯1463:货物摆放问题详解——数学思维与代码优化
  • 【PICO】开发环境配置准备
  • 小爱控制OK影视搜索视频-HomeAssistant详细自动化流程
  • 车载通信方案为何选择CAN/CANFD?
  • 聚水潭数据集成到MySQL的最佳实践分享
  • docker desktop拉取镜像出问题
  • Isaac Sim与Isaac Lab初使用
  • 嵌入式单片机程序的映像文件解读
  • Windows下VSCode的安装
  • 【C++项目实战】:基于正倒排索引的Boost搜索引擎(1)
  • Codeforces Round 1009 (Div. 3) C(位掩码)
  • 图解AUTOSAR_SWS_IOHardwareAbstraction
  • C++可变参数
  • 【Python】pillow库学习笔记3-Image.mode
  • canvas学习:如何绘制带孔洞的多边形
  • 详细存储与相关接口协议?
  • 做网站卖什么发财/北京互联网公司
  • 做美容有哪些网站/网络优化工程师工作内容
  • 青岛企业网站模板建站/太原关键词优化软件
  • 网站模板和源码区别/推广代理登录页面
  • 做垂直行业网站利润分析/2345手机浏览器
  • 国外哪些网站做产品推广比较好/免费引流在线推广