linux服务器 抓包命令 tcpdump

本文详细介绍了使用tcpdump进行网络数据抓取的各种命令及用法。包括如何过滤指定主机/IP、端口、协议的数据包,如何抓取本地环路数据包,以及如何通过逻辑语句进一步精确过滤条件,并提供了抓包数据的存储方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tcpdump -i any -s0 -w /home/tcp.pcap

单独总结tcpdump抓包的常用命令

主要语法

  • 过滤主机/IP: 
    • tcpdump -i eth1 host 172.16.7.206
    • 抓取所有经过网卡1,目的IP为172.16.7.206的网络数据 

       

  • 过滤端口: 
    • tcpdump -i eth1 dst port 1234
    • 抓取所有经过网卡1,目的端口为1234的网络数据 

       

  • 过滤特定协议: 
    • tcpdump -i eth1 udp
    • 抓取所有经过网卡1,协议类型为UDP的网络数据 

       

  • 抓取本地环路数据包 
    • tcpdump -i lo udp 抓取UDP数据
    • tcpdump -i lo udp port 1234 抓取端口1234的UDP数据
    • tcpdump -i lo port 1234 抓取端口1234的数据 

       

  • 特定协议特定端口: 
    • tcpdump udp port 1234
    • 抓取所有经过1234端口的UDP网络数据 

       

  • 抓取特定类型的数据包: 
    • tcpdump -i eth1 ‘tcp[tcpflags] = tcp-syn’
    • 抓取所有经过网卡1的SYN类型数据包
    • tcpdump -i eth1 udp dst port 53
    • 抓取经过网卡1的所有DNS数据包(默认端口) 

       

  • 逻辑语句过滤: 
    • tcpdump -i eth1 ‘((tcp) and ((dst net 172.16) and (not dst host 192.168.1.200)))’
    • 抓取所有经过网卡1,目的网络是172.16,但目的主机不是192.168.1.200的TCP数据 

       

  • 抓包存取: 
    • tcpdump -i eth1 host 172.16.7.206 and port 80 -w /tmp/xxx.cap
    • 抓取所有经过网卡1,目的主机为172.16.7.206的端口80的网络数据并存储

 

 

### 如何使用 `tcpdump` 在 Linux抓包并将结果保存为文件 在 Linux 系统中,`tcpdump` 是一种强大的网络数据包分析工具。通过 `-w` 参数可以将捕获的数据包保存到文件中以便后续分析。 以下是关于如何使用 `tcpdump` 将抓取的数据包保存至文件的具体说明: #### 基本语法 `tcpdump` 的基本命令结构如下: ```bash sudo tcpdump -i <interface> [filter_options] -w <output_file> ``` - **`<interface>`**: 指定要监听的网络接口名称(例如 `eth0`, `lo` 或其他可用网卡)。可以通过运行 `ifconfig` 或 `ip a` 查看当前系统的网络接口列表[^1]。 - **`[filter_options]`**: 可选参数用于过滤特定类型的流量,比如基于端口、IP 地址或协议类型设置条件。常见的过滤器包括 `port`(指定端口号)、`host`(指定主机地址)以及 `proto`(指定协议类型如 TCP/UDP/IP/FDDI 等)[^4]。 - **`<output_file>`**: 输出目标文件路径及名称,通常建议扩展名为 `.pcap` 表示这是一个标准的封包记录档案格式[^2]。 #### 实际案例演示 假设需要监控本地机器上所有经过 HTTP 协议(默认端口80)通信的信息,并把它们存储在一个叫做 `http_traffic.pcap` 文件里,则执行以下指令即可完成操作过程: ```bash sudo tcpdump -i eth0 'tcp port 80' -w http_traffic.pcap ``` 此条目中的各个部分含义分别为: - `-i eth0`: 设定了正在使用的物理连接设备为目标——即 Ethernet Adapter 0; - `'tcp port 80'`: 定义了一个筛选规则来仅获取那些涉及到了传输控制层服务号等于或者接近于Web服务器所采用的标准数值范围内的活动情况报告; - `-w http_traffic.pcap`: 明确指出最终成果应该被写入哪个具体位置下的二进制形式文档之中去加以保留下来供以后查阅之需[^3]. 当按上述方式启动程序之后,在终端窗口里面会显示出实时更新的相关统计数据直到手动终止进程为止(`Ctrl+C`);与此同时也会自动创建相应名目的PCAP档桉存放在工作目录底下等待进一步处理利用. #### 注意事项 为了确保能够顺利地实施整个流程需要注意几个要点: 1. 需要有足够的权限来进行这些动作,默认情况下可能需要用到超级用户的身份认证才能访问底层硬件资源; 2. 如果打算跨平台分享此类资料的话最好保持一致性的命名约定便于识别理解其用途所在; 3. 对于大型项目而言单独依靠单一手段未必足够全面可靠因此往往还需要配合wireshark之类的图形界面应用程序共同协作达成更佳效果. ```python import os os.system('sudo tcpdump -i eth0 port 80 -w output.pcap') print("Data has been successfully written to the file.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值