也许这是“tcpflow”问题
我编写了一个脚本来监控http流量,并安装了tcpflow
,然后使用grep
它可以工作(你应该发起一个http请求,例如curl www.163.com
)
sudo tcpflow -p -c -i eth0 port 80 2>/dev/null | grep '^Host: '
它的输出结果如下(持续不断地):
Host: config.getsync.com
Host: i.stack.imgur.com
Host: www.gravatar.com
Host: www.gravatar.com
但我不能继续使用管道
无效(没有输出任何内容)
sudo tcpflow -p -c -i eth0 port 80 2>/dev/null | grep '^Host: ' | cut -b 7-
无法工作(没有任何输出)。sudo tcpflow -p -c -i eth0 port 80 2>/dev/null | grep '^Host: ' | grep H
当我将 sudo tcpflow
替换为 cat foo.txt
时,它可以正常工作:
cat foo.txt | grep '^Host: ' | grep H
那么,管道、grep或tcpflow有什么问题吗?
更新:
这是我的最终脚本:https://github.com/zhengkai/config/blob/master/script/monitor_outgoing_http.sh