Linux如何查看当前系统的网络连接状态详情?

在Linux系统中,查看网络连接状态是系统管理和故障排查的核心操作之一,通过分析连接信息可以识别端口占用、异常连接、网络性能等问题,Linux提供了多种命令和工具来查看连接,涵盖TCP、UDP、Unix域套接字等不同类型,本文将详细介绍这些方法及其应用场景。

如何查看linux的连接

使用netstat命令查看连接

netstat是传统的网络连接查看工具,尽管在新版Linux中逐渐被ss替代,但仍有广泛使用,它支持显示TCP、UDP、RAW等协议的连接状态,以及监听端口、进程ID等信息。

基本用法

  1. 查看所有连接

    netstat -an

    参数说明:-a显示所有连接(包括监听和非监听),-n以数字形式显示地址和端口(不解析域名,提升速度),输出结果中,Local Address为本地地址和端口,Foreign Address为远程地址和端口,State为连接状态(如LISTENESTABLISHEDTIME_WAIT等)。

  2. 过滤TCP或UDP连接

    netstat -tn  # 只显示TCP连接(数字形式)
    netstat -un  # 只显示UDP连接
  3. 显示监听端口

    netstat -lntp  # 显示所有监听的TCP端口,并显示进程ID和名称

    示例输出:

    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd
    tcp6       0      0 :::80                   :::*                    LISTEN      5678/nginx
  4. 显示进程对应的连接

    netstat -pntp | grep nginx  # 查找nginx相关的TCP连接

使用ss命令查看连接(推荐)

ssiproute2工具包的一部分,性能优于netstat,尤其在连接数量较多时响应更快,已成为现代Linux系统的首选工具。

基本用法

  1. 查看所有TCP连接

    ss -t

    参数说明:-t显示TCP连接,-u显示UDP连接,-w显示原始套接字,-l只显示监听端口,-n数字形式,-p显示进程信息。

  2. 查看所有监听端口

    如何查看linux的连接

    ss -tulpn

    示例输出:

    State      Recv-Q Send-Q Local Address:Port               Peer Address:Port
    LISTEN     0      128          *:22                       *:*    users:(("sshd",pid=1234,fd=3))
    LISTEN     0      511        :::80                      :::*    users:(("nginx",pid=5678,fd=7))
  3. 显示TCP状态统计

    ss -s

    输出会显示TCP总连接数、各状态(ESTABLISHEDTIME_WAITCLOSE_WAIT等)的连接数,帮助快速判断网络状态。

  4. 过滤特定端口的连接

    ss -tulpn | grep ':80'  # 查看80端口的监听情况
    ss -tp 'state established'  # 查看所有已建立的TCP连接

使用lsof命令查看进程连接

lsof(list open files)用于列出进程打开的文件,在Linux中,网络连接也被视为文件(通过文件描述符管理),因此可通过lsof查看进程的网络连接情况。

基本用法

  1. 查看指定端口的进程

    lsof -i :80  # 查看80端口被哪个进程占用

    输出包含进程ID、用户、文件描述符、类型(IPv4/IPv6)、协议等信息。

  2. 查看指定进程的所有连接

    lsof -p 1234  # 查看PID为1234的进程打开的所有文件(包括网络连接)
    lsof -i -p 1234  # 只查看该进程的网络连接
  3. 查看所有TCP连接

    lsof -iTCP -sTCP:LISTEN  # 查看所有监听的TCP连接

通过/proc文件系统查看连接

Linux内核将网络连接信息暴露在/proc文件系统中,可直接读取文件获取原始数据,适合脚本处理或深度分析。

常用文件

  1. TCP连接

    如何查看linux的连接

    cat /proc/net/tcp     # IPv4 TCP连接
    cat /proc/net/tcp6    # IPv6 TCP连接

    文件格式为十六进制,例如本地地址0A000001:0016表示IPv地址0.0.1:22(需转换),状态码01表示ESTABLISHED0A表示LISTEN

  2. UDP连接

    cat /proc/net/udp     # IPv4 UDP连接
    cat /proc/net/udp6    # IPv6 UDP连接
  3. 原始套接字

    cat /proc/net/raw

