gpt4 book ai didi

linux - 如何在不使用 lsof 或 netstat 的情况下将网络连接绑定(bind)到 PID?

转载 作者:IT王子 更新时间:2023-10-29 00:10:36 27 4
gpt4 key购买 nike

有没有一种方法可以将网络连接绑定(bind)到 PID(进程 ID)而无需 fork 到 lsof 或 netstat?

当前 lsof 用于轮询哪些连接属于哪个进程 ID。然而,lsof 或 netstat 在繁忙的主机上可能非常昂贵,并且希望避免不得不使用这些工具。

是否有类似于/proc/$pid 的地方可以找到此信息?我通过检查/proc/net 知道网络连接是什么,但无法弄清楚如何将其与 pid 联系起来。/proc/$pid 里面好像没有网络信息。

目标主机是 Linux 2.4 和 Solaris 8 到 10。如果可能,Perl 的解决方案,但我愿意使用 C/C++。

补充说明:

我想强调这里的目标是将网络连接绑定(bind)到 PID。获得一个或另一个是微不足道的,但以低成本的方式将两者放在一起似乎很困难。感谢您到目前为止的回答!

最佳答案

我不知道你需要多久轮询一次,或者你所说的“昂贵”是什么意思,但是如果选择正确,netstatlsof 都会运行很多次比默认配置更快。
示例:

netstat -ltn

仅显示 l监听 tcp 套接字,并省略默认情况下打开的(慢)name 分辨率。

lsof -b -n -i4tcp:80

省略所有b锁定操作、n名称解析,并将选择限制为端口 80 上的 IPv4 tcp 套接字。

关于linux - 如何在不使用 lsof 或 netstat 的情况下将网络连接绑定(bind)到 PID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/838317/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com