Linux服务器查看运行端口的实用方法汇总

admin
Linux服务器查看运行端口的实用方法主要包括:netstat命令(如netstat -tlnp查看TCP监听端口及进程)、ss命令(高效替代netstat,ss -tlnp显示更详细信息)、lsof命令(lsof -i:端口号查看指定端口占用进程)、nmap扫描工具(nmap -sT 本机IP检测本地开放端口),netstat适合传统环境,ss性能更优,lsof便于精准定位进程,nmap支持全面端口检测,根据需求选择工具,可快速排查端口状态及关联进程。

在Linux服务器管理中,查看当前运行的端口号是一项基础且重要的操作,无论是排查服务异常、监控网络连接,还是进行安全审计(如发现未授权端口开放),都需要快速掌握端口状态,本文将介绍几种常用的Linux命令,帮助你高效查看服务器运行的端口信息,涵盖传统工具与现代优化方案,适合不同场景需求。

为什么需要查看运行端口?

在开始具体操作前,先明确查看端口的常见场景:

  • 服务状态确认:确认Web服务(如Nginx、Apache)、数据库(如MySQL、Redis)等是否正常监听指定端口;
  • 网络问题排查:当无法访问服务时,检查端口是否被占用或防火墙拦截;
  • 安全审计:发现服务器上是否有异常端口开放,防范恶意程序或未授权服务;
  • 资源优化:查看大量端口占用情况,定位资源消耗异常的进程。

常用端口查看方法

方法1:使用netstat——传统经典工具

netstat是Linux系统中传统的网络状态查看工具,功能全面,兼容性好,在大多数发行版中默认安装。

Linux服务器查看运行端口的实用方法汇总

基础命令及参数

netstat [选项]

常用选项说明:

  • -t:显示TCP端口;
  • -u:显示UDP端口;
  • -l:仅显示监听(Listening)状态的端口(即服务正在等待连接的端口);
  • -n:以数字形式显示地址和端口(不解析域名和服务名,速度更快);
  • -p:显示占用端口的进程ID(PID)和进程名(需root权限);
  • -a:显示所有端口(包括监听和非监听状态)。

实用示例

  1. 查看所有监听的TCP和UDP端口(最常用)

    netstat -tuln

    输出示例:

    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
    tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN
    udp        0      0 0.0.0.0:68              0.0.0.0:*               
    • Proto:协议(TCP/UDP);
    • Local Address:本地IP和端口(0.0.0表示监听所有IP);
    • State:状态(LISTEN表示监听中)。
  2. 查看所有端口(包括已连接的)及进程信息

    sudo netstat -anp

    输出示例(部分):

    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
    tcp        0      0 192.168.1.100:22        10.0.0.5:12345         ESTABLISHED 1234/sshd
    tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      5678/java
    • ESTABLISHED:表示已建立的连接;
    • PID/Program name:占用端口的进程ID和名称(需root权限才显示)。

优缺点

  • 优点:参数丰富,输出信息全面,兼容所有主流Linux发行版;
  • 缺点:在端口数量较多时,查询速度较慢(需遍历内核协议栈)。

方法2:使用ss——现代高效替代工具

ssiproute2工具包的一部分,从Linux 2.6.27版本起逐渐取代netstat,它的优势在于查询速度更快(直接从内核获取 socket 信息),输出更简洁,已成为现代Linux系统的首选工具。

基础命令及参数

ss [选项]

常用选项与netstat类似,部分参数略有差异:

  • -t:TCP端口;
  • -u:UDP端口;
  • -l:仅显示监听端口;
  • -n:数字形式显示;
  • -p:显示进程信息(需root权限);
  • -a:所有端口;
  • -4:仅显示IPv4端口;
  • -6:仅显示IPv6端口。

实用示例

  1. 查看所有监听的TCP/UDP端口(推荐日常使用)
    ss -tuln

    输出示例(与netstat -tuln类似,但格式更紧凑):

文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码