蓝法典的专栏

社会如此,我能怎样!

How does netstat work

netstat是用来查出网络连接相关信息的命令,他是一种分析型的命令,所有的数据都存放在proc下面。netstat去proc下读取信息然后将信息输出。

如果不了解什么是proc,请参考

理解 Proc 文件系统

拿netstat -nlp这个命令做例子,n是使用数字来显示,l是监听,p是显示程序的PID和名称,以及程序的所有者


当执行netstat -nlp时,该命令首先在proc下遍历所有的PID/fd/目录,当fd目录中有socket句柄时,将其记录,然后再去proc/net/tcp (udp,unix)里查找与这些socket句柄相关的端口,proc/net/tcp里面的数字是16进制的,转换到10进制就是所看到的端口了。

在程序执行时,程序所打开的句柄可以在proc/pid/fd中查看,fd目录是700的,并且目录宿主就是执行该程序的用户,这样就可以通过FD目录的属性来确认程序的>执行用户,也就是参数p显示的所有者。

其实Shell下的很多命令都是读取proc的信息,然后格式化输出,例如pstree,vmstat等。如果你想得到一个特定的系统状态或程序状态,完全可以自己用Shell写一个类似netstat这种命令的脚本。
阅读更多
个人分类: 网上收集
想对作者说点什么? 我来说一句

how does http work

2014年03月11日 158KB 下载

modeling algorithm

2011年07月04日 483KB 下载

What is EDI Whitepaper

2015年08月21日 292KB 下载

Ethernet AVB

2009年05月06日 2.4MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