使用 iftop 通过特定端口的网络流量
Network traffic through a particular port using iftop
我有一个使用 https 的进程。我使用 ps
找到了它的 PID,并使用命令 lsof -Pan -p PID -i
获取它所在的端口号 运行。
我需要 iftop 来查看数据传输。我现在使用的过滤器是
iftop -f "port http 57787"
。
我认为这没有给我正确的输出。
有人可以帮助我使用 iftop 的正确过滤器,以便我知道仅通过此端口的流量吗?
我在这里看到 2 个问题:
1/ 打错了吗?正确的过滤选项是 -f(small "f")。 -F(大写 "F")选项用于 net/mask.
2/ 虽然 iftop
文档没有明确说明,但过滤语法似乎是给出的几个示例中的 pcap
语法(并且使用 ldd
我可以看到是的,iftop
二进制文件链接到 libpcap
)。所以带有 http
的过滤器根本无效。要查看 pcap
过滤语法的文档,请查看 pcap-filter (7) - packet filter syntax
手册页。在您的示例中,"tcp port 57787" 之类的过滤器就可以了。 pcap
不做第 5 层及以上协议的解析,例如 http(pcap 过滤器由内核中的 BPF 处理,所以在第 4 层以上你自己做,因为那是内核业务的 none ).
总而言之,这些看起来像 iperf
个错误。它应该拒绝您的“-F”选项,甚至使用“-f”而不是退出并返回错误代码,因为 pcap
将拒绝过滤器表达式。没什么大不了的,iftop
是一个适度的程序。 请参阅下面的编辑。
编辑:
我刚刚查看了iftop 1.0pre4版本的源代码,在iftop.c
中查看set_filter_code()
及其调用者packet_init()
并没有这么明显的错误。它正确退出并出错,但是...
错误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
糟糕! "Could not parse net/mask: port http 57787"!这是一个错误:它应该立即退出。
我有一个使用 https 的进程。我使用 ps
找到了它的 PID,并使用命令 lsof -Pan -p PID -i
获取它所在的端口号 运行。
我需要 iftop 来查看数据传输。我现在使用的过滤器是
iftop -f "port http 57787"
。
我认为这没有给我正确的输出。 有人可以帮助我使用 iftop 的正确过滤器,以便我知道仅通过此端口的流量吗?
我在这里看到 2 个问题:
1/ 打错了吗?正确的过滤选项是 -f(small "f")。 -F(大写 "F")选项用于 net/mask.
2/ 虽然 iftop
文档没有明确说明,但过滤语法似乎是给出的几个示例中的 pcap
语法(并且使用 ldd
我可以看到是的,iftop
二进制文件链接到 libpcap
)。所以带有 http
的过滤器根本无效。要查看 pcap
过滤语法的文档,请查看 pcap-filter (7) - packet filter syntax
手册页。在您的示例中,"tcp port 57787" 之类的过滤器就可以了。 pcap
不做第 5 层及以上协议的解析,例如 http(pcap 过滤器由内核中的 BPF 处理,所以在第 4 层以上你自己做,因为那是内核业务的 none ).
总而言之,这些看起来像 请参阅下面的编辑。iperf
个错误。它应该拒绝您的“-F”选项,甚至使用“-f”而不是退出并返回错误代码,因为 pcap
将拒绝过滤器表达式。没什么大不了的,iftop
是一个适度的程序。
编辑:
我刚刚查看了iftop 1.0pre4版本的源代码,在iftop.c
中查看set_filter_code()
及其调用者packet_init()
并没有这么明显的错误。它正确退出并出错,但是...
错误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
糟糕! "Could not parse net/mask: port http 57787"!这是一个错误:它应该立即退出。