如何用TCP协议ping主机

【如何用TCP协议ping主机】提问:本人经常用ping命令和tracert命令了解网络中主机的状态,看其是否运行正常 。但是最近公司网管在路由器和服务器上设置了策略,将icmp协议彻底禁止使用了 。众所周知由于ping和tracert命令用到是icmp协议 。所以在这种情况下我就没法使用上述两个命令检测网络中主机状态了 。请问有没有其他工具可以帮我解决此问题,或者将ping和tracert命令使用的协议从icmp更改到tcp或udp协议 。急切等待it168高手的回答 。
解答:从传统上讲ping命令和tracert命令都是使用ICMP协议来检测网络中的存活主机以及路由命令 。所以说当服务器安装了防火墙或者在路由器上禁止了ICMP协议,那么我们在计算机上使用ping和tracert命令就无法收到满足的回复信息 。这也是上面那位网友所碰到的棘手问题 。在这种情况下我们如何检测服务器是否在线或者网络中某台主机是否运转正常呢?
实际上我们有很多种方法来解决上面网友所碰到的问题,最简单的就是在交换机上而不是计算机上来通过tracert检测 。因为交换机上,非凡是CISCO设备中traceroute命令是使用UDP协议的,所以即使ICMP协议被禁止使用依然可以通过UPD协议探询路由信息,反馈回主机状态 。
另外我们在unix或Linux系统中也是可以使用tracert命令来检测网络中主机状态的,和cisco中使用的协议一样,在linux和UNIX中tracert是通过udp协议运转的 。
当然对于我们大多数用户来说,一没有路由器交换机的治理权限,二没有安装linux或unix操作系统 。那么如何解决ICMP协议被禁止使用,并通过tracert探询主机路由和当前状态呢?在这里给大家推荐一个小工具,名字叫tracetcp 。实际上他是一个tracert工具,但是使用的不是ICMP协议而是TCP协议 。所以即使ICMP协议被禁止使用,我们也可以通过tracetcp这个小工具完成tracert命令 。
一,预备工作:
虽然tracetcp是一个绿色工具,我们不用安装 。而且总共只有几百KB的容量 。但是由于该工具需要用到类似于sniffer的功能,所以需要winpcap的支持 。假如没有安装winpcap的话,在运行tracetcp时会提示丢失packet.dll和wincap.dll文件 。
WinPcap小档案:
软件版本: V3.1
软件语言:英文
软件类型:免费软件
软件大小:456 KB
适用平台:win2000/XP/2003
下载地址:http://count.skycn.com/softdownload.PHP?id=11534&url=http://jsyz.driversky.com/down/WinPcap_3_1.exe
第一步:下载winpcap程序并双击进行安装 。
第二步:同意winpcap的安装许可协议 。
第三步:复制必须文件到本地硬盘 。
第四步:完成所有安装工作,winpcap已经进驻我们的操作系统点finish按钮结束安装工作 。
二,使用tracetcp探测网络主机:
我们需要在命令行模式下执行tracetcp来探测网络主机 。可以把下载来的tracetcp压缩包解压到一个目录中 。然后通过任务栏的“开始”->“运行”,输入CMD后回车进入命令行模式,然后进入刚才解压的目录中 。执行tracetcp ip即可开始探测 。例如笔者尝试tracert 10.82.0.30这台主机 。那么应该执行tracetcp 10.82.0.30,这样我们就会得到该主机的反馈信息了,即使该主机上安装了防火墙禁止ICMP协议传输或者路由交换设备上设置了访问控制列表过滤了ICMP协议我们都可以探测到该主机的真实状态 。而不使用tracetcp小工具,直接通过ping或者tracert命令访问10.82.0.30则会收到request timed out或者destination net unreachable的信息,表面上看是该主机不可达,实际是ICMP探测数据包被过滤造成的 。我们使用tracetcp和直接用系统自带的ping,tracert对同一个IP地址进行追踪得出了不同的结果,事实证实即使ICMP协议被禁止使用也可以通过tracetcp工具使用TCP协议完成探测目的 。

推荐阅读