linux – 没有tcpdump的转储tcp连接

在centos框中,我喜欢转储tcp连接 – 我想看看服务器是否尝试向某个IP发送请求.通常tcpdump可以解决问题 – 但是没有安装tcpdump,并且安装软件不是一种选择(因为公司政策).我担心netstat不会向我显示单个请求.

所以我想知道我还有其他选择.我在服务器上有root访问权限.

解决方法

你肯定有 python吗?
from socket import * 
from struct import unpack 
import sys 

INTERFACE = "eth0"
TARGET = "8.8.8.8" 

if __name__ == "__main__": 
  sock = socket(AF_PACKET,SOCK_DGRAM,0x0800) 
  sock.bind((INTERFACE,0x0800)) 
  while True: 
    data = sock.recvfrom(1500,0)[0] 
    ip = inet_ntop(AF_INET,data[12:16]) 
    if ip == TARGET: 
      print "GOT TARGET" 
      sys.exit(1)

这将以“GOT TARGET”退出,提供返回匹配的IP地址.由于TCP必须在握手期间发回一些东西,因此应该从特定目标地址捕获任何内容.它不关心协议是TCP还是UDP(我也不检查).

别忘了改变TARGET和INTERFACE.

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...