Mausezahn - 網絡流量生成與測試工具(支持從鏈路層到應用層的協議模擬)

Mausezahn?是一個?網絡流量生成與測試工具,主要用于模擬各種網絡協議行為、測試網絡設備性能、驗證安全策略或進行故障排查。它支持從底層鏈路層(如 Ethernet、VLAN)到高層應用層(如 HTTP、DNS)的協議模擬,常用于網絡工程師、安全研究人員和開發人員測試網絡環境的健壯性。


核心功能

1.?多協議支持

  • 鏈路層:Ethernet II、802.3 SNAP、VLAN(802.1Q)、STP、CDP 等。
  • 網絡層:IPv4/IPv6、ICMP、ARP、RIP、OSPF、BGP 等。
  • 傳輸層:TCP、UDP、SCTP。
  • 應用層:HTTP、DNS、DHCP、SIP、FTP、Telnet 等。
  • 自定義協議:支持構造任意協議字段(如修改 TCP 標志位、IP TTL 等)。

2.?流量生成模式

  • 持續發送:以固定速率或隨機間隔發送數據包。
  • 突發模式:模擬短時間高流量(如 DDoS 攻擊測試)。
  • 響應式發送:根據接收到的數據包動態生成響應(如 ARP 回復、ICMP Echo)。

3.?高級特性

  • 隨機化字段:可隨機化 MAC/IP/端口等字段,模擬真實流量。
  • 負載填充:支持自定義數據內容(如文本、二進制或隨機數據)。
  • 時間控制:精確控制數據包發送時間(微秒級精度)。
  • 多線程/多接口:支持多網卡同時發送流量。

