使用nping测试验证网络连接问题。
基础探测模式
- --tcp-connect
用途:无特权TCP连接探测模式(模拟普通TCP三次握手)。 - --tcp
用途:TCP探测模式(直接构造原始TCP包,可自定义报文头)。 - --udp
用途:UDP探测模式(发送自定义UDP包)。 - --icmp
用途:ICMP探测模式(发送自定义ICMP包,如Ping请求)。 - --arp
用途:ARP/RARP探测模式(发送ARP请求或响应包)。 - --tr, --traceroute
用途:路由跟踪模式(需与TCP/UDP/ICMP模式配合,显示路径节点)。
TCP CONNECT模式
- -p,
--dest-port <端口范围>
用途:设置目标端口(如 80 或 1-1000)。 - -g,
--source-port <端口号>
用途:设置源端口(仅适用于TCP连接模式)。
TCP PROBE模式(原始包)
- -g,
--source-port <端口号>
用途:设置源端口。 - -p,
--dest-port <端口范围>
用途:设置目标端口。 - --seq
<序列号>
用途:设置TCP序列号。 - --flags
<标志列表>
用途:设置TCP标志位(如 SYN, ACK, RST)。 - --ack
<确认号>
用途:设置TCP确认号。 - --win
<窗口大小>
用途:设置TCP窗口大小。 - --badsum
用途:使用无效校验和(测试防火墙/设备处理错误包的能力)。
UDP模式参数
- -g,
--source-port <端口号>
用途:设置源端口。 - -p,
--dest-port <端口范围>
用途:设置目标端口。 - --badsum
用途:使用无效校验和。
ICMP模式参数
- --icmp-type
<类型>
用途:设置ICMP类型(如 8 表示回显请求)。 - --icmp-code
<代码>
用途:设置ICMP代码(与类型配合使用)。 - --icmp-id
<ID>
用途:设置ICMP标识符(用于匹配请求/响应)。 - --icmp-seq
<序号>
用途:设置ICMP序列号。 - --icmp-redirect-addr
<地址>
用途:设置ICMP重定向地址。 - --icmp-param-pointer
<指针>
用途:设置参数问题指针(用于ICMP错误报文)。
ARP/RARP模式参数
- --arp-type
<类型>
用途:设置ARP类型(如 ARP、ARP-reply、RARP)。 - --arp-sender-mac
<MAC地址>
用途:设置发送方MAC地址。 - --arp-sender-ip
<IP地址>
用途:设置发送方IP地址。 - --arp-target-mac
<MAC地址>
用途:设置目标MAC地址。 - --arp-target-ip
<IP地址>
用途:设置目标IP地址。
IPv4选项
- -S,
--source-ip <IP地址>
用途:设置源IP地址。 - --dest-ip
<IP地址>
用途:设置目标IP地址(替代命令行目标参数)。 - --tos
<服务类型>
用途:设置IP头部的服务类型字段(8位)。 - --id
<ID>
用途:设置IP标识字段(16位)。 - --df
用途:设置“不分片”标志。 - --mf
用途:设置“更多分片”标志。 - --evil
用途:设置保留位(用于测试异常包处理)。 - --ttl
<跳数>
用途:设置生存时间(TTL)。 - --badsum-ip
用途:使用无效IP校验和。 - --ip-options
<选项>
用途:设置IP选项(如路由记录、时间戳)。 - --mtu
<大小>
用途:设置MTU(触发分片)。
IPv6选项
- -6,
--IPv6
用途:启用IPv6模式。 - --hop-limit
<跳数>
用途:设置跳数限制(类似IPv4的TTL)。 - --traffic-class
<类>
用途:设置流量类别(类似IPv4的TOS)。 - --flow
<标签>
用途:设置流标签。
以太网选项
- --dest-mac
<MAC地址>
用途:设置目标MAC地址(禁用ARP解析)。 - --source-mac
<MAC地址>
用途:设置源MAC地址。 - --ether-type
<类型>
用途:设置以太网类型(如 0x0800 表示IPv4)。
负载选项
- --data
<十六进制字符串>
用途:添加自定义十六进制负载。 - --data-string
<文本>
用途:添加自定义ASCII文本负载。 - --data-length
<长度>
用途:生成指定长度的随机负载。
回显模式(客户端/服务器)
- --echo-client
<密码>
用途:作为客户端发送加密回显请求。 - --echo-server
<密码>
用途:作为服务器监听回显请求。 - --echo-port
<端口>
用途:设置回显服务的端口。 - --no-crypto
用途:禁用加密和认证。 - --once
用途:服务器仅接受一次连接后退出。 - --safe-payloads
用途:清除回显包中的应用数据。
时间与性能
- --delay
<时间>
用途:设置探测包之间的延迟(如 1s、100ms)。 - --rate
<速率>
用途:设置每秒发送的包数(如 1000 表示千包/秒)。
杂项
- -h,
--help
用途:显示帮助信息。 - -V,
--version
用途:显示版本信息。 - -c,
--count <次数>
用途:指定发送的探测轮次。 - -e,
--interface <接口名>
用途:指定网络接口(如 eth0)。 - -H,
--hide-sent
用途:隐藏发送的包(仅显示接收的响应)。 - -N,
--no-capture
用途:不捕获响应包(仅发送)。 - --privileged
以完全权限运行(需root),允许原始套接字操作
场景:构造自定义协议头、ARP欺骗
权限与数据包构造控制
- --privileged
以完全权限运行(需root),支持构造自定义协议头和底层操作(如ARP欺骗)。 - --unprivileged
非特权模式运行,依赖系统协议栈(无法发送裸TCP/ICMP包)。 - --send-eth
在数据链路层发送原始以太网帧(需同时启用--privileged权限)。 - --send-ip
使用IP层原始套接字发送包(自动处理IP头校验和)。 - --bpf-filter
<规则>
自定义BPF过滤规则(如tcp and src host 192.168.1.1),精准控制响应包捕获。
输出与调试控制
- -v
每增加一次,提升一级输出详细度(默认0级): - -v1:显示发送/接收包的基本信息。
- -v3:显示数据包MAC/IP头详情。
- -v[level]
直接设置详细度等级(如-v4显示传输层协议详情)。 - -d
每增加一次,提升一级调试信息(默认0级): - -d1:显示数据包构造过程。
- -d3:输出协议交互的十六进制dump。
- -q/-q[N]
降低输出冗余度(-q3直接静默,仅显示错误)。 - --quiet
最小化输出(等同于-q9),仅显示最终统计结果。 - --debug
最大调试模式(等同于-v9 -d9),输出完整二进制包内容。
常用命令示例
--tcp-connect 使用系统TCP协议栈完成三次握手建立真实连接--模拟客户端验证服务可用性(如测试HTTP服务响应)
nping -p 80,443 --tcp-connect 192.168.1.1
--tcp 自定义发送原始TCP报文(需管理员权限)--端口扫描(SYN扫描)、协议栈压力测试
nping -p 80,443 --tcp 192.168.1.1
--udp 发送UDP数据包--检测UDP服务状态(如DNS、NTP端口)或测试丢包率
nping -p 53,123,162 --udp 192.168.1.1
--icmp 发送ICMP报文(如Echo Request)--检测主机存活状态、网络延迟及路径MTU(类似传统ping)
nping --icmp 192.168.1.1
--arp 发送ARP请求或响应包--探测局域网内主机MAC地址或检测ARP欺骗攻击nping --arp 192.168.1.1
组合命令示例
TCP端口扫描,向目标80、443端口发送10次SYN包,TTL设为64,检测端口开放状态
nping --tcp -p 80,443 192.168.1.1 --flags SYN --ttl 64 -c 10
模拟HTTP客户端连接,建立TCP连接后发送HTTP请求,验证服务响应内容
nping --tcp-connect -p 80 192.168.1.1 --data-string "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n"
ICMP网络延迟测试,以每秒50包速率发送100次ICMP请求,统计延迟及丢包率
nping --icmp -c 100 --rate 50 192.168.1.1

浙公网安备 33010602011771号