如何查看端口连接?

使用 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 服务器上,可使用 ntpdate 命令或配置

    2025年8月18日
    16600
  • linux t进程如何处理

    nux 中终止进程可通过 kill 命令,后跟进程 ID,也可使用 `kill

    2025年8月18日
    16600
  • Linux下如何运行C++程序?

    在Linux系统中运行C++程序主要涉及环境搭建、代码编写、编译、链接及执行等步骤,以下是详细流程和注意事项,环境准备:安装C++编译工具链Linux系统本身不自带C++编译器,需先安装GNU编译器集合(GCC/G++),这是最常用的C++编译工具,不同Linux发行版的安装命令不同:发行版包管理器安装命令Ub……

    2025年9月19日
    20000
  • Linux遍历目录有哪些实用方法?常用命令及具体操作步骤是什么?

    Linux遍历目录是日常运维和开发中的基础操作,无论是查找特定文件、批量处理数据还是分析目录结构,都需要掌握高效的遍历方法,本文将详细介绍几种主流的目录遍历方式,包括基础命令、高级工具及脚本化处理技巧,基础命令:ls递归遍历ls命令是Linux中最基础的文件列表工具,通过-R(递归)选项可实现简单目录遍历,ls……

    2025年8月28日
    18100
  • Linux分屏如何让效率翻倍?

    终端分屏:用 tmux 或 screen 实现适用场景:SSH远程操作、长时间运行任务、终端多窗口协作,tmux(推荐工具)安装命令(以Debian/Ubuntu为例):sudo apt install tmux基础操作:启动新会话:tmux垂直分屏:Ctrl+B → (先按组合键,再按符号键)水平分屏:Ctr……

    2025年7月21日
    21300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信