首页 游戏 软件 资讯 排行榜 专题
首页
系统平台
Linux查看网络连接PID教程 netstat命令使用详解

Linux查看网络连接PID教程 netstat命令使用详解

热心网友
75
转载
2026-05-15

在 Linux 系统中排查网络故障时,快速定位占用特定端口或建立网络连接的进程至关重要。netstat -p 命令是解决此类问题的经典工具,但许多用户在实际操作中会遇到命令无输出、报错或无法显示进程信息的情况。本文将深入解析 netstat -p 的正确用法,并提供更高效可靠的替代方案与实战技巧。

Linux怎么查看网络连接的PID Linux下netstat -p命令详解

首先,必须明确一个核心使用原则:netstat -p 选项不能单独执行。它必须与 -t(TCP协议)、-u(UDP协议)、-l(监听状态)或 -n(禁用域名解析)等参数组合使用。更重要的是,查看进程信息(PID 和程序名)需要 root 权限。普通用户执行时,系统通常会静默忽略 -p 选项,导致进程信息列显示为短横线 -,或直接返回权限拒绝的错误提示。

netstat -p 命令无响应或报错的根本原因

问题的根源在于权限限制与内核接口访问。-p 选项的功能依赖于读取 /proc 文件系统中的进程映射信息,这一操作被 Linux 内核严格限制为特权操作。当非 root 用户执行包含 -p 的命令时,大多数发行版会选择静默跳过进程字段,导致输出中 PID/程序名列缺失。部分系统则会直接报错,提示 can‘t identify protocolPermission denied

以下是几种常见错误场景:

  • 执行 netstat -tulp 后,输出结果中缺少预期的 PID 或程序名列。
  • 执行 sudo netstat -p 时,系统报错 invalid option -- ’p‘。这是因为命令缺少必要的协议或状态参数。
  • 使用 grep 过滤特定端口(如 sudo netstat -tulnp | grep :3000)后,发现对应的进程信息为空。

因此,正确的命令组合必须包含至少一个协议选项(-t-u)和一个状态选项(-l 查看监听端口,或 -a 查看所有连接)。一个通用且高效的推荐命令是 sudo netstat -tulnp。其中,-n 参数可避免 DNS 反向解析,大幅提升命令响应速度;而只有配合 -p 参数,进程信息才会完整显示。

如何解读 netstat -tulnp 输出中的 PID/Program name 字段

当命令正确执行后,您将看到类似 1234/nginx5678/java 的输出格式。该字段的解读需注意以下几点:

  • 格式固定为 PID/进程名,斜杠为分隔符。进程名通常是主程序名称,不包含完整的命令行参数。
  • 若该字段显示为短横线 -,通常意味着该 socket 属于一个 setuid 进程(如由 sudo 启动的服务),或进程权限受限,导致 netstat 无法读取其 /proc/PID/exe 信息。
  • 在容器化环境中需特别注意命名空间隔离。在宿主机上执行 sudo netstat -tulnp 只能看到宿主机进程。要查看容器内部的网络连接,需进入容器命名空间执行相应命令。
  • 该字段在输出中的位置通常是第 7 列(以空格分隔)。您可以使用 awk ’{print $7}‘ 轻松提取该列信息。

更优替代方案:使用 ss -tulnp 命令

在现代 Linux 系统中,ss(Socket Statistics)命令是更推荐使用的网络诊断工具。它源自 iproute2 套件,旨在替代传统的 netstatss 直接读取内核 socket 表,绕过了 /proc 接口,因此执行效率更高,输出结果也更稳定可靠。其对 -p 选项的权限要求与 netstat 相同,但整体容错性更佳。

  • 命令 sudo ss -tulnp 的输出格式与 netstat 高度相似,PID/程序名同样位于第 7 列。
  • 在处理高并发连接的系统上,ss -tunlp | grep ’:8080‘ 的查询速度远快于 netstat,性能优势明显。
  • 许多轻量级 Linux 发行版(如 Alpine)默认未安装 net-tools(包含 netstat),但通常预装了 iproute2(包含 ss)。在陌生环境中,优先尝试 ss --version 是更高效的做法。
  • ss 提供了更强大的过滤语法。例如,sudo ss -tnp state established ’( dport = :80 )‘ 可以精确筛选出所有目标端口为 80 的已建立 TCP 连接,这种表达能力是 netstat 所不具备的。

实战:按 PID 或进程名反查网络连接

Linux 系统并未提供直接按进程名过滤网络连接的原生命令,因此需要借助文本处理工具。掌握字段切割与精准匹配的技巧是关键。

  • 查找 PID 为 1234 的进程的所有监听连接sudo netstat -tulnp | awk ’$7 ~ /^1234\//‘。使用正则表达式锚定行首(^),可避免误匹配 PID 为 11234 等进程。
  • 查找进程名为 java 的所有网络连接sudo netstat -tulnp | awk ’$7 ~ /\/java$/‘。使用行尾锚定符($),可防止匹配到类似 javaws 的其他进程名。
  • 查找特定端口并确认其监听状态sudo netstat -tulnp | grep ’:3306‘ | grep LISTEN。分步使用 grep 过滤,通常比编写复杂的复合正则表达式更直观且不易出错。
  • 验证 PID 对应的进程是否真实存在:执行 ls -l /proc/1234/exe。若返回可执行文件路径(如 /usr/bin/python3),则进程存活。若提示 No such file or directory,则进程已退出,可能是 socket 尚未被内核完全释放(常见于短连接服务)。

最后,一个容易被忽视的关键点是权限与命名空间的边界。sudo 可以提升权限,但无法跨越容器或用户命名空间的隔离,也难以处理 setuid 进程的隐藏行为。此时需要调整排查思路,例如使用 nsenter 命令进入目标容器的命名空间进行查询,或利用 lsof -nP -iTCP -sTCP:LISTEN | grep 1234 等命令进行交叉验证,往往能发现新的线索。

