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

每天掌握一个Linux命令 - hping3

Linux 命令工具 hping3 使用指南

  • Linux 命令工具 hping3 使用指南
    • 一、工具概述
    • 二、安装方式
      • 1. Debian/Ubuntu 系统
      • 2. CentOS/RHEL 系统(需先启用 EPEL 源)
      • 3. 从源码编译(适用于其他 Linux 发行版)
    • 三、核心功能
    • 四、基础用法
      • 1. 基本语法格式
      • 2. 常用参数说明
      • 3. 基础示例
        • (1)发送 ICMP 回显请求(类似 ping)
        • (2)TCP SYN 扫描目标 80 端口
        • (3)指定源端口发送 UDP 数据包
    • 五、进阶操作
      • 1. 端口扫描进阶
        • (1)TCP 全连接扫描(需 root 权限)
        • (2)UDP 端口批量扫描(检测 53、123、5060 端口)
      • 2. 路径追踪(类似 traceroute)
      • 3. 压力测试(生成 1000 个/秒的 SYN 流量)
      • 4. 自定义 TCP 标志位组合
    • 六、实战案例
      • 案例 1:检测防火墙对 SYN 包的过滤策略
      • 案例 2:测试 UDP 服务连通性(DNS 服务器)
      • 案例 3:追踪网络路径并统计延迟
    • 七、注意事项

Linux 命令工具 hping3 使用指南

一、工具概述

hping3 是一款功能强大的开源网络测试工具,基于命令行界面,主要用于生成和分析网络数据包,支持 TCP、UDP、ICMP 等多种协议。其核心特点包括:

  • 灵活构造自定义数据包(修改源/目标 IP、端口、协议标志位等)。
  • 支持流量生成、端口扫描、路径追踪、性能测试(如带宽、延迟)等场景。
  • 输出结果包含详细的网络指标(如 TTL、往返时间、数据包丢失率等)。

二、安装方式

1. Debian/Ubuntu 系统

sudo apt update
sudo apt install hping3

2. CentOS/RHEL 系统(需先启用 EPEL 源)

sudo yum install epel-release
sudo yum install hping3

3. 从源码编译(适用于其他 Linux 发行版)

wget https://github.com/commixproject/hping3/archive/master.zip
unzip master.zip
cd hping3-master
make && sudo make install

三、核心功能

功能分类具体能力
数据包构造自定义协议(TCP/UDP/ICMP)、源/目标地址、端口、标志位(如 SYN、ACK、FIN)等。
端口扫描支持 TCP SYN 扫描、ACK 扫描、UDP 扫描等,检测目标端口开放状态。
路径追踪类似 traceroute,通过递增 TTL 值追踪数据包路由路径。
压力测试生成指定速率的流量,测试网络带宽或服务稳定性。
网络诊断检测网络延迟、丢包率,分析防火墙规则对数据包的过滤策略。

四、基础用法

1. 基本语法格式

hping3 [OPTIONS] [DESTINATION]

2. 常用参数说明

参数作用
-c COUNT发送 COUNT 个数据包后停止。
-p PORT指定目标端口(TCP/UDP 协议时使用)。
-s SOURCE_PORT指定源端口(默认随机)。
-t TTL设置数据包 TTL 值。
-A设置 TCP ACK 标志位(用于 ACK 扫描)。
-S设置 TCP SYN 标志位(用于 SYN 扫描或建立连接)。
-U设置 TCP URG 标志位。
-F设置 TCP FIN 标志位(用于 FIN 扫描)。
-d DATA_SIZE设置数据包数据部分大小(单位:字节,默认 32 字节)。
-e DATA自定义数据包数据内容(如 -e "test payload")。
-I INTERFACE指定发送数据包的网络接口(如 eth0)。

3. 基础示例

(1)发送 ICMP 回显请求(类似 ping)
hping3 www.baidu.com
(2)TCP SYN 扫描目标 80 端口
hping3 -c 1 -S -p 80 www.baidu.com
  • 输出结果中 flags=SA 表示端口开放(SYN+ACK 响应)。
(3)指定源端口发送 UDP 数据包
hping3 -c 1 -u -s 5000 -p 1234 target.server.com

五、进阶操作

1. 端口扫描进阶

(1)TCP 全连接扫描(需 root 权限)
hping3 -c 1 -s 80 -p 80 --tcp-flag SYN,ACK www.baidu.com
  • 通过模拟完整 TCP 三次握手检测端口状态。
(2)UDP 端口批量扫描(检测 53、123、5060 端口)
hping3 -c 1 -u -p 53,123,5060 target.server.com

2. 路径追踪(类似 traceroute)

