Linux查看端口状态的最快方法?

使用 netstat 命令(经典工具)

安装(部分系统需手动安装):

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

常用参数组合

sudo netstat -tuln
  • -t:仅显示TCP端口
  • -u:仅显示UDP端口
  • -l:仅显示监听中的端口
  • -n:以数字形式显示地址和端口(不解析域名)
  • -p:显示进程名/ID(需sudo权限)

输出示例

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
  • 关键列
    Local Address0.0.0:22 表示所有IP监听22端口(SSH服务)
    StateLISTEN 表示端口正在等待连接

使用 ss 命令(netstat 的现代替代)

优势:执行速度更快,无需额外安装(默认集成于主流发行版)。
基础命令

sudo ss -tuln

参数含义同 netstat
过滤特定端口(如查看80端口):

sudo ss -tuln sport = :80

使用 lsof 命令(查看进程占用端口)

安装(未预装时):

sudo apt install lsof  # Debian/Ubuntu
sudo yum install lsof  # CentOS/RHEL

查看所有监听端口

sudo lsof -i -P -n | grep LISTEN
  • -i:显示网络连接
  • -P:禁止端口别名(显示数字端口)
  • -n:禁止IP地址解析(显示原始IP)

输出示例

sshd    1234  root    3u  IPv4  12345  0t0  TCP *:22 (LISTEN)
  • 含义:进程 sshd(PID 1234)正在监听22端口。

使用 nmap 扫描本地端口(安全审计)

安装

sudo apt install nmap  # Debian/Ubuntu
sudo yum install nmap  # CentOS/RHEL

扫描本机开放端口

sudo nmap -sT -p- 127.0.0.1
  • -sT:TCP全连接扫描(最稳定)
  • -p-:扫描所有65535个端口(范围1-65535)

输出示例

PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
  • STATEopen 表示端口可访问,filtered 可能被防火墙拦截。

查看端口关联服务

通过 /etc/services 文件查询端口对应的标准服务:

grep 22 /etc/services

输出示例:

ssh   22/tcp    # Secure Shell

常见问题解决

  1. 无权限查看进程信息
    → 使用 sudo 提权执行命令(如 sudo ss -tulp)。

  2. 命令未找到
    → 按前文方法安装对应工具包(如 net-toolslsof)。

  3. 端口监听但无法访问
    → 检查防火墙:

      sudo ufw status          # Ubuntu防火墙
      sudo firewall-cmd --list-ports  # CentOS防火墙

总结建议

  • 日常快速检查 → 使用 ss -tuln(效率最高)
  • 排查进程占用 → 使用 lsof -i :端口号
  • 深度安全扫描 → 使用 nmap
  • 生产环境操作前 → 通过测试环境验证命令,避免误操作影响服务。

安全提示

  • 关闭非必要端口以减少攻击面。
  • 定期审计端口使用情况(结合自动化脚本)。
  • 敏感服务避免绑定 0.0.0(所有接口),建议限制IP范围。

引用说明: 参考 Linux 官方手册(man netstat/man ss/man lsof)、Nmap 官方文档及 Red Hat/CentOS、Ubuntu 安全实践指南,命令兼容主流 Linux 发行版(包括 Ubuntu、Debian、CentOS、RHEL 等)。

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

(0)
酷番叔酷番叔
上一篇 2025年7月1日 04:25
下一篇 2025年7月1日 04:43

相关推荐

  • Linux下tar包如何安装?

    在Linux系统中,tar包通常指通过tar工具打包的源码压缩包(如.tar.gz、.tar.bz2、.tar.xz等),与二进制包(如.deb、.rpm)不同,tar包需要用户手动编译安装,过程涉及解压、配置、编译、安装等步骤,适合需要自定义功能或适配特定系统的场景,以下是详细安装流程:安装前准备:编译环境依……

    2025年9月15日
    6700
  • Linux如何运行shell脚本?正确步骤与方法详解

    Linux系统中,Shell是用户与内核之间的核心桥梁,作为命令解释器,它接收用户输入的命令,解析后交给内核执行,并将结果返回给用户,理解Linux如何运行Shell,需要从Shell的定义、类型、运行方式、脚本执行及环境配置等多个维度展开,Shell的定义与核心作用Shell本质上是一个程序,位于Linux操……

    2025年8月28日
    8800
  • 如何在众多Linux版本中为PHP开发选择最合适的?

    在选择Linux版本用于PHP开发时,需要综合考虑开发需求、环境稳定性、软件包支持、社区活跃度及硬件资源等多方面因素,Linux发行版种类繁多,不同版本在包管理、默认软件版本、更新策略等方面存在差异,选择合适的版本能显著提升开发效率和环境可靠性,以下从核心需求出发,分析主流Linux发行版的特点,并提供不同场景……

    2025年8月27日
    9400
  • 为什么开发者偏爱Debian/Ubuntu?

    使用 tree 命令(推荐工具)安装方法(部分系统默认未安装):# CentOS/RHELsudo yum install tree# Arch/Manjarosudo pacman -S tree基础用法:tree [目录路径] # 不指定路径时显示当前目录示例输出:.├── dir1│ ├── file1……

    2025年8月7日
    7000
  • linux 中如何编译器

    Linux 中,使用 gcc 或 g++ 编译器,gcc [选项] 源文件名.

    2025年8月9日
    8900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信