Linux tcpdump选项用于查找进程并启动通信
我正在使用Linux命令行,运行以下命令时:Linux tcpdump选项用于查找进程并启动通信,linux,tcpdump,Linux,Tcpdump,我正在使用Linux命令行,运行以下命令时: tcpdump -n dst host destsitename tcpdump -n dst host stackoverflow.com 若要查看作为源的服务器是否与此域通信,我如何才能找到作为源的服务器进行通信的进程 我的问题是在“tcpdump”中应该使用哪个选项 运行netstat-avnp并获取(最后一列) 运行ps-ef | fgrep并查看该属于什么 如果您知道端口,可以尝试: lsof -i :1234 使用lsof而不是n
tcpdump -n dst host destsitename
tcpdump -n dst host stackoverflow.com
若要查看作为源的服务器是否与此域通信,我如何才能找到作为源的服务器进行通信的进程
我的问题是在“tcpdump”中应该使用哪个选项
netstat-avnp
并获取
(最后一列)ps-ef | fgrep
并查看该
属于什么如果您知道端口,可以尝试:
lsof -i :1234
使用
lsof
而不是netstat
的好处是在Unix/OS X上不支持-p
。按站点名称使用lsof和grep:
$: lsof -i |grep mapscii.me
$: telnet 16678 zersh 3u IPv4 1789302 0t0 TCP 192.168.21.180:43148->mapscii.me:telnet (ESTABLISHED)
或netstat:
$ netstat anlpt |grep mapscii.me
tcp 0 0 192.168.21.180:43168 mapscii.me:telnet ESTABLISHED
尝试使用下一个脚本:
LOCAL_IP="src_ip"
TARGET_IP="..."
while read x; do
port=$( echo $x | grep "IP ${LOCAL_IP}" | awk '{print $3}' | sed "s/${LOCAL_IP}.//" )
if [ ! -z ${port} ]; then
lsof -Pni :${port}
fi
done <<< "$( tcpdump -nn -c1 host ${TARGET_IP} )"
LOCAL\u IP=“src\u IP”
TARGET_IP=“…”
读x时;做
端口=$(echo$x | grep“IP${LOCAL_IP}”| awk'{print$3}'| sed“s/${LOCAL_IP}.//”)
如果[!-z${port}];然后
lsof-Pni:${port}
fi
完成在linux上,您还可以使用ss
命令(它取代了不推荐使用的netstat
命令):
tcpdump不能为您这样做。使用netstat
和类似工具查找哪些进程拥有哪些套接字。当我进行tcpdupm时,我得到了14:46:36.702758 IP 10.64.13.205.50356>64.15.129.80.80:Flags[S],seq 1677599293,win 29200,options[mss 1460,sackOK,TS val 4013456 ecr 0,nop,wscale 7],长度0,但如果我甚至不知道进程名称,如何使用netstat?顺便说一句,所有流量转到64.15.129.80.80:netstat将为您提供服务器上的所有连接以及相应的pid
s,您可以|grep
感兴趣的地址/端口
while read x; do port=$(echo $x | grep "IP ${LOCAL_IP}" | awk '{print $3}' | sed "s/${LOCAL_IP}.//"); if [ ! -z ${port} ]; then lsof -Pni :${port}; fi; done <<< "$( tcpdump -nn -c2 host ${TARGET_IP} )" >> /tmp/result &
$ ss -p dst stackoverflow.com
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
tcp ESTAB 0 0 192.168.2.5:50676 151.101.65.69:https users:(("firefox",pid=4657,fd=251))