为什么90%的人工作效率低下?

在Linux系统中,查看端口与进程的关联是系统管理、网络调试和安全审计的常见需求,以下是几种权威可靠的方法,均基于Linux原生工具,操作前请确保拥有sudo权限或root用户身份:


使用 ss 命令(推荐)

ss(Socket Statistics)是netstat的现代替代工具,执行效率更高。
查看所有监听端口及进程

sudo ss -tulnp
  • 参数解析
    -t:TCP端口
    -u:UDP端口
    -l:仅显示监听状态(LISTEN)
    -n:以数字形式显示端口(不解析服务名)
    -p:显示关联进程(PID和程序名)
    输出示例

    LISTEN 0  128  0.0.0.0:22  0.0.0.0:*  users:(("sshd",pid=1234,fd=3))

    关键字段:pid=1234为进程ID,"sshd"为进程名。

搜索特定端口(如80)

sudo ss -tulnp | grep ':80'

使用 lsof 命令

lsof(List Open Files)可查看进程打开的文件、目录及网络连接。
查看所有网络连接及进程

sudo lsof -i -P -n
  • 参数解析
    -i:显示网络连接
    -P:禁用端口服务名解析(显示数字端口)
    -n:禁用主机名解析(显示IP地址)
    输出示例

    sshd  1234  root  3u  IPv4  12345  0t0  TCP *:22 (LISTEN)

    关键字段:sshd(进程名)、1234(PID)、:22(端口)。

精确搜索端口(如3306)

sudo lsof -i :3306

使用 netstat 命令(传统工具)

部分旧系统可能未预装ss,可用netstat替代:

sudo netstat -tulnp

参数与ss类似,但执行速度较慢。


通过进程ID反查端口

若已知进程ID(如1234),可反向查找其占用端口:

sudo lsof -p 1234 | grep -i "listen"sudo ss -np | grep 1234

使用 fuser 命令

直接通过端口号定位进程:

sudo fuser 80/tcp

输出示例:

80/tcp:  1234  5678

显示占用TCP 80端口的进程ID(1234和5678)。


结合 ps 命令获取进程详情

获得PID后,用ps查看进程详细信息:

ps aux | grep 1234

输出示例:

root  1234  0.0  0.5  12345  6789  ?  Ss  Jan01  0:00 /usr/sbin/sshd -D

最佳实践建议

  • 首选工具:日常使用ss(高效)或lsof(功能全面)。
  • 安全场景:结合sudo确保获取完整信息,避免权限遗漏。
  • 自动化脚本:推荐sslsof,输出格式更规范。
  • 端口冲突排查:用fuser [端口]/tcp快速终止进程:
    sudo fuser -k 80/tcp  # 强制结束占用80端口的进程

常见问题

Q1:为何命令输出无进程名?
→ 可能缺少sudo权限,部分系统进程信息需root查看。

Q2:工具未安装怎么办?

  • 安装ss/lsof
    sudo apt install iproute2 lsof  # Debian/Ubuntu
    sudo yum install iproute lsof   # CentOS/RHEL

Q3:如何查看UDP端口?
→ 命令中显式指定-u参数(如ss -ulnp)。


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

  • ssman ss
  • lsofman lsof
  • netstatman netstat
    操作示例已在Ubuntu 22.04/CentOS 7+验证,符合Linux标准规范(POSIX)。

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

(0)
酷番叔酷番叔
上一篇 2025年7月8日 01:44
下一篇 2025年7月8日 02:00

相关推荐

  • 如何在Linux中安全运行Perl脚本?

    运行前的准备工作安装Perl解释器Linux通常预装Perl,可通过命令检查:perl -v若未安装,使用包管理器安装:Debian/Ubuntu:sudo apt install perlCentOS/RHEL:sudo yum install perl验证脚本安全性从不可信来源获取的脚本需审查代码(如cat……

    2025年7月23日
    12800
  • Linux系统如何设置中文输入法?

    在Linux系统中设置中文输入法是中文用户日常使用的基础需求,不同发行版和桌面环境的具体操作略有差异,但核心流程相似,以下以主流发行版(如Ubuntu、Debian、CentOS、Fedora)为例,详细介绍中文输入法的安装与配置方法,安装中文输入法框架Linux系统的输入法通常需要依赖输入法框架(如IBus……

    2025年9月23日
    12700
  • linux如何把一个文件

    Linux 中,可使用 mv 命令将一个文件移动到指定目录,如

    2025年8月18日
    11400
  • 在Linux操作系统中,如何通过命令复制文件或文本的5行内容?

    在Linux系统中,复制文件中的指定行是日常文本处理中的常见需求,尤其是批量处理日志、配置文件或数据时,本文将详细介绍多种复制5行的方法,涵盖命令行工具、文本编辑器及脚本处理等场景,帮助用户根据实际需求选择合适的方式,使用命令行工具快速复制5行sed命令:按行号范围复制sed(Stream Editor)是Li……

    2025年10月8日
    13800
  • 阿里linux如何进入

    终端输入`systemctl start graphical.

    2025年8月19日
    10400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信