其他
tcpdump
1 环境变量
.bashrc
# x1-cli
export BUTTERFLY_HANDLER_CLI_NAME="x1-cli"
export BUTTERFLY_HOME=/home/work/x1-cli
[[ -s "${BUTTERFLY_HOME}/bin/x1-bash-complete.sh" ]] && source ${BUTTERFLY_HOME}/bin/x1-bash-complete.sh
export PATH=${BUTTERFLY_HOME}/bin:$PATH在 shell 脚本中,
-s用于文件测试来判断文件是否存在且非空。
2 tcpdump
监视指定主机和端口的数据包
tcpdump tcp port 6379 and host 10.xx.xx.xx
-w 选项用来把数据报文输出到文件
文件需要使用 tcpdump -r 来读取监控 HTTP 流量,包括请求和响应标头以及消息正文(需要将端口 8585 改为实际使用的端口)
tcpdump -A -s 0 'tcp port 8585 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -A: 这个选项意味着以 ASCII 格式显示数据包的内容,使得文本数据更容易阅读。-s 0: 这个选项设置了捕获每个数据包的长度。0表示捕获整个数据包,不进行截断。
tcpdump 的输出
最基本也是最重要的信息就是数据报的源地址/端口和目的地址/端口,上面的例子第一条数据报中,源地址 ip 是 192.168.1.106,源端口是 56166,目的地址是 124.192.132.54,目的端口是 80。 > 符号代表数据的方向。
此外,上面的三条数据还是 tcp 协议的三次握手过程,第一条就是 SYN 报文,这个可以通过 Flags [S] 看出。下面是常见的 TCP 报文的 Flags:
[S]: SYN(开始连接)[.]: 没有 Flag[P]: PSH(推送数据)[F]: FIN (结束连接)[R]: RST(重置连接)
而第二条数据的 [S.] 表示 SYN-ACK,就是 SYN 报文的应答报文。
3 对比两个文件夹是否一致
diff -urNa dir1 dir2
4 排查 vip 残余流量
将 vip 后端地址指向到 tcp 测试地址
将会打印如下信息
Last updated