本篇笔记记录一些在类 Unix 系统上操作查看网络相关的内容,包括一些基本网络管理,查询,性能监测等等内容。
抓包
一般我们会使用 wireshark 来抓包,这个工具可以抓取网络中的数据包,并且可以对数据包进行分析。但是在 Linux 上我们可以通过如下的方式进行抓包:
sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
tcpdump过滤HTTP的POST请求:
sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
tcpdump过滤HTTP的请求和响应头信息,以及请求和响应消息体信息:
tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
tcpdump -X -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
[
命令的详细解释]:
查看端口使用情况
$ netstat -ntlp #查看当前所有tcp端口·
$ netstat -ntulp | grep 80 #查看所有80端口使用情况·
$ netstat -an | grep 3306 #查看所有3306端口使用情况·
相关参数的解释:
- n:不进行 DNS 解析,只显示 IP 地址和端口号;
- t:显示 TCP 端口
- u:显示 UDP 端口
- l: 显示监听的 socket
- p:显示标识符和进程号