Back to prev

Linux Network

Dec 28, 2021
Linkang Chan
@Jesse Chan

本篇笔记记录一些在类 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:显示标识符和进程号