Linux下的c++系统检测工具:网络编程小插曲

常常用来检测服务器行为的工具tcpdump,nc, strace, lsof, vmstat, ifstat, mpstat.

tcpdump

tcpdump是一款经典的网络抓包工具,还有常用的Wireshark。
tcpdump的参数提供了大量的选项:
-n:使用IP地址表示主机,使用数字表示端口号;
-i:指定要监听的网卡接口,“-i any”表示抓取所有网卡接口上的数据包。
-v:输出一个稍微详细的信息
-t:不打印时间戳
-e:显示以太网帧头部;
-c:仅抓取指定数量的包
-x:以十六禁止显示数据包中的内容,但是不显示头部
-XX:与-x相同不过还打印每个十六进制对应的ASCII码,并且打印头部;
-s:设置抓包时的抓取长度
-S:以绝对值显示TCP报文段的序号,而不是相对值
-w:将tcpdump输出以特殊的格式定向到某个文件
-r: 以文件读取数据包信息并显示。
tcpdump还可以分为三个形式:类型,方向,协议。
  类型:host:主机名(或者IP地址);net:CIDR表示的网络地址;port:端口号;portrange:端口号范围
  方向:src:指定数据包的发送端;dst:指定数据包的目的端。
  协议:指定目的协议;
可参考 man tcpdump

lsof

  lsof 是列出当前系统打开的文件描述符的工具。通过该工具能够了解到感兴趣的进程打开了哪些文件描述符。
  lsof 选项包括:
-i:显示socket文件描述符,lsof -i [4/6] [protocol] [@hostname|ipaddr] [:service|port]
其中 4和6分别表示IPV4和IPV6;protocol表示传输层协议,可以是TCP和UDP;hostname表示主机名,ipaddr指定主句的ip地址;service表示服务名;port指定端口号;
-u,显示指定用户启动的所有进程打开的所有文件的描述符
-c,显示指定的命令打开所有的文件描述符
两者后都要跟参数。
-p,显示指定进程打开的所有文件的文件描述符;
-t,仅显式打开了目标文件描述符的进程pid
COMMAND,执行程序所使用的终端命令
PID:文件描述符所属进程PID
USER :描述拥有该文件描述符的用户名
FD:文件描述符的描述,cwd:文件目录,rtd:用户的根目录 txt:进程的运行程序代码,mem表述直接映射到内存中的文件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值