/netcat

集成网络抓包工具及提供便捷的使用方式,便于快速实现网络问题的监控、分析

Primary LanguageGoMIT LicenseMIT

netcat

集成网络抓包工具及提供便捷的使用方式,便于快速实现网络问题的监控、分析

GitHub license

支持

  • MySQL
  • Redis
  • AMQP (eg. Rabbit MQ)
  • Mongodb
  • Kafka

使用


docker build ./docker/build -t tomhjx/netcat

  • debug

docker run -it --rm -v /Users/tom/Repos/github.com/tomhjx/netcat/docker/build/mybin:/mybin  -v /Users/tom/Repos/github.com/tomhjx/lab/php-framework-thinkphp5/src:/res  --net container:php-framework-thinkphp5_thinkphp5-fpm_1 tomhjx/netcat /bin/sh

  • pcap
docker run -it --rm --cap-add=ALL -v /Users/tom/Work/project/github.com/tomhjx/netcat/resources:/data/resources  --net container:lab_app_console tomhjx/netcat:0.1.0-alpine-3.14.2 /bin/sh -c "tcpdump -i eth0 -s 0 -w /data/resources/mysql.pcap"

docker run -it --rm --cap-add=ALL -v /Users/tom/Work/project/github.com/tomhjx/netcat/resources:/data/resources  --net container:lab_app_console tomhjx/netcat:0.1.0-alpine-3.14.2 /bin/sh -c "tcpdump -i eth0 -s 0 -w /data/resources/rabbit.pcap"


  • 截取某个容器发起的请求
docker run -it --rm --net container:目标容器名称 tomhjx/netcat mysql

嗅探流程设计

  • 处理器
    • 定义输出器信道,开启输出器协程
      • 输出器
        • 对接输出设备
      • 输出器信道读取内容,作为输出器入参
      • 输出器实现执行细节
    • 定义解析器信道,开启解析器协程
      • 解析器
        • 解析内容,转换为结构化对象
      • 解析器信道读取内容,作为解析器入参
      • 解析器实现执行细节
      • 解析器执行结果写入输出器信道
    • 启动输入器
      • 输入器
        • 读取输入源(文件、流量)
        • 解包
        • 包体结构化
      • 输入器执行结果写入解析器信道

依赖

参考