为了监视服务器和 Web 服务器之间的 HTTP 流量,我目前使用tcpdump. 这工作正常,但我想摆脱输出中的一些多余数据(我知道tcpflow和wireshark,但它们在我的环境中不容易获得)。
从tcpdump手册页:
打印所有进出端口 80 的 IPv4 HTTP 数据包,即仅打印包含数据的数据包,而不是,例如,SYN 和 FIN 数据包以及仅 ACK 数据包。
tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
这个命令
sudo tcpdump -A 'src example.com 和 tcp 端口 80 和 (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2) ) != 0)'
提供以下输出:
19:44:03.529413 IP 192.0.32.10.http > 10.0.1.6.52369: Flags [P.], seq 918827135:918827862, ack 351213824, options 437noval, 439pnoval, 437noval, 4399, 439
E...@....... ....P..6.0.......D...... __..e=3...__HTTP/1.1 200 OK …
如果我在zsh里面bash(在 macOS Sierra 上)运行,为什么$SHELL仍然指向/bin/bash,而不是/bin/zsh?
$ echo $SHELL
/bin/bash
$ zsh
% echo $SHELL
/bin/bash
Run Code Online (Sandbox Code Playgroud)