4.?典型應用場景

  • 網絡設備測試:驗證交換機、路由器、防火墻的吞吐量、延遲和丟包率。
  • 安全測試:模擬惡意流量(如端口掃描、SYN Flood、DNS 放大攻擊)。
  • 協議驗證:測試自定義協議實現或第三方設備的協議兼容性。
  • 故障排查:重現網絡問題(如 CRC 錯誤、MTU 不匹配)。

    基本用法

    1.?發送 ICMP Echo 請求(Ping)
    mausezahn eth0 icmp -A 192.168.1.1 -B 192.168.1.254 -c 10
    • -A:源 IP。
    • -B:目標 IP。
    • -c:發送 10 個包。
    2.?發送 UDP 洪水(模擬 DDoS)
    mausezahn eth0 udp -A 192.168.1.1 -B 192.168.1.254 -p 53 -D "RANDOM_DATA" -f 1000 -i 0.001
    • -p:目標端口(DNS 默認 53)。
    • -D:負載內容(隨機數據)。
    • -f:每秒 1000 包。
    • -i:包間隔(毫秒)。
    3.?構造自定義 TCP 包(修改標志位)
    mausezahn eth0 tcp -A 192.168.1.1 -B 192.168.1.254 -S 12345 -D 80 --tcp-flags SYN,ACK
    • -S:源端口。
    • -D:目標端口。
    • --tcp-flags:設置 TCP 標志位(如?SYN,ACK)。
    4.?模擬 HTTP GET 請求
    mausezahn eth0 tcp -A 192.168.1.1 -B 8.8.8.8 -S 54321 -D 80 -T "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n"
    • -T:指定 HTTP 請求內容。

    與同類工具對比

    工具定位優勢
    Mausezahn全協議層流量生成支持底層到高層的協議模擬,靈活性強,適合復雜場景測試。
    Scapy交互式數據包構造Python 接口,適合腳本化測試,但性能較低。
    hping3網絡探測與攻擊模擬專注 TCP/IP 層攻擊(如端口掃描、防火墻繞過),但協議支持較少。
    iperf3帶寬測試專注于 TCP/UDP 吞吐量測試,不支持協議細節構造。

    注意事項

    1. 權限要求:需?root?權限(直接操作網卡)。
    2. 網絡影響:高流量測試可能影響生產環境,建議在隔離網絡中使用。
    3. 協議兼容性:部分協議(如 BGP、OSPF)需深入理解協議細節才能有效測試。
    4. 替代方案:若需更簡單的流量生成,可考慮?tcpreplay(重放 PCAP 文件)或?nmap(端口掃描)。

    ?一、安裝前準備

    1. 安裝Git和基礎工具
      用于從GitHub克隆源碼:

      sudo yum install -y git gcc-c++ make
    2. 配置國內Yum源(可選)
      解決依賴包下載慢的問題,推薦阿里云或清華源:

      sudo yum install -y wget
      sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
      sudo yum clean all && sudo yum makecache

    3. 下載安裝包 #git clone https://github.com/uweber/mausezahn.git

    ?二、安裝依賴包

    Mausezahn編譯依賴以下開發庫:

    sudo yum install -y cmake libpcap-devel libnet-devel libcli-devel

    注意:若提示libcli-devel找不到,需更換Yum源(如阿里云/清華源)12。


    三、源碼編譯與安裝

    1. 克隆源碼倉庫

      git clone https://github.com/uweber/mausezahn.git
      cd mausezahn
    2. 編譯安裝
      執行編譯三部曲:

      cmake .      # 生成Makefile ( 注意:cmake 空格 點)
      make         # 編譯源碼(忽略告警)
      sudo make install  # 安裝到系統

      cmake失敗,檢查依賴包是否全部安裝成功12。

    安裝依賴#? sudo yum install -y cmake libpcap-devel libnet-devel libcli-devel

    cmake . ? ? ?# 生成Makefile
    ?make ? ? ? ? # 編譯源碼(忽略告警)

    ?2060 ?cmake .
    ?2061 ?make?
    ?2064 ?make install
    ?2065 ?mz --help

    # mz --help
    mz: invalid option -- '-'mz/getopts: Option -c requires an argument.Invalid command line parameters!Mausezahn 0.40 - (C) 2007-2010 by Herbert Haas - http://www.perihel.at/sec/mz/
    |
    | USAGE: mz [options] [interface] keyword | arg_string | hex_string
    |
    | Short option description (see doc or manpage for more information):
    |  -h                    Prints this information.
    |  -4		     IPv4 mode (default)
    |  -6		     IPv6 mode
    |  -c <count>            Send the packet count times (default: 1, infinite: 0).
    |  -d <delay>            Apply delay between transmissions. The delay value can be
    |                        specified in usec (default, no additional unit needed), or in
    |                        msec (e. g. 100m or 100msec), or in seconds (e. g. 100s or 100sec).
    |  -r                    Multiplies the specified delay with a random value.
    |  -p <length>           Pad the raw frame to specified length (using random bytes).
    |  -a <Src_MAC|keyword>  Use specified source mac address, no matter what has
    |                        been specified with other arguments. Keywords see below.
    |                        Default is own interface MAC.
    |  -b <Dst_MAC|keyword>  Same with destination mac address.
    |                        Keywords are: 
    |          rand            use a random MAC address
    |          bc              use a broadcast MAC address
    |          own             use own interface MAC address (default for source MAC)
    |          stp             use IEEE 802.1d STP multicast address
    |          cisco           use Cisco multicast address as used for CDP, VTP, or PVST+
    |  -A <Src_IP>           Use specified source IP address (default is own interface IP).
    |  -B <Dst_IP|DNS_name>  Send packet to specified destination IP or domain name.
    |  -P <ASCII Payload>    Use the specified ASCII payload.
    |  -f <filename>         Read the ASCII payload from a file.
    |  -F <filename>         Read the hexadecimal payload from a file.
    |  -Q <[CoS:]vlan>       Specify 802.1Q VLAN tag and optional Class of Service. You can
    |                        specify multiple 802.1Q VLAN tags (QinQ...) by separating them
    |                        via a comma or a period (e. g. '5:10,20,2:30').
    |  -t <packet_type>      Specify packet type for autobuild (you don't need to care for
    |                        encapsulations in lower layers. Most packet types allow/require
    |                        additional packet-specific arguments in an arg_string.
    |                        Currently supported types: arp, bpdu, cdp, ip, icmp, udp, tcp,
    |                        dns, rtp, syslog, lldp.
    |                        For context-help use 'help' as arg_string!
    |  -T <packet_type>      Specify packet type for server mode. Currently only rtp is supported.
    |                        Enter -T help or -T rtp help for further information.
    |  -M <MPLS label>       Insert a MPLS label. Enter '-M help' for a syntax description.
    |  -v|V                  Verbose and more verbose mode
    |  -q                    Quiet mode, i. e. even omit 'important standard short messages'.
    |  -S                    Simulation mode: DOES NOT put anything on the wire. This is
    |                        typically combined with one of the verbose modes (v or V).

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/pingmian/87337.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/pingmian/87337.shtml
    英文地址,請注明出處:http://en.pswp.cn/pingmian/87337.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    08-three.js Textures

    Three.js Journey — Learn WebGL with Three.jsThe ultimate Three.js course whether you are a beginner or a more advanced developerhttps://threejs-journey.com/?c=p3 使用原生 JavaScript 首先是靜態頁面的放置位置,如果使用Vite模版配置,可以直接放在 /static/ …

    git 倉庫取消合并的分支

    要取消 Git 倉庫中某次特定的分支合并(例如第一次合并),同時保留其他分支的合并,需要通過 Git 的版本控制功能來操作。以下是具體的步驟和方法,假設你想撤銷某次合并(例如某個提交),并確保其他合并不受影響: 背景假設 你有一個 Git 倉庫,主分支(例如 main)上已經合…

    【從歷史數據分析英特爾該如何擺脫困境】

    與大多數其他分析師不同&#xff0c;自2013年以來&#xff0c;筆者就一直在積極強調英特爾未來將遭遇冰山&#xff0c;最終我們預測英特爾將在試圖執行其之前的戰略時破產。盡管我們更愿意采用與英特爾不同的代工廠方法&#xff08;即與臺積電成立合資企業&#xff09;&#xf…

    【PyTorch】PyTorch中張量(Tensor)微分操作

    PyTorch深度學習總結 第六章 PyTorch中張量(Tensor)微分操作 文章目錄 PyTorch深度學習總結前言一、torch.autograd模塊二、主要功能和使用方法1. 張量的 requires_grad 屬性2. backward() 方法3. torch.no_grad() 上下文管理器三、函數總結前言 上文介紹了PyTorch中張量(Ten…

    Rust 項目實戰:Flappy Bird 游戲

    Rust 項目實戰&#xff1a;Flappy Bird 游戲 Rust 項目實戰&#xff1a;Flappy Bird 游戲理解 Game loop開發庫&#xff1a;bracket-libbracket-terminalCodepage 437導入 bracket-lib 創建游戲游戲的模式添加玩家添加障礙最終效果項目源碼 Rust 項目實戰&#xff1a;Flappy Bi…

    Gin 中間件詳解與實踐

    一、中間件的核心概念 定義 中間件是Web開發中非常重要的概念&#xff0c;它可以在請求到達最終處理函數之前或響應返回客戶端之前執行一系列操作。Gin 框架支持自定義和使用內置的中間件&#xff0c;讓你在請求到達路由處理函數前進行一系列預處理操作。 它是介于請求與響應處…

    非接觸式DIC測量系統:助力汽車研發與測試的創新技術應用

    近年來&#xff0c;隨著新能源汽車品牌的快速崛起&#xff0c;新車發布的節奏加快&#xff0c;層出不窮的新產品&#xff0c;給消費者帶來了全新的使用體驗。與此同時&#xff0c;變革的產品體驗也讓一些過往的汽車測試和評價標準變得不再適用&#xff0c;尤其是與過往燃油車型…

    FOC學習筆記(7)鎖相環(PLL)原理及其在電機控制中的應用

    1. 鎖相環(PLL)概述 鎖相環&#xff08;Phase-Locked Loop, PLL&#xff09;是一種閉環控制系統&#xff0c;用于使輸出信號的相位與輸入參考信號的相位同步。PLL廣泛應用于通信、電機控制、頻率合成、時鐘恢復等領域。在電機無傳感器控制&#xff08;Sensorless Control&…

    鴻蒙自定義相機的拍照頁面

    1、權限申請 "requestPermissions": [{"name": "ohos.permission.CAMERA","reason": "$string:reason_camera","usedScene": {"abilities": ["EntryAbility"]}},{"name": "oh…

    greenplum7.2并行備份及恢復

    1.并行備份 pg_dump -Fd --gp-syntax -U gpadmin -p 5432 -h 172.19.0.2 -d postgres -j 4 -f /opt/greenplum/data/postgres_backup_$(date %Y-%m-%d) 參數 含義 -Fd 使用 directory 格式&#xff08;支持并行&#xff09; --gp-syntax 使用 Greenplum 特定語法&#xff08;…

    備賽2025年初中古詩文大會:練習歷年真題,吃透知識點(0703)

    初中古詩文大會的比賽內容古詩詞、文言文各占比50%左右&#xff0c;從歷年的比賽來看&#xff0c;中考語文的古詩文部分&#xff08;35分&#xff09;涉及到的古詩詞、文言文知識點都在初中古詩文大會中考過。這些知識點掌握了&#xff0c;對于將來高中、高考也有直接的幫助。 …

    BRAKER:真核微生物cds和蛋白注釋

    https://github.com/Gaius-Augustus/BRAKER 安裝 # 第一次打開會pull這個docker docker run --user 1000:100 --rm -it teambraker/braker3:latest bash bash /opt/BRAKER/example/docker-tests/test3.sh braker.gtf&#xff1a;BRAKER 的最終基因集。 braker.codingseq&am…

    基于 Three.js 與 WebGL 的商場全景 VR 導航系統源碼級解析

    本文面向Web前端開發者、WebGL/Three.js 愛好者、對VR/AR應用開發感興趣的技術人員、智慧商場解決方案開發者。詳細介紹如何利用 WebGL (Three.js框架) 構建高性能的商場全景VR環境&#xff0c;并實現精準的室內定位與3D路徑規劃導航功能。 如需獲取商場全景VR導航系統解決方案…

    AWS CloudFormation部署雙可用區VPC網絡架構 - 完整指南

    一、模板概述 本CloudFormation模板用于在AWS上快速部署一個高可用的雙可用區VPC網絡架構,包含公有子網和私有子網。該架構是構建云原生應用的基礎,特別適合生產環境使用。 二、完整模板代碼 AWSTemplateFormatVersion: 2010-09-09 Description: Customizable dual-AZ VPC…

    2025汽車聲學升級:高透音汽車喇叭網成高端車型新標配

    隨著消費者對車載音質和靜謐性要求的提升&#xff0c;高透音汽車喇叭網正成為高端車型的差異化配置。傳統沖壓金屬網因聲學損耗大、設計單一逐漸被淘汰&#xff0c;而新一代蝕刻工藝通過微孔結構優化&#xff0c;實現了聲學性能與美學設計的雙重突破。以下是技術趨勢與市場前景…

    決策樹(Decision tree)算法詳解(ID3、C4.5、CART)

    文章目錄 一、決策樹介紹1.1 決策樹的結構特征1.2 決策樹的構建三步驟1.3 決策樹構建例子 二、ID3決策樹&#xff1a;基于信息增益的決策模型2.1 信息增益的公式與符號解析2.2 信息增益的意義2.3 ID3決策樹案例演示&#xff1a;貸款申請分類2.4 ID3決策樹缺陷 三、C4.5決策樹&a…

    python基礎-網絡的TCP、UDP協議操作

    1.tcp基本語法 # ### TCP協議 客戶端 import socket # 1.創建一個socket對象 sk socket.socket() # 2.與服務端建立連接 sk.connect( ("127.0.0.1" , 9000) ) # 3.收發數據的邏輯 """發送的數據類型是二進制字節流""" ""&q…

    基于spark的航班價格分析預測及可視化

    基于spark的航班價格分析預測及可視化 項目概況 [&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;] 點這里,查看所有項目 [&#x1f446;&#x1f446;&#x1f446;&#x1f446;&#x1f446;&#x1f446;&…

    每日算法刷題Day41 6.28:leetcode前綴和2道題,用時1h20min(要加快)

    5. 523.連續的子數組和(中等,學習) 523. 連續的子數組和 - 力扣&#xff08;LeetCode&#xff09; 思想 1.給你一個整數數組 nums 和一個整數 k &#xff0c;如果 nums 有一個 好的子數組 返回 true &#xff0c;否則返回 false&#xff1a; 一個 好的子數組 是&#xff1a;…

    拉取vue-element-admin

    這個錯誤表明 npm 在嘗試通過 SSH 克隆 GitHub 倉庫時遇到了權限問題&#xff0c;根本原因是系統無法正確處理中文用戶名路徑下的 SSH 配置。以下是詳細的解決方案&#xff1a; 解決方案 1&#xff1a;使用 HTTPS 代替 SSH&#xff08;推薦&#xff09; 修改 Git 全局配置&…