如何查看端口连接?

使用 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主机如何添加并配置2个网站的详细步骤?

    在阿里云Linux主机上添加两个网站,主要涉及环境准备、网站目录创建、数据库配置、Nginx服务器配置及SSL证书部署等步骤,以下以CentOS 7系统为例,结合Nginx+MySQL+PHP(LNMP环境)详细说明操作流程,环境准备首先确保阿里云Linux主机已安装LNMP环境(若未安装,可通过阿里云云市场的……

    2025年9月26日
    1800
  • Linux系统中如何彻底卸载SVN及清除残留配置文件?

    在Linux系统中,卸载Subversion(SVN)通常涉及两个核心步骤:通过包管理器移除已安装的SVN软件包,以及手动清理可能残留的配置文件、数据目录和相关依赖,SVN作为版本控制工具,若不再使用或需要替换为其他工具(如Git),彻底卸载可释放系统资源并避免潜在冲突,以下将分场景详细说明卸载流程,涵盖主流L……

    2025年9月23日
    1800
  • Linux系统中R文件如何运行并获取其运行时间?

    在Linux环境下运行R语言脚本文件(通常以.R为扩展名)并测量其执行时间,是数据分析和科学计算中的常见需求,R脚本通常包含一系列R命令,用于数据处理、模型训练或可视化等任务,而运行时间测量则有助于评估代码效率、优化性能瓶颈,本文将详细介绍R脚本在Linux下的执行方法、时间测量技巧及相关注意事项,R脚本的编写……

    2025年9月9日
    1900
  • Linux中合并解压多个压缩包的具体方法是什么?

    在Linux系统中,合并与解压操作通常涉及处理分卷压缩文件或多个独立压缩包的场景,常见于大文件传输、备份存储等场景,合并解压的核心思路是:先将分卷压缩文件或多个独立压缩包合并为单一完整文件,再通过对应工具解压;或直接解压后合并解压出的内容,本文将结合不同压缩格式(如tar.gz、zip、rar、7z等),详细说……

    2025年9月9日
    2400
  • Linux中如何设置或调整屏幕分辨率?

    在Linux系统中调整屏幕分辨率是日常使用中常见的操作,无论是为了适配外接显示器、优化显示效果,还是解决分辨率异常问题,掌握正确的方法都非常重要,Linux下调整分辨率的方式主要分为图形界面操作和命令行操作两种,不同桌面环境和发行版可能存在差异,但核心逻辑相通,本文将详细介绍这些方法,并涵盖驱动配置、多显示器设……

    2025年9月23日
    1900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信