我需要做什么(通过Linux的“tcpdump”):
• 电子商务应用服务器:192.168.1.2、192.168.1.3、192.168.1.4。-这就是我想要捕捉的(根据这些确切的 IP 进行过滤)。不是 IP 范围(子网)或单个 IP 地址,只是几个 IP 地址/服务器。
• 此范围内还有其他应用程序,例如 PayRoll App 位于 192.168.1.5,我不希望在捕获中看到任何此类流量。
我曾尝试过:
tcpdump 0 "/tmp" "host 192.168.1.2 or host 192.168.1.3 or host 192.168.1.4" 100000
并且:
tcpdump 0 "/tmp" "ip.host==192.168.1.2 or ip.host==192.168.1.3 or ip.host==192.168.1.4" 100000
两者都返回语法错误。
任何帮助深表感谢。
答案1
你的情况的基本语法是
tcpdump -i <interface to capture on> <filters>
将会<filters>
扩展为类似
'(host 192.168.1.2 or host 192.168.1.3 or host 192.168.1.4) and (port 80 or port 443)'
如果您的电子商务应用程序将使用端口 80 和 443 进行通信。单引号很重要,否则您的 shell 可能会将括号 () 视为特殊字符,这对于将参数分组很重要。
在开头添加 -v 和 -n 参数 ( tcpdump -v -n -i ...
) 将增加输出的详细程度并禁用名称解析(加快输出速度)
答案2
tcpdump -vvv -enni <interface> host 192.168.1.2 or host 192.168.1.3 or host 192.168.1.4 and port XYX -s0 -w /var/tmp/yourfile.pcap
此过滤器仅捕获 192.168.1.4 的 XYX 端口以及其他主机的所有流量