如何掌握Linux发送报文的高级技巧?

基础网络测试工具

ping(ICMP报文)

  • 用途:测试主机连通性,发送ICMP Echo请求。
  • 命令示例
    ping -c 4 192.168.1.1  # 发送4个ICMP包到指定IP
    ping6 fe80::1          # IPv6测试
  • 参数说明
    • -c [次数]:指定发送次数。
    • -s [字节]:设置数据包大小(如-s 1500)。

traceroute(路径追踪)

  • 用途:跟踪报文路径,识别网络瓶颈。
  • 命令示例
    traceroute -n google.com  # 禁用DNS解析(-n)

发送自定义数据包

hping3(高级报文生成)

  • 安装sudo apt install hping3(Debian/Ubuntu)
  • 功能:支持TCP/UDP/ICMP自定义报文,常用于压力测试。
  • 示例
    hping3 -S -p 80 -c 5 192.168.1.1  # 发送5个SYN包到80端口(半连接)
    hping3 --udp -s 53 -d 100 -p 53 8.8.8.8  # 发送100字节UDP包到DNS端口
  • 关键参数
    • -S:SYN标志(TCP)。
    • --udp:UDP模式。
    • -d [字节]:数据长度。

nc(Netcat)

  • 用途:TCP/UDP数据传输与端口测试。
  • 示例
    echo "Hello" | nc -u 192.168.1.1 1234  # UDP发送文本到1234端口
    nc -zv 192.168.1.1 22                  # 测试TCP端口22是否开放

HTTP/HTTPS报文发送

curl(HTTP请求工具)

  • 发送GET/POST请求
    curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com
  • 参数说明
    • -X [方法]:指定HTTP方法(GET/POST等)。
    • -H "头字段":添加请求头。
    • -d @file.json:从文件加载数据。

wget(下载与请求)

  • 示例
    wget --post-data="user=admin&pass=123" http://example.com/login

原始报文构造(高级)

scapy(Python库)

  • 安装pip install scapy
  • 功能:构造任意协议层报文(如ARP、DNS、自定义TCP标志)。
  • 示例
    from scapy.all import *
    # 发送ICMP报文
    send(IP(dst="192.168.1.1")/ICMP()/"Payload Data")
    # 构造TCP SYN包
    send(IP(dst="example.com")/TCP(dport=80, flags="S"))

raw socket(C语言)

  • 底层开发示例
    #include <sys/socket.h>
    #include <netinet/ip.h>
    int sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);  // 创建原始套接字
    struct sockaddr_in dest;
    dest.sin_port = htons(80); 
    sendto(sock, buffer, sizeof(buffer), 0, (struct sockaddr*)&dest, sizeof(dest));
  • 权限要求:需root权限(sudo)。

安全与合规性

  1. 法律风险
    • 未经授权扫描或发包可能违反《网络安全法》及当地法规。
    • 仅限测试自有设备或获得书面授权的环境。
  2. 防护建议
    • 使用防火墙限制外发包:iptables -A OUTPUT -d 目标IP -j DROP
    • 避免DDoS工具(如hping3的洪水模式)在公共网络使用。

方法选择指南

场景 推荐工具
基础连通性测试 ping, traceroute
HTTP接口调试 curl, wget
自定义TCP/UDP数据 nc, hping3
协议栈测试/安全研究 scapy, 原始套接字

引用说明基于Linux手册页(man ping/man hping3)、Scapy官方文档及RFC 792(ICMP协议),实践操作需结合网络原理与系统权限管理。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6565.html

(0)
酷番叔酷番叔
上一篇 2025年7月7日 12:00
下一篇 2025年7月7日 12:13

相关推荐

  • 如何用软连接快速映射目录?

    在Linux系统中,软连接(Symbolic Link)是一种特殊的文件类型,它像“快捷方式”一样指向另一个文件或目录,通过软连接映射目录,你可以让多个位置访问同一目录内容,无需复制数据,节省空间并简化管理,以下是详细操作指南:命令格式:ln -s <源目录绝对路径> <软连接名称>参数……

    2025年6月13日
    1300
  • Linux环境变量设置错误后果?

    Linux环境变量存储路径、用户设置和系统配置等关键参数,正确设置可提升开发效率并保障软件正常运行。

    2025年7月12日
    1000
  • 如何用Linux开发效率翻倍?

    环境准备安装Linux系统推荐发行版:Ubuntu(新手友好)、Fedora(前沿技术)、Debian(稳定性高),通过官方镜像制作启动盘安装,或使用虚拟机(VirtualBox/VMware),更新系统与依赖sudo apt update && sudo apt upgrade # Debia……

    3天前
    1300
  • 如何安全移除MySQL核心包及依赖?

    在Linux上彻底卸载MySQL的完整指南卸载MySQL前,请务必备份所有数据库数据,避免不可逆的数据丢失,以下步骤覆盖主流Linux发行版(Ubuntu/Debian 和 CentOS/RHEL),包含服务停止、软件移除、残留清理及验证方法,卸载前的关键准备备份数据库(防止误删): mysqldump -u……

    1天前
    300
  • 如何轻松快速提升网站流量?

    使用 basename 命令(推荐)功能:从完整路径中提取文件名(含扩展名)或移除扩展名,语法:basename [路径] [后缀] # 后缀用于移除扩展名示例:提取文件名(含扩展名)basename /home/user/docs/report.txt # 输出:report.txt移除扩展名basename……

    1天前
    300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信