来源:https://www.php.cn/faq/2471956.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

Linux端口占用解决方法与强制结束进程命令教程
系统平台
Linux端口占用解决方法与强制结束进程命令教程

遇到端口被占用,首先使用`lsof-i:端口号`命令查找占用进程的PID。找到后,优先使用`killPID`命令让进程优雅退出。若无效,再考虑使用`kill-9PID`强制终止。使用`killall`或`pkill`时需谨慎,建议附加用户或名称限制以避免误杀。若端口仍显示占用,可能是TCP的TIME_WAIT状态,可使用`ss`命令确认,通常端口可立即复用。

热心网友
05.14
Linux系统CPU漏洞检测指南 Spectre与Meltdown状态查看方法
系统平台
Linux系统CPU漏洞检测指南 Spectre与Meltdown状态查看方法

检测Linux系统是否受Spectre或Meltdown漏洞影响,需直接检查运行状态。最可靠的方法是读取 sys devices system cpu vulnerabilities 目录下的实时状态文件,观察各漏洞的缓解情况。也可使用第三方脚本进行交叉验证,重点关注漏洞状态与微码版本。此外,需确认内核启动参数是否已启用缓解措施,以确保防护生效。

热心网友
05.14
Linux SSH反向隧道配置教程与内网穿透步骤详解
系统平台
Linux SSH反向隧道配置教程与内网穿透步骤详解

配置SSH反向隧道时,常见问题包括隧道端口无法被外部访问、连接不稳定或连接被拒绝。这通常源于服务器SSH默认设置`GatewayPortsno`,导致端口仅绑定在本地回环地址。需修改为`clientspecified`或`yes`并重启服务。命令中`localhost`指内网机地址,若需外部访问,应使用`*:2222`绑定所有接口。为保持连接稳定,建议使用`

热心网友
05.14
Git LFS配置教程 高效管理大型二进制文件指南
系统平台
Git LFS配置教程 高效管理大型二进制文件指南

GitLFS用于管理Git中的大型二进制文件。配置时需先安装git-lfs工具并运行gitlfsinstall初始化。使用前必须用gitlfstrack指定跟踪文件类型并提交 gitattributes,再添加文件。克隆含LFS的仓库时,默认仅下载指针,需运行gitlfspull获取实际文件。若已有仓库误提交大文件,可使用gitlfsmigrate重写历史,

热心网友
05.14
Linux strace命令详解如何查看进程系统调用统计
系统平台
Linux strace命令详解如何查看进程系统调用统计

strace-c用于统计进程系统调用的耗时分布,反映内核态时间占比,而非CPU占用率。其输出百分比代表各调用在追踪总耗时中的比例,与top的CPU观测维度不同,属正常现象。该工具适用于排查启动慢、网络卡顿等问题,但需注意无法统计用户态计算耗时,且应结合时间序列分析以避免误判。

热心网友
05.14

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

银河麒麟系统SSH公钥登录配置与安全远程连接指南
系统平台
银河麒麟系统SSH公钥登录配置与安全远程连接指南

在麒麟操作系统上配置SSH公钥登录,不仅能免去每次输入密码的繁琐,更能显著增强远程连接的安全性。整个过程并不复杂,核心步骤围绕密钥生成、公钥部署和服务端配置展开。本文将详细介绍几种主流方法,涵盖从自动化部署到手动配置,助你轻松完成麒麟系统SSH密钥登录设置。 一、使用ssh-keygen与ssh-c

热心网友
05.15
银河麒麟系统登录循环故障解决方法与桌面修复指南
系统平台
银河麒麟系统登录循环故障解决方法与桌面修复指南

登录循环闪退应先删 Xauthority和 ICEauthority文件、修复 tmp权限为1777、重置ukui mate dconf配置、清理磁盘空间、重装lightdm并重新配置。 在银河麒麟操作系统中输入密码后,屏幕一闪又回到登录界面,这种“登录循环”问题确实令人困扰。这通常并非硬件故障,而

热心网友
05.15
GUSD稳定币详解:项目背景、核心用途与投资风险全解析
web3.0
GUSD稳定币详解:项目背景、核心用途与投资风险全解析

GUSD是一种与美元1:1锚定的合规稳定币,由Gemini交易所发行并受纽约州金融服务部监管。其核心价值在于为加密世界提供透明、受监管的美元等价物,主要应用于交易、支付和价值存储。投资者需关注其中心化托管风险、监管政策变化及智能合约潜在漏洞,理解其作为传统金融与加密市场桥梁的定位与局限。

热心网友
05.15
Win11如何设置默认音频输出设备与调整音量
系统平台
Win11如何设置默认音频输出设备与调整音量

在Windows 11系统中,确保系统音频稳定输出到指定设备(如已连接的耳机或已配对的蓝牙音箱),核心在于正确配置默认音频输出设备。您可以通过任务栏快速设置、系统设置应用、控制面板声音对话框、音量混合器下拉菜单或Win+Ctrl+V快捷键这五种主流方案,实现即时切换或永久性配置,彻底解决声音输出错乱

热心网友
05.15
宏胜集团高管变动与业务外包调整深度解析
AI
宏胜集团高管变动与业务外包调整深度解析

宏胜集团近期发生重要人事与业务调整。总裁办主任叶雅琼、销售总经理吴汀燕、法务部部长周卓盈及生产管理科科长吴潘潘等多位高管已离职,该消息已获接近集团人士证实。与此同时,集团启动了部分非生产业务的外包运作,显示出其正在优化内部结构与运营模式。这一系列变动可能意味着公司正处于战略调整期,旨在聚焦核心业务并

热心网友
05.15