当前位置: 首页 > news >正文

TCPDUMP抓包明确显示IP地址和端口号

经常使用tcpdump进行抓包的同学可以忽略了,这篇偏于使用扫盲;首先,tcpdump抓包目的IP显示为hostname,如果端口是知名端口,显示为协议名而不是端口号。这种默认其实略有问题的:

如果我们使用默认的hostname:localhost.localdomain,那么很容易误认为是本地回环地址请求:一个远程IP访问了本地回环地址,这就很怪;还是显示IP地址爽利:IPv4还是IPv6也是一目了然。那么怎么明确显示IP地址和端口号呢?使用-n和-nn参数,使用举例如下:

# 抓包21端口的包(不限制源和目的)
tcpdump -i ens192 port 21
15:40:49.542333 IP 192.168.1.190.46108 > xxxx-229.ftp: Flags [S]
15:40:49.542395 IP xxxx-229.ftp > 192.168.1.190.46108: Flags [S.]

# -n :显示ip地址,而不是hostname
tcpdump -i ens192 -n port 21  
15:23:56.952026 IP 192.168.1.190.36944 > 192.168.1.229.ftp: Flags [S]
15:23:56.952133 IP 192.168.1.229.ftp > 192.168.1.190.36944: Flags [S.]

# -nn :显示端口号而不是协议名
tcpdump -i ens192 -n -nn port 21
15:23:45.333967 IP 192.168.1.190.36840 > 192.168.1.229.21: Flags [S]
15:23:45.334036 IP 192.168.1.229.21 > 192.168.1.190.36840: Flags [S.]

扩展

  1. 过滤源IP地址:

     bashCopy codesudo tcpdump -i eth0 src host 192.168.1.2

    这将捕获源IP地址为192.168.1.2的流量。

  2. 过滤目的IP地址:

     bashCopy codesudo tcpdump -i eth0 dst host 192.168.1.2

    这将捕获目的IP地址为192.168.1.2的流量。

  3. 过滤源和目的IP地址:

     bashCopy codesudo tcpdump -i eth0 src host 192.168.1.2 and dst host 192.168.1.3

    这将捕获源IP地址为192.168.1.2且目的IP地址为192.168.1.3的流量。

  4. 过滤特定协议:

     bashCopy codesudo tcpdump -i eth0 icmp

    这将捕获 ICMP 协议的流量。你可以替换 icmp 为其他协议名,如 tcpudp

  5. 过滤源和目的IP地址以及特定协议:

     bashCopy codesudo tcpdump -i eth0 src host 192.168.1.2 and dst host 192.168.1.3 and icmp

    这将捕获源IP地址为192.168.1.2、目的IP地址为192.168.1.3且协议为 ICMP 的流量。

  6. 过滤特定源端口:

     bashCopy codesudo tcpdump -i eth0 src port 8080

    这将捕获源端口为8080的流量。

  7. 过滤特定目的端口:

     bashCopy codesudo tcpdump -i eth0 dst port 80

    这将捕获目的端口为80的流量。

  8. 过滤特定源和目的端口:

     bashCopy codesudo tcpdump -i eth0 src port 8080 and dst port 80

    这将捕获源端口为8080且目的端口为80的流量。

  9. 过滤除特定端口之外的流量:

     bashCopy codesudo tcpdump -i eth0 not port 22

    这将捕获除端口22之外的所有流量。

相关文章:

  • Blender学习:荧光树桩
  • Affinity VS PS 2024最新功能详细对比?Affinity Photo与Photoshop比哪家强?
  • Unity中Shader指令优化(编译后指令解析)
  • 算法与数据结构(二十五)TopK问题:基于快排的Python模板
  • 使用正则表达式时-可能会导致性能下降的情况
  • 文字处理工具Word mac软件特点
  • 【LeeCode】438.找到字符串中所有字母异位词
  • Opencv获取笔记本摄像头
  • 知识点滴 - 什么是AECS-PRM
  • JVM中 Minor GC 和 Full GC 的区别
  • 【报名】2023产业区块链生态日暨 FISCO BCOS 开源六周年生态大会
  • centos用什么命令可查看版本号
  • 【西南交大swjtu微机与接口技术实验】D/A变换实验实验三:波形发生器
  • 【DevOps】Jenkins:配置jenkins 流水线/多分支流水线任务构建成功通知企业微信@相关人(二)
  • 【超详细教程】基于html+js实现轮播图
  • [NodeJS] 关于Buffer
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【面试系列】之二:关于js原型
  • 3.7、@ResponseBody 和 @RestController
  • Apache Pulsar 2.1 重磅发布
  • C++11: atomic 头文件
  • hadoop集群管理系统搭建规划说明
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • node 版本过低
  • Python socket服务器端、客户端传送信息
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • python学习笔记-类对象的信息
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 多线程事务回滚
  • 高性能JavaScript阅读简记(三)
  • 爬虫模拟登陆 SegmentFault
  • 思维导图—你不知道的JavaScript中卷
  • 移动端 h5开发相关内容总结(三)
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 云大使推广中的常见热门问题
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • PostgreSQL之连接数修改
  • 阿里云ACE认证之理解CDN技术
  • 移动端高清、多屏适配方案
  • ​iOS安全加固方法及实现
  • ​你们这样子,耽误我的工作进度怎么办?
  • #HarmonyOS:基础语法
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (3)nginx 配置(nginx.conf)
  • (4)logging(日志模块)
  • (day 12)JavaScript学习笔记(数组3)
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (十八)三元表达式和列表解析
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)visual stdio 书签功能介绍
  • (转)菜鸟学数据库(三)——存储过程
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET 回调、接口回调、 委托