实际应用场景

  1. 排查端口占用
    当端口无法绑定(如启动服务提示“Address already in use”)时,使用ss -tulpn | grep :端口号lsof -i :端口号找到占用进程,再通过kill -9 PID终止进程。

  2. 分析异常连接
    若服务器出现网络流量异常,可通过ss -s查看连接状态统计,若TIME_WAIT连接过多,可能需要调整内核参数(如net.ipv4.tcp_max_tw_buckets);若ESTABLISHED连接数突增,需检查是否有恶意连接或DDoS攻击。

  3. 监控服务连接
    对关键服务(如Nginx、MySQL)使用ss -tp | grep '服务名'监控其连接数,判断服务负载情况。

常用命令对比

命令 所属工具包 优点 缺点 适用场景
netstat net-tools 兼容性好,支持多种协议 性能较差,连接多时响应慢 旧系统或简单连接查看
ss iproute2 性能高,信息详细,支持过滤 参数较复杂 新系统,大规模连接监控
lsof lsof 可关联进程与文件描述符 需安装,信息较冗余 进程级连接排查
/proc 内核文件 原始数据,适合脚本处理 需手动解析十六进制格式 自动化运维或深度内核分析

相关问答FAQs

Q1:为什么netstat命令在系统中提示“未找到命令”?
A:netstat属于net-tools工具包,而新版Linux(如Ubuntu 20.04+、CentOS 8+)默认不再安装该包,可通过以下方式解决:

  • Ubuntu/Debian:sudo apt install net-tools
  • CentOS/RHEL:sudo yum install net-tools

Q2:如何查看某个进程(如PID=1234)的所有网络连接及其状态?
A:可通过以下命令实现:

  1. 使用ss命令:ss -tp 'pid = 1234'
  2. 使用lsof命令:lsof -i -p 1234
    输出会显示该进程的所有网络连接,包括本地地址、远程地址、协议和状态(如ESTABLISHEDLISTEN等)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/33342.html

(0)
酷番叔酷番叔
上一篇 2025年9月30日 20:10
下一篇 2025年9月30日 20:21

相关推荐

  • 如何在电脑上安装Linux系统?

    安装Linux系统是一个涉及准备、操作和配置的过程,需根据电脑硬件和使用需求选择合适方案,以下是详细步骤:安装前准备数据备份安装过程会涉及硬盘分区操作,可能导致数据丢失,需提前备份重要文件至移动硬盘、云盘或另一台电脑,尤其注意备份“文档”“图片”“下载”等用户目录及工作数据,硬件兼容性检查Linux对大多数硬件……

    2025年8月21日
    6300
  • 如何查看Linux系统的外网IP地址?

    在Linux系统中,查看外网IP地址是网络管理、服务器运维或日常使用中的常见需求,外网IP(公网IP)是由网络服务提供商(ISP)分配,用于在互联网中唯一标识设备的地址,区别于局域网内的内网IP(如192.168.x.x、10.x.x.x),本文将详细介绍几种在Linux系统中查看外网IP的实用方法,涵盖命令行……

    2025年9月15日
    13100
  • 如何用U盘安装Linux系统软件?操作步骤是怎样的?

    从零开始用U盘安装Linux系统是许多新手尝试开源世界的第一步,虽然看似复杂,但只要按步骤操作,整个过程并不困难,以下是详细的安装流程,涵盖准备工作、U盘启动制作、系统安装及后续配置,帮助你顺利完成Linux系统的部署,安装前的准备工作在开始安装前,需确保硬件和软件准备就绪,避免中途出现卡顿或错误,硬件准备U盘……

    2025年9月9日
    4400
  • Linux服务器如何查询内存使用情况及命令方法?

    在Linux服务器运维中,监控内存使用情况是确保系统稳定运行的关键环节,通过内存数据可以及时发现资源瓶颈、排查性能问题,Linux系统提供了多种命令和工具来查询内存信息,以下详细介绍常用方法及其使用场景,free命令:快速查看内存使用概览free是最基础的内存查看命令,通过-h(人类可读格式)或-m/-g(指定……

    2025年10月8日
    5800
  • 如何把平板刷成Linux系统?详细操作步骤与方法指南

    将平板刷入Linux系统可以赋予设备更强的定制性和开发潜力,但操作过程需谨慎,不同品牌型号的平板可能存在差异,以下以通用安卓平板(如支持解锁Bootloader的设备)为例,详细说明操作步骤及注意事项,前期准备工作确认设备兼容性查看平板是否支持Linux系统,可通过查阅开源社区(如XDA Developers……

    2025年9月16日
    5000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信