hping3 --traceroute www.qq.com
  • 输出结果显示每一跳的 IP 地址和往返时间(RTT)。

3. 压力测试(生成 1000 个/秒的 SYN 流量)

hping3 -c 10000 -S -p 80 --rand-source --flood www.target.com
  • --flood:快速发送数据包(不显示详细输出)。
  • --rand-source:随机化源 IP 地址。

4. 自定义 TCP 标志位组合

hping3 -c 1 --tcp-flag SYN,FIN,URG -p 443 target.com
  • 构造包含 SYN、FIN、URG 标志的特殊数据包,测试防火墙规则。

六、实战案例

案例 1:检测防火墙对 SYN 包的过滤策略

需求:判断目标服务器是否允许外部主机发送 SYN 包到 22 端口(SSH)。
命令

hping3 -c 5 -S -p 22 target.server.com

分析

  • 若收到 flags=SA 响应:端口开放且防火墙允许 SYN 包通过。
  • 若收到 flags=RA 响应:端口关闭或防火墙拦截 SYN 包。
  • 若无响应:可能是防火墙完全丢弃该类数据包。

案例 2:测试 UDP 服务连通性(DNS 服务器)

需求:检测 DNS 服务器(8.8.8.8)的 53 端口是否响应 UDP 请求。
命令

hping3 -c 3 -u -p 53 8.8.8.8 -d 32 --data "QUERIES"

分析

  • 若输出 received=3:说明 UDP 端口可达且服务正常。
  • received=0:可能端口关闭或网络阻断 UDP 流量。

案例 3:追踪网络路径并统计延迟

命令

hping3 --traceroute --interval 0.5 -c 2 www.amazon.com

输出示例

 1. 192.168.1.1 (192.168.1.1)  0.348 ms  0.297 ms2. 202.103.24.1 (202.103.24.1)  5.672 ms  5.891 ms...
  • 每行显示一跳的 IP 地址和两次测量的 RTT 值,用于定位网络延迟节点。

七、注意事项

  1. 权限要求

    • 部分功能(如 SYN 扫描、自定义源 IP)需 root 权限,建议使用 sudo 执行。
  2. 法律与伦理

    • 严禁在未授权的网络环境中使用 hping3 进行扫描或压力测试,可能违反网络安全法规。
  3. 流量控制

    • 压力测试时避免使用 --flood 参数对生产环境发起攻击,可能导致服务瘫痪。
  4. 协议兼容性

    • UDP 扫描结果可能受限于目标主机的 UDP 协议实现(部分服务对空 UDP 包不响应)。
  5. 结果解读

    • 端口扫描结果需结合防火墙策略综合判断,例如 ACK 扫描可能无法区分端口开放与防火墙放行。
  6. 替代工具

    • 若需图形化界面,可结合 Wireshark 分析 hping3 生成的数据包。

通过合理使用 hping3,可深入分析网络层与传输层的协议行为,适用于网络工程师、渗透测试人员等技术场景。使用前务必确保操作合法性,并谨慎对待敏感网络环境。

相关文章:

  • Windows 账号管理与安全指南
  • 【深度学习新浪潮】以Dify为例的大模型平台的对比分析
  • Torch Geometric GCN训练心得
  • selenium-自动更新谷歌浏览器驱动
  • 从多巴胺的诱惑到内啡肽的力量 | 个体成长代际教育的成瘾困局与破局之道
  • NLP学习路线图(十九):GloVe
  • 香橙派3B学习笔记5:Linux文件系统分区_A/B系统分区
  • 【C++】23. unordered_map和unordered_set的使用
  • 【深度学习新浪潮】多模态模型如何处理任意分辨率输入?
  • Qt信号与槽机制深度解析
  • 图像任务中的并发处理:线程池、Ray、Celery 和 asyncio 的比较
  • Posix API
  • FPGA仿真中阻塞赋值(=)和非阻塞赋值(<=)区别
  • SystemVerilog—Interface语法(二)
  • 【性能调优系列】深入解析火焰图:从基础阅读到性能优化实战
  • 汽车软件 OTA 升级技术发展现状与趋势
  • uniApp页面交互
  • MySQL DDL操作全解析:从入门到精通,包含索引视图分区表等全操作解析
  • 需求调研文档——日志文件error监控报警脚本
  • 大数据学习(127)-hive日期函数
  • 安全员c证电子证书查询/湖南seo推广多少钱
  • 石家庄建设项目公示网/抖音seo供应商
  • 邢台网站建设信息/西安网站建设维护
  • web前端开发盒子模型/爱站seo查询软件
  • 临清网站建设/登录百度账号注册
  • 建设工程质量监督竣工备案网站/优化大师官网入口