本文介绍三个网络测试工具,分别是 tcpping、hping 和 mtr。
tcpping
ping
通过发送 ICMP 消息来测试网络 RTT (Round-Trip Time),但是因特网中的路由器可能会设置防火墙禁止 ICMP,即使没有被墙,在网络状况很差的情况下,路由器或主机会丢弃 ICMP 消息而优先传输 TCP包。
tcpping
工具工作在 TCP 层,通过发送伪造的 TCP SYN 包并侦听来自服务器或中间设备返回的 SYN/ACK 或 RST 。代码不到1000行,调用 libpcap 和 libnet 提供的接口,打印与 ping
近乎相同测试结果。
tips: 使用 nmap 进行端口扫面,然后对扫描到端口进行 tcpping 测试。open 的端口返回 SYN/ACK,closed 的端口返回 RST。
Install
Usage
hping
hping3
是一个能够发送自定义 TCP/IP 包(报文内容、包大小)并显示目标回复的网络工具,它甚至能够在支持的协议下传输文件。你可以用 hping3 进行如下操作:
- 防火墙测试
- 高级端口扫描
- 使用不同的协议、包大小、TOS(type of servie)及IP分片进行网络性能的测试
- 发现路径的 MTU
- 在严格的防火墙环境下传输文件
- 多协议路由跟踪
- Firewalk-like usage
- 远程操作系统探测
- TCP/IP 栈审计
- … etc.
Install
Usage
MTR
mtr
在单个网络诊断工具中集成了traceroute
和ping
。当它启动时,它会监测运行mtr的主机和目标主机之间的网络连接。在确定机器之间的每个网络跳的地址之后,它向每个机器发送序列ICMP ECHO请求,以确定到每个机器的链路的质量,并打印每一跳的运行统计。与 hping 类似,它也可以发送 TCP SYN 或 UDP 请求。
Install
Usage
本文仅介绍了 hping3 和 mtr 工具简单的使用方法,后面遇到高级用法会持续进行更新。
Reference:
1 Testing firewall rules with Hping3 - examples.