Linux tcpdump选项用于查找进程并启动通信

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

我正在使用Linux命令行,运行以下命令时:

 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))