为什么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,你会错过什么?

    系统学习路径(分阶段实践指南)阶段1:基础认知与操作(1-2周)理解Linux本质学习开源理念、内核与发行版区别(如Ubuntu/CentOS/Debian的定位)明确命令行(CLI)与图形界面(GUI)的应用场景环境搭建零风险方案:使用VirtualBox/VMware创建虚拟机(推荐Ubuntu LTS版……

    2025年7月29日
    2000
  • 你还在纠结吗

    操作前准备:查看当前登录用户在踢出用户前,需确认目标用户及会话信息:who # 显示用户、终端和登录时间w # 显示更详细信息(包括用户正在执行的命令)输出示例:root pts/0 2023-10-01 10:00 (192.168.1.100)user1 pts/1 2023-10-01 11:30 (19……

    2025年7月21日
    3000
  • Linux如何永久删除sudo用户?

    方法1:仅移除sudo权限(保留用户账户)适用于需保留用户但撤销管理员权限的场景,查看用户所属组执行命令确认用户是否在sudo或wheel组(不同系统组名可能不同):groups 用户名 # groups john若输出包含sudo或wheel,则需移除,移除sudo组使用gpasswd命令从组中删除用户:su……

    2025年6月28日
    3100
  • 磁盘爆满?如何秒查Linux大文件?

    核心命令详解du 命令(磁盘使用分析)适用场景:精准计算目录/文件大小,适合深度扫描,基础命令:du -ah /path/to/directory | sort -rh | head -n 20参数解析:-a:显示所有文件(包括子目录中的文件)-h:人类可读格式(KB/MB/GB)–max-depth=1:限……

    2025年7月21日
    2800
  • Wine真能在Linux运行Windows程序?

    Wine是一个免费开源的兼容层,允许在Linux、macOS等类Unix操作系统上直接运行Windows应用程序,它通过将Windows系统调用动态翻译成宿主系统的调用实现兼容,无需虚拟机环境。

    2025年7月31日
    1900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信