如何查看端口连接?

使用 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下如何使用GDB调试程序?

    在Linux系统中,GDB(GNU Debugger)是功能强大的调试工具,主要用于C/C++等程序的调试,支持断点设置、变量查看、内存分析、堆栈跟踪等功能,掌握GDB的使用能显著提升程序问题定位的效率,以下从安装、启动、基本操作到高级功能详细说明其使用方法,安装与启动GDB安装GDB不同Linux发行版的安装……

    2025年9月18日
    9000
  • cdlinux如何安装在优盘?

    将CDLinux安装在优盘上可以打造一个便携的系统维护工具,适用于数据恢复、系统修复、网络诊断等场景,以下是详细的安装步骤及注意事项,帮助顺利完成操作,安装前准备工作优盘选择容量:建议至少8GB(推荐16GB以上,确保系统文件和后续存储空间充足),接口:优先USB 3.0及以上接口,提升读写速度(USB 2.0……

    2025年9月25日
    6500
  • 如何快速统计文件行频次?

    基础工具组合:sort + uniq适用场景:统计文本文件中重复行的出现次数(如日志错误类型统计),原理:先排序使相同行相邻,再用uniq合并计数,步骤:# 按频次降序排序(最频繁的排在最前)sort words.txt | uniq -c | sort -nr关键参数:uniq -c:在每行前添加出现次数,s……

    2025年6月13日
    11100
  • Linux系统如何重装?详细步骤与方法是什么?

    重装Linux系统前,需做好充分准备,避免数据丢失或安装失败,首先备份重要数据,包括用户目录(如/home下的文件)、配置文件(如/etc目录下的关键配置,若需保留系统设置)及个人文档,建议使用外部存储设备或云存储,其次确认硬件信息,尤其是硬盘接口(SATA/NVMe)和显卡型号(后续可能需安装驱动),可通过l……

    2025年8月30日
    9000
  • Linux如何备份数据库文件并打开?

    在Linux系统中,数据库备份是保障数据安全的核心操作,而备份文件的打开与恢复则是数据恢复的关键环节,不同数据库系统的备份方式和文件格式存在差异,需根据具体数据库类型选择合适的备份命令和打开方法,本文将详细介绍MySQL、PostgreSQL、MongoDB、SQLite及Redis等常见数据库在Linux环境……

    2025年9月9日
    7600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信