提问:本人经常用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协议完成探测目的。
上面提到的IP地址是与笔者所用计算机在同一个网段中的一台服务器,只不过在其上安装了防火墙过滤了ICMP数据包,同样我们对另一个IP地址——10.82.114.1进行探测,该计算机处于路由器之后,路由器上设置了ACL禁止ICMP协议数据包的通过。那么我们使用tracetcp命令会得到什么效果呢?在命令行模式中输入tracetcp 10.82.114.1后可以得出该IP的计算机名——win2000s,以及到达该地址所需要走的路径(路由),需要两跳达到该主机。同样情况下使用系统自带的ping命令将永远得到request timed out的提示,而使用tracert 10.82.114.1虽然可以通过两跳,但是两跳后就再也探测不到了,依然会收到request timed out的反馈信息。
小提示:
经过笔者测试发现假如本地计算机安装了一些软件防火墙,那么tracetcp将无法很好的工作,例如Zone Alarm,,Kerio,SyGate等。所以出现问题时我们需要将这些防火墙或代理工具关闭。不过庆幸的是tracetcp与XP系统自带的防火墙没有冲突,我们可以正常使用。
三,更多附加功能:
实际上tracetcp小工具有很多参数,我们可以通过不同参数以及参数的不同组合实现更多的功能。在命令行模式下输入tracetcp -?后回车就可以查看其帮助信息,所有参数都会罗列出来。
小提示:
实际上tracetcp是一个小型扫描器,我们可以通过他对某台计算机的相应端口进行扫描。直接使用tracetcp ip:port命令即可。
四,总结:
不管是采取哪种方法只要我们将tracert和ping命令所使用的默认协议进行更改即可,这样就不会因为ICMP协议被过滤而无法探测远程主机了。该工具适合在设置了禁止ICMP数据包传输的网络或者服务器安装了防火墙等情况下对主机运行状态进行探测。所以总体上讲tracetcp小工具是网络治理员检测网络的好帮手。
Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...
07-05
Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...
07-05
KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...
07-05
Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...
07-05