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

Linux查看端口号命令有哪些

Linux查看端口号常用命令:,1. ss -tuln 查看监听端口(推荐),2. netstat -tulnp 查看监听端口及进程,3. lsof -i 查看所有网络连接,4. sudo lsof -i :端口号 查指定端口进程,需root权限查看全部信息。

Linux查看端口号的详细指南

在Linux系统中,端口号是网络通信的关键标识,用于区分不同服务或应用程序,无论是排查网络问题、监控服务状态还是加固系统安全,掌握查看端口号的方法都至关重要,以下是几种常用且可靠的命令工具,每种方法均经过验证并适用于主流Linux发行版(如Ubuntu、CentOS、Debian等)。


使用 netstat 命令(经典工具)

netstat 是传统的网络统计工具,可查看端口监听状态和连接信息。
安装与使用

# 若未安装,先执行(基于发行版):
sudo apt install net-tools  # Debian/Ubuntu
sudo yum install net-tools  # CentOS/RHEL
# 查看所有监听端口(-l)和关联进程(-p):
sudo netstat -tulnp

输出示例

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

参数解析

  • -t:仅显示TCP端口
  • -u:仅显示UDP端口
  • -l:列出监听状态(LISTEN)的端口
  • -n:以数字形式显示端口(不解析服务名)
  • -p:显示占用端口的进程信息(需sudo权限)

使用 ss 命令(推荐,更高效)

ss(Socket Statistics)是netstat的现代替代品,速度更快且功能丰富。
基础命令

# 查看所有TCP/UDP监听端口和进程:
sudo ss -tulnp

输出示例

Linux查看端口号命令有哪些  第1张

Netid State  Local Address:Port Peer Address:Port Process
tcp   LISTEN 0.0.0.0:22       0.0.0.0:*      users:(("sshd",pid=1234,fd=3))
tcp   LISTEN :::80            :::*           users:(("nginx",pid=5678,fd=6))

进阶用法

  • 检查特定端口(如443):sudo ss -tun sport = :443
  • 查看所有已建立连接:ss -t state established

使用 lsof 命令(精准定位进程)

lsof(List Open Files)通过文件描述符查看端口占用,适合定位进程。
安装与使用

# 安装lsof:
sudo apt install lsof  # Debian/Ubuntu
sudo yum install lsof  # CentOS/RHEL
# 查看所有监听端口:
sudo lsof -i -P -n | grep LISTEN

输出示例

sshd    1234 root    3u  IPv4 12345      0t0  TCP *:22 (LISTEN)
nginx   5678 root    6u  IPv6 67890      0t0  TCP *:80 (LISTEN)

参数解析

  • -i:显示网络连接
  • -P:禁止端口名解析(显示数字端口)
  • -n:禁止主机名解析(显示IP地址)

使用 nmap 扫描端口(检测开放端口)

nmap 是网络扫描工具,适合检查本机或远程主机的开放端口。
安装与扫描本机

# 安装nmap:
sudo apt install nmap  # Debian/Ubuntu
sudo yum install nmap  # CentOS/RHEL
# 扫描本机所有端口(需root权限):
sudo nmap -sT -p- 127.0.0.1

输出示例

PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

常用参数

  • -sT:TCP连接扫描
  • -p-:扫描所有端口(1-65535)
  • 扫描特定端口:nmap -p 22,80,443 localhost

通过 /proc 文件系统(底层查看)

Linux内核通过/proc暴露端口信息,适合脚本调用:

# 查看TCP/UDP端口占用:
cat /proc/net/tcp    # TCP端口(十六进制)
cat /proc/net/udp    # UDP端口
# 解析十六进制端口(如22→0x0016→22):
echo "ibase=16; 0016" | bc

关键注意事项

  1. 权限要求

    • netstatsslsof 查看进程信息需 sudo 权限。
    • 普通用户可运行 ss -tulnnetstat -tuln(不显示进程名)。
  2. 安全实践

    • 关闭无用端口以减少攻击面,如使用 firewall-cmdufw
    • 定期检查异常连接:ss -antp | grep ESTAB
  3. 工具选择建议
    | 场景 | 推荐工具 |
    |———————|—————|
    | 快速查看监听端口 | ss |
    | 定位进程占用 | lsof |
    | 全端口扫描 | nmap |
    | 兼容旧系统 | netstat |


  • 日常监控推荐 ss -tulnp,高效且无需额外安装。
  • 调试进程关联首选 lsof -i -P -n
  • 全面扫描使用 nmap,但需注意网络扫描的合法性。
    掌握这些方法,可轻松应对端口监控、故障排查及安全审计需求。

引用说明: 基于 Linux 官方文档(man7.org)及以下工具手册:

  1. ss 命令手册:man ss
  2. netstat 指南:man netstat
  3. Nmap 官方文档:nmap.org/book/man.html
  4. Linux 网络管理权威参考:《Linux Network Administrator’s Guide》(O’Reilly)
0