Linux如何查端口状态?

在Linux系统中,查询端口状态是网络管理和系统运维中的常见操作,主要用于检查端口是否开放、监听状态、连接情况以及相关进程信息,掌握多种命令工具可以帮助用户高效诊断网络问题,以下是常用的Linux查询端口状态的命令及其详细使用方法。

linux查询端口状态命令
(图片来源网络,侵删)

netstat命令

netstat是一个传统的网络工具,用于显示网络连接、路由表、接口统计等信息,虽然在新版Linux中逐渐被ss替代,但仍有广泛使用。

基本语法

netstat [选项] [参数]

常用选项及示例

  • 查看所有监听端口

    netstat -tuln
    • -t:显示TCP端口
    • -u:显示UDP端口
    • -l:仅显示监听端口
    • -n:以数字形式显示地址和端口,避免DNS解析
  • 显示所有端口(包括监听和非监听)

    netstat -an
    • -a:显示所有连接
  • 显示进程ID和进程名

    linux查询端口状态命令
    (图片来源网络,侵删)
    netstat -tulnp
    • -p:显示进程ID和名称(需root权限)
  • 统计端口协议类型

    netstat -s

输出说明

输出表格包含以下列:

  • Proto:协议类型(TCP/UDP)
  • Local Address:本地IP和端口
  • Foreign Address:远程IP和端口
  • State:连接状态(如LISTENESTABLISHED
  • PID/Program name:进程ID和名称(使用-p时显示)

ss命令

ssnetstat的替代工具,速度更快,功能更强大,默认在大多数现代Linux发行版中可用。

基本语法

ss [选项] [过滤条件]

常用选项及示例

  • 查看所有监听端口

    ss -tuln

    选项与netstat类似,-t-u-l-n含义相同。

  • 显示TCP和UDP连接

    ss -t -a  # 显示所有TCP连接
    ss -u -a  # 显示所有UDP连接
  • 显示进程信息

    ss -tulnp
  • 显示socket统计摘要

    ss -s
  • 过滤特定端口

    ss -tuln 'sport = :22'  # 查询22端口

输出说明

输出表格包含以下列:

  • Netid:协议类型
  • State:连接状态
  • Recv-Q:接收队列
  • Send-Q:发送队列
  • Local Address:Port:本地地址和端口
  • Peer Address:Port:远程地址和端口
  • Process:进程信息

lsof命令

lsof(List Open Files)用于列出系统打开的文件,包括网络连接、设备文件等。

基本语法

lsof [选项] [文件/目录/端口]

常用选项及示例

  • 查看指定端口的占用情况

    lsof -i :8080  # 查询8080端口
    • -i:指定网络地址
  • 显示所有网络连接

    lsof -i
  • 显示UDP端口

    lsof -i UDP
  • 显示TCP端口

    lsof -i TCP

输出说明

输出表格包含以下列:

  • COMMAND:进程名
  • PID:进程ID
  • USER:进程所有者
  • FD:文件描述符
  • TYPE:文件类型(IPv4、IPv6)
  • DEVICE:设备号
  • SIZE/OFF:文件大小
  • NODE:索引节点
  • NAME:网络地址或端口

nmap命令

nmap(Network Mapper)是一款网络扫描工具,可扫描远程主机的端口状态。

基本语法

nmap [选项] [目标IP/域名]

常用选项及示例

  • 扫描本地主机的开放端口

    nmap localhost
  • 扫描特定端口

    nmap -p 22,80,443 localhost
  • 扫描UDP端口

    nmap -sU localhost
  • 详细输出

    nscan -v localhost

输出说明

输出显示目标主机的端口状态(openclosedfiltered)及服务信息。

/proc文件系统

通过读取/proc/net目录下的文件,可直接查看内核网络状态信息。

示例

  • 查看TCP端口

    cat /proc/net/tcp
    cat /proc/net/tcp6  # IPv6
  • 查看UDP端口

    cat /proc/net/udp
    cat /proc/net/udp6  # IPv6

输出格式

输出为十六进制格式,需转换IP和端口号,本地地址0500000A:0016表示IP0.0.5和端口22(十六进制0016转十进制)。

综合对比

以下是各命令的对比表格:

命令优点缺点适用场景
netstat兼容性好,功能全面速度较慢,逐渐被淘汰传统系统或兼容性要求高的场景
ss速度快,功能强大选项复杂,学习成本较高现代Linux系统快速诊断
lsof可查看文件和进程关联仅限本地端口查询查找端口占用进程
nmap支持远程扫描,功能丰富需额外安装,扫描可能被拦截远程主机端口探测
/proc直接读取内核数据,无需工具输出格式复杂,需手动解析深度调试或脚本自动化

相关问答FAQs

Q1: 如何快速查看本机所有监听的TCP端口?
A1: 使用ss -tlnnetstat -tln命令。

ss -tln

输出将显示所有监听的TCP端口及其IP地址,Local Address:Port列即为所需信息。

Q2: 如何查找占用8080端口的进程并终止它?
A2: 先用lsof -i :8080查找进程ID(PID),再用kill命令终止。

lsof -i :8080  # 输出如:nginx 1234 root 3u IPv4 0t0 TCP *:8080 (LISTEN)
kill -9 1234   # 强制终止PID为1234的进程

注意:kill -9为强制终止,建议优先使用killkill -15

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/457818.html<

(0)
运维的头像运维
上一篇2025-11-10 08:19
下一篇 2025-11-10 08:24

相关推荐

  • Linux设置网络命令有哪些常用?

    Linux作为开源操作系统,其网络配置命令丰富且灵活,掌握这些命令对于系统管理员和开发者至关重要,以下将详细介绍Linux中常用的网络设置命令,包括查看网络状态、配置IP地址、路由管理、DNS配置以及网络服务控制等内容,并通过表格形式对比部分命令的用法,最后附上相关FAQs,在Linux中,查看网络状态是基础操……

    2025-11-18
    0
  • 如何用cmd命令查看路由表?

    在Windows操作系统中,命令提示符(CMD)是一个强大的工具,它允许用户通过输入特定的命令来执行各种网络管理任务,其中查看和诊断路由信息是常见需求,路由决定了网络数据包从源头到目的地的传输路径,理解当前系统的路由表有助于排查网络连接问题、优化网络配置或实现特定的网络策略,本文将详细介绍如何使用CMD命令查看……

    2025-11-18
    0
  • 如何查询445端口开放状态?

    在网络安全管理和系统运维中,445端口是一个需要重点关注的目标端口,因为它与SMB(Server Message Block)协议紧密相关,常被用于Windows系统之间的文件共享和打印机共享,由于该协议的历史漏洞(如永恒之蓝漏洞),445端口也成为恶意软件传播和网络攻击的主要入口之一,掌握445端口的查询方法……

    2025-11-17
    0
  • adb 如何查看端口占用与进程信息?

    在Android开发和系统调试过程中,adb(Android Debug Bridge)作为核心工具,提供了丰富的命令来管理设备、调试应用及监控系统状态,查看端口占用情况是排查网络问题、服务冲突或调试应用通信的关键操作,本文将详细解析adb查看端口的相关命令,包括基础用法、进阶技巧及实际应用场景,并辅以表格对比……

    2025-11-17
    0
  • 如何通过运行命令查看网络状态?

    在Linux和Unix-like系统中,运行命令查看网络状态是系统管理员和开发人员日常运维的重要技能,通过命令行工具,可以快速诊断网络连接、监控流量、排查故障等,以下是常用的网络状态查看命令及其详细用法,ifconfig命令用于显示或配置网络接口信息,在较新的Linux发行版中,ifconfig已被ip命令取代……

    2025-11-16
    0

发表回复

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