如何查看端口连接?

使用 netstat 命令(经典工具)

netstat 是传统网络工具,适合大多数Linux发行版(需安装 net-tools 包):

# 过滤特定端口(如80端口)
sudo netstat -tuln | grep ':80'

参数解析

  • -t:TCP协议
  • -u:UDP协议
  • -l:仅显示监听端口
  • -n:以数字形式显示端口(不解析服务名)
  • -p:显示进程名(需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

使用 ss 命令(推荐替代方案)

ss(Socket Statistics)是 netstat 的现代替代品,速度更快,语法类似:

# 查看所有TCP/UDP监听端口
sudo ss -tuln
# 检查特定进程占用的端口(如Nginx)
sudo ss -tuln | grep nginx

优势

  • 直接读取内核数据,效率更高
  • 支持更细粒度的过滤(如 ss -t state established

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

lsof(List Open Files)可查看进程打开的文件和端口:

# 查看所有网络端口占用
sudo lsof -i -P -n
# 检查80端口被哪个进程占用
sudo lsof -i :80

参数说明

  • -i:显示网络连接
  • -P:禁用端口服务名解析(显示数字端口)
  • -n:禁用IP地址解析(显示IP而非主机名)
    输出关键列
    COMMAND(进程名)、PID(进程ID)、TYPE(类型)、NODE(协议)、NAME(地址:端口)

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

nmap 通常用于远程扫描,但也可检查本机开放端口:

# 扫描本机所有TCP端口
sudo nmap -sT -p- 127.0.0.1

参数解释

  • -sT:TCP连接扫描
  • -p-:扫描1-65535所有端口
    适用场景
    验证防火墙规则或隐藏端口,比 netstat/ss 更全面(需root权限)。

其他工具补充

  1. fuser 命令
    快速查看端口占用进程(需端口协议):

    sudo fuser 80/tcp  # 显示使用80/TCP的进程PID
  2. systemctl 管理服务
    若端口由systemd服务管理,可直接查询:

    systemctl status sshd | grep -i "listening"  # 检查SSH服务端口

常见问题解决

  • 权限不足
    普通用户可运行 netstat -tulnss -tuln 查看端口状态(但无法显示进程名),需 sudo 获取完整信息。

  • 工具未安装
    安装命令参考:

    # netstat (net-tools)
    sudo apt install net-tools    # Debian/Ubuntu
    sudo yum install net-tools    # CentOS/RHEL
    # ss/lsof (默认预装)
    sudo apt install lsof nmap    # 按需安装
  • 查看指定进程的端口
    结合 pgrepss

    ss -tuln -p | grep $(pgrep nginx)  # 查找Nginx相关端口

总结与最佳实践

  • 日常推荐:优先使用 ss(高效)或 lsof(进程关联性强)。
  • 安全建议
    • 定期检查异常端口(如 netstat -antp 查看所有TCP连接)。
    • 使用 nmap 进行深度扫描,检测未授权服务。
  • 生产环境:结合自动化脚本(如 ss -tuln > port_scan.log 定期归档)。

引用说明: 基于Linux内核文档(kernel.org)及以下工具手册:

  • netstat/ss:Linux Programmer’s Manual
  • lsof:Victor A. Abell 官方文档
  • nmap:Nmap Network Scanning Book (Gordon Lyon)
    操作验证环境:Ubuntu 22.04/CentOS 7,兼容主流Linux发行版。

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

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

相关推荐

  • Linux下如何同步时间设置?系统时间同步方法详解

    Linux系统中的时间管理涉及两个核心概念:系统时间(由内核维护,运行时保存在内存中)和硬件时钟(RTC,由主板电池供电,关机后仍运行),时间同步的目的是确保系统时间与标准时间源一致,避免因时间偏差导致日志混乱、证书失效等问题,以下是Linux下时间同步的详细方法及操作步骤,手动调整时间(临时方案)若仅需临时修……

    2025年10月7日
    10700
  • 如何快速查询Linux用户UID?

    使用 id 命令(推荐)原理:调用系统库直接获取用户信息,准确性最高,命令示例:id -u # 查看当前用户的UIDid -u username # 查看指定用户的UID(如:id -u root)输出示例:$ id -u alice1001解析 /etc/passwd 文件原理:所有用户信息存储在/etc/p……

    2025年8月5日
    10800
  • Linux制作ISO镜像文件的操作方法是什么?

    在Linux系统中,制作ISO镜像文件是一项常见操作,可用于系统备份、软件分发、安装介质创建等场景,ISO镜像本质上是光盘数据的完整副本,包含文件系统的结构和所有文件信息,Linux下制作ISO镜像的方法多样,可通过命令行工具高效完成,也可借助图形界面工具简化操作,以下将详细介绍不同场景下的制作方法及注意事项……

    2025年10月7日
    11900
  • Linux系统中.bin文件的安装方法、步骤及注意事项有哪些?

    在Linux系统中,bin文件通常指二进制可执行文件(Binary Executable),这类文件是程序源码经过编译后的机器码,无需依赖源码即可直接运行,常见于第三方软件、开发工具或便携式程序,与.deb、.rpm等依赖包管理器的安装包不同,bin文件的安装过程需要用户手动处理权限、依赖及路径配置,掌握正确方……

    2025年8月22日
    12300
  • ARM Linux如何配置TFTP服务器?

    安装TFTP服务更新系统sudo apt update && sudo apt upgrade -y安装必要组件sudo apt install tftpd-hpa tftp-hpa -y # tftpd-hpa是服务端,tftp-hpa是客户端配置TFTP服务器创建共享目录并授权sudo mk……

    2025年7月6日
    14800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信