使用场景
暴露在外网环境的服务通常会只对白名单内的来源机器开放服务使用的端口,比如 B 机器只对 A 机器开放 TCP 8999 端口,这样会导致 A ping B 收不到回包,无法查看 TTL 与丢包率。
hping 能指定 IP/ICMP/TCP/UDP 进行 ping, 对于上述场景,使用 hping 的 TCP 模式即可解决。
- hping 支持的模式
# hping --help
Mode
default mode TCP
-0 --rawip RAW IP mode
-1 --icmp ICMP mode
-2 --udp UDP mode
-8 --scan SCAN mode.
Example: hping --scan 1-30,70-90 -S www.target.host
-9 --listen listen mode
CentOS 安装 hping
yum install libpcap-devel
yum install tcl-devel
ln -s /usr/include/pcap/bpf.h /usr/include/net/bpf.h
make
rm -vf /usr/include/net/bpf.h
make install
cp -f hping3 /usr/sbin/
chmod 755 /usr/sbin/hping3
ln -s /usr/sbin/hping3 /usr/sbin/hping
ln -s /usr/sbin/hping3 /usr/sbin/hping2
例子
- ping tcp://www.baidu.com:80 with SYN packet
# hping www.baidu.com -p 80 -c 10 -d 100
HPING www.baidu.com (eth0 14.215.177.38): NO FLAGS are set, 40 headers + 100 data bytes
^C
--- www.baidu.com hping statistic ---
5 packets tramitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/