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

【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


http://www.kler.cn/a/600775.html

相关文章:

  • Unity射击游戏手榴弹笔记
  • 深度学习算法清单
  • 1.认识Excel
  • K8S遇到过的比较深刻的Pod问题
  • 【留一下记录】Vllm在Linux环境下的学习笔记
  • 青少年编程与数学 02-011 MySQL数据库应用 18课题、性能监控
  • 一个轻量级的 SQLite ORM 工具包
  • PP-PLL:基于概率传播的部分标签学习
  • 基于概率图模型的蛋白质功能预测
  • DeepSeek 发布DeepSeek-V3-0324 版本 前端与网页开发能力、推理与多任务能力提升
  • 春风拂处,杏韵流芳-中小企实战运营和营销工作室博客
  • 搜索旋转排序数组
  • LeetCode 2711:对角线上不同值的数量差解题思路与优化方法
  • DeepSeek 的组网方案介绍
  • 详解vector容器
  • WPF Binding转换器Converter
  • 浅尝AI编程工具Trae
  • 嵌入式八股文学习——基类构造与析构、成员初始化及继承特性详解
  • Zerotier虚拟局域网在树莓派的应用和Syncthing配合Zerotier实现端到端文件同步
  • linux命令行工具进阶