本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Ping
众所周知,Ping 命令是利用 ICMP 协议来检测网络连通状态和时延测量的一个基础网络命令,而基于 Ping 所发展出来的衍生命令也是繁多,包括:hrping、hping、tcping、smokeping 等等,功能上较基础 Ping 命令相应有所扩展,在不同的场景上也是应用较多。
TCPing
其中 TCPing 命令就是网络中一般用来检查端口存活的一个命令,操作类似于 "Ping",但是通过 TCP 端口工作的。
TCPing 通过建立到网络主机的一个连接来模拟基于 TCP 上的 "Ping" ,测量 SYN 和 SYN/ACK 之间的时间。
操作系统默认无此命令工具
在 C:\Windows\System32 下放置 tcping.exe 程序后
不加任何参数时,默认检查的端口是 80 ,端口检测开放以及测量时间如图。
简单的端口参数应用,443 端口同样开放。
详细用法不再赘述,可自行搜索。
www.elifulkerson.com/projects/tc…
Wireshark 解析 TCPing
通过 Wireshark 抓包解析 TCPing 程序,可发现对应的 4 次 probe,以 TCP 三次握手建连,最后以 FIN 包结束连接。 成功的三次握手也证明对端 443 端口的开放。
TCPing 未解之谜
以上罗里吧嗦了半天,文章重点其实是想说碰到的一个奇怪现象。。。😅 百思不得其解,以此文记录之,留待有缘的一天解谜之。 🤣
在公司办公网一台主机偶然 TCPing 了一台业务网服务器的 80 端口,TCPing 结果显示 80 端口开放,而实际上本地主机包括 Wireshark 以及 netstat 检查根本没有建立相关的 TCP 连接,而且在防火墙日志上可看到 TCPing SYN 的包被丢弃(往目标服务器所在区域会经过防火墙,并未开放相关策略),种种验证结果与 TCPing 端口 open 结果完全不相符。
Tcping 目标服务器 80 端口,结果显示 Port is open(赤裸裸的假象)。但 netstat 检查结果仅显示 SYN_SENT 状态,未建立连接。
Wireshark 抓包结果同样仅显示 SYN 包(4次)发送,无响应,未正常建立连接。
忽略源端口不一样,netstat 和 wireshark 取的结果非同一次。