我有一个使用https的流程。我使用ps
找到了它的PID,并使用命令lsof -Pan -p PID -i
来获取它正在运行的端口号。
我需要iftop来查看数据传输。我现在使用的过滤器是
iftop -f "port http 57787"
。
我不认为这给了我正确的输出。 有人可以帮助我使用iftop正确的过滤器,以便我知道只有这个端口的流量?
答案 0 :(得分:3)
我在这里可以看到2个问题:
1 /这是一个错字吗?过滤的正确选项是-f(小" f")。 -F(大写" F")选项用于net / mask。
2 /虽然iftop
文档未明确说明,但过滤的语法似乎是给出的几个示例中的pcap
语法(并且使用ldd
我可以看到,是的, iftop
二进制文件与libpcap
链接。因此,http
的过滤器无效。要查看pcap
过滤语法的文档,请查看pcap-filter (7) - packet filter syntax
手册页。在您的示例中,过滤器如" tcp端口57787"没关系。 pcap
不进行第5层及以上的协议剖析,例如http(pcap过滤器由内核中的BPF处理,所以在第4层以上,你自己就是这样,因为没有内核业务)。
总而言之,这些看起来像见编辑方式。iperf
个错误。它应该拒绝你的" -F"选项,甚至用" -f"而是退出并显示错误代码,因为pcap
将拒绝过滤器表达式。没什么大不了的,iftop
是一个适度的程序。
编辑:
我刚检查了iftop版本1.0pre4的源代码,并且set_filter_code()
中的packet_init()
及其来电者iftop.c
看起来没有明显的错误。它正确退出并出现错误,但是......
错误2,使用" -f"选项,但您的错误过滤器语法:
jbm@sumo:~$ sudo iftop -f "port http 57787"
interface: eth0
IP address is: 192.168.1.67
MAC address is: 8c:89:a5:57:10:3c
set_filter_code: syntax error
没关系。
错误1," -F"而不是" -f",有一个问题:
jbm@sumo:~$ sudo iftop -F "port http 57787"
(一切似乎或多或少都好,但随后退出程序)
Could not parse net/mask: port http 57787
interface: eth0
IP address is: 192.168.1.67
MAC address is: 8c:89:a5:57:10:3c
糟糕! "无法解析网络/掩码:端口http 57787"!这是一个错误:它应该马上退出。