我使用以下代码通过端口捕获传入和传出的tcp数据包:
tcpdump -i any -s 0 -vvv -A port 3727 or port 5016 or port 3724 -w /home/admin/dump1.cap
但是tcpdump只捕获传入的数据包,我需要同时传入和传出数据包。谁知道我的错误在哪里?
提前致谢。
答案 0 :(得分:6)
tcpdump -i any -s 0 -vvv -A port 3727 or port 5016 or port 3724 --direction=in --direction=out -w /home/admin/dump1.cap
- direction = in表示传入流量 --direction = out表示传出流量。
您可以在tcpdump的手册页上找到更多内容。 http://www.tcpdump.org/tcpdump_man.html
答案 1 :(得分:2)
如果您的流量通过ipsec隧道,可能会发生这种情况(通过运行ipsec statusall
检查情况是否如此)。要捕获解密的数据包,您可以添加IPtables规则以将ipsec流量转发到nflog接口:
iptables -t mangle -I PREROUTING -m policy --pol ipsec --dir in -j NFLOG --nflog-group 5
iptables -t mangle -I POSTROUTING -m policy --pol ipsec --dir out -j NFLOG --nflog-group 5
然后tcpdump nflog接口:
tcpdump -i nflog:5 -y IPV4 -s0 -A port 3727 or port 5016 or port 3724
完成后,请记住删除nflog规则!
iptables -t mangle -D PREROUTING -m policy --pol ipsec --dir in -j NFLOG --nflog-group 5
iptables -t mangle -D POSTROUTING -m policy --pol ipsec --dir out -j NFLOG --nflog-group 5
来源:https://wiki.strongswan.org/projects/strongswan/wiki/CorrectTrafficDump