| Gzu521.com我的学习网 |
|
对於windows下ping指令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 现在我就参照ping指令的辅助说明来给大家讲我使用ping时会用到的技巧,ping只有在安装了tcp/ip通讯协定以後才可以使用: ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list options: -t ping the specified host until stopped.to see statistics and continue - type control-break;to stop - type control-c. 不停的ping地方主机,直到你按下control-c。 此功能?有什麽特别的技巧,不过可以配合其他参数使用,将在下面提到。 -a resolve addresses to hostnames. 解析电脑netbios名。 例:c:\>ping -a 192.168.1.21 pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: reply from 192.168.1.21: bytes=32 time<10ms ttl=254 reply from 192.168.1.21: bytes=32 time<10ms ttl=254 reply from 192.168.1.21: bytes=32 time<10ms ttl=254 reply from 192.168.1.21: bytes=32 time<10ms ttl=254 ping statistics for 192.168.1.21: packets: sent = 4, received = 4, lost = 0 (0% loss),approximate round trip times in milli-seconds: minimum = 0ms, maximum = 0ms, average = 0ms 从上面就可以知道ip为192.168.1.21的电脑netbios名为iceblood.yofor.com。 -n count number of echo requests to send. 发送count指定的echo数据包数。 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网路速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下?知: c:\>ping -n 50 202.103.96.68 pinging 202.103.96.68 with 32 bytes of data: reply from 202.103.96.68: bytes=32 time=50ms ttl=241 reply from 202.103.96.68: bytes=32 time=50ms ttl=241 reply from 202.103.96.68: bytes=32 time=50ms ttl=241 request timed out. ……………… reply from 202.103.96.68: bytes=32 time=50ms ttl=241 reply from 202.103.96.68: bytes=32 time=50ms ttl=241 ping statistics for 202.103.96.68: packets: sent = 50, received = 48, lost = 2 (4% loss),approximate round trip times in milli-seconds: minimum = 40ms, maximum = 51ms, average = 46ms 从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由於未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。 -l size send buffer size. 定义echo数据包大小。 在默认的情?下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什麽要限制到65500byt,因为windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等於65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞於是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以後危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的指令:(以下介绍带有危险性,只用於试验,请勿轻易施於别人电脑上,否?後果自负) c:\>ping -l 65500 -t 192.168.1.21 pinging 192.168.1.21 with 65500 bytes of data: reply from 192.168.1.21: bytes=65500 time<10ms ttl=254 reply from 192.168.1.21: bytes=65500 time<10ms ttl=254 ……………… 这样它就会不停的向192.168.1.21电脑发送大小为65500byt的数据包,如果你只有一台电脑也许?有什麽效果,但如果有很多台电脑那麽就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上电脑ping一台win2000pro系统的电脑时,不到5分钟对方的网路就已经完全瘫痪,网路严重堵塞,http和Ftp服务完全停止,由此可见威力非同小可。 -f set don’t fragment flag in packet. 在数据包中发送“不要分段”标志。 在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以後路由就不会再分段处理。 -i ttl time to live. 指定ttl值在对方的系统里停留的时间。 此参数同样是帮助你检查网路运转情况的。 -v tos type of service. 将“服务类型”字段设置为tos指定的值。 -r count record route for count hops. 在“记录路由”字段中记录伝出和返回数据包的路由。 在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以後的文章中给大家讲解。以下为筥例: c:\>ping -n 1 -r 9 202.96.105.101(发送一个数据包,最多记录9个路由) pinging 202.96.105.101 with 32 bytes of data: reply from 202.96.105.101: bytes=32 time=10ms ttl=249 route: 202.107.208.187 -> 202.107.210.214 -> 61.153.112.70 -> 61.153.112.89 -> 202.96.105.149 -> 202.96.105.97 -> 202.96.105.101 -> 202.96.105.150 -> 61.153.112.90 ping statistics for 202.96.105.101: packets: sent = 1, received = 1, lost = 0 (0% loss), approximate round trip times in milli-seconds: minimum = 10ms, maximum = 10ms, average = 10ms 从上面我就可以知道从我的电脑到202.96.105.101一共通过了202.107.208.187,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路由。 -s count timestamp for count hops. 指定count指定的?点数的时间戳。 此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。 -j host-list loose source route along host-list. 利用computer-list指定的电脑列表路由数据包。连续电脑可以被中间关网?分隔(路由稀疏源)ip允许的最大?量为9。 -k host-list strict source route along host-list. 利用computer-list指定的电脑列表路由数据包。连续电脑不能被中间网?分隔(路由?格源)ip允许的最大数量为9。 -w timeout timeout in milliseconds to wait for each reply. 指定超时间隔,单位为毫秒。 此参数?有什麽其他技巧。 ping指令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的ttl值大小,粗略的判断目标主机的系统类型是windows系列还是unix/LINUX系列,一般情况下windows系列的系?返回的ttl值在100-130之间,而unix/linux系列的系统返回的ttl值在240-255之间,当然ttl的值在对方的主机里是可以修改的,windows系列的系?可以通过修改注?表以下键值实现: [hkey_local_machine\system\currentcontrolset\services\tcpip\parameters] "defaultttl"=dword:000000ff 255---ff 128---80 64----40 32----20 好了,ping命令也基本上完全讲解完了,其中还有-j,-k参数我还没有详细说明,由於某些原因也包括我自己所收集的资料过少这里也?有向大家详细介绍,请大家见谅,如果在看了这篇文章的朋友当中有知道得比我更多的,以及其他使用技巧的也希望您能告知我,并在此先谢过。 -=-= 由原先 sc教学文件区 转至此 =-=- 原发表人: ktb c:\>ping /? usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] destination-list options: -t ping the specified host until stopped. to see statistics and continue - type control-break; to stop - type control-c. -a resolve addresses to hostnames. -n count number of echo requests to send. -l size send buffer size. -f set don’t fragment flag in packet. -i ttl time to live. -v tos type of service. -r count record route for count hops. -s count timestamp for count hops. -j host-list loose source route along host-list. -k host-list strict source route along host-list. -w timeout timeout in milliseconds to wait for each reply. ping (packet internet gopher) 网路封包测试 相关资料 可用来测试远端的主机是否存在,判断网路是否正常 测试方法: 启动dos模式 > 输入 ping 210.70.11.249 指令名称 ping 使用权限 任何有效之使用者 使用方式 ping [-dfnqrrv] [-c <完成次数>] [-ig<间隔秒数>] [-i <网路介面>][-l <前置载入>] [-p <筥本样式>] [-s <封包大小>] [-t <存活数值>] [主机名称或ip位址] 说 明 使用icmp(internet control message protocol) 传输协定,侦测远端主机的网路功能是否正常,而给予回应讯息。 参 数 -c 设定完成要求回应的次数。此指令会反覆发出讯息,直到完成的次数为止。 -q 不显示指令执行过程,除开始和结束之相关讯息外。 -s 设定封包大小。 -v 显示指令执行详细过程,包括非回应讯息的资讯皆会被列出。 筥 例 1. 侦测192.168.1.1的网路功能是否正常: * ping 192.168.1.1 windows网路管理 -------------------------------------------------------------------------------- 作者:李忠宪 mailto:shane@mail1.tmtc.edu.tw -------------------------------------------------------------------------------- 前言 过去系统管理师主要负责业务是校务行政系统的管理、训练,有些学校系统管理师尚且兼管电脑教室,tanet到中小学後,系统管理师又兼网路管理师,部分教室电脑试行学校,系统管理师另须负责教室电脑的管理维护之责。简单的说,目前系统管理师一人所负责的业务,几近於一家社区电脑公司的工作量,这当然不是一般人能够做的事。因此除非有浓厚的兴趣,否则系统管理师通常都做不长久,在这样的环境中,系统管理师还必须努力求新知,以免被工作淘汰。 笔者也当过系统管理师,所以能够体认系统管理师的辛苦,希望此文能对系统管理师微有帮助! 网路规划 有效的系统管理,规划占最重要的角色。所谓规划是指以下几件事: 一、 订定网路管理政策。 二、 妥善规划校园网路。 三、 统筹设置网路服务系统。 四、 骨干频宽管制。 五、 订定ip网路节点申请核发原则。 六、 订定网路安全政策。 七、 办理教育训练,宣导并鼓励以正确的方式,来充分利用网路。 八、 对网路上不当资讯进行过滤和辅导,以确保学生身心不受伤害。 (更详细的内容,留待以後再谈) 以上每件事从一般性原则到技术层次,都有太多需要深入研究的东西。目前台北市的现况是由资讯教育辅导团帮各学校做规划,但是因为学校之间的规模、需求差异颇大,这种大原则式的规划只能着眼於经费运用与软硬体采购。对於实际管理所需要的弹性,例如:要管多严、什麽允许、什麽不允许、哪些服务要采取何种保护(身份认证、防火_澅wo、用量管制……等等),必须要由学校自行规划。 规划是一件长远的事,因为实际管理上的经验,会发现规划不当或不足之处,就有再规划的必要。在规划阶段结束後,接着网路管理师必须作好日常维护以减低网路故障的机会,万一真的发生故障,网路侦错就应该火速进行。 日常维护 日常维护的目的,是希望问题不要出现在伺服端,以免引起网路大规模的故障,另一个原因是避免小故障累积成沈痾。日常维护要做的事,包括:检查各种伺服系统运作的讯息、检查系统效能、察看是否有奇怪的程序正在执行、帐号管理、资源权限管理,略述如下: 事件检视器 在nt上要检查各种伺服系统运作的讯息,最简单的方法就是执行事件检视器,nt将事件分为系统、安全、应用程式等三类:属於硬体或系统的服务(nt提供的各种网路服务),会放在系统事件中;如果你有要求系统纪录某共享资源(目录、档案或印表机)有无违反权限之使用情形,讯息就会出现在安全事件里;应用程式事件是给非nt的网路应用程式使用,例如:netscape proxy就是属於此类。 如果你所执行的server是在nt上跑的,通常都会支援nt的事件讯息服务,如果没有支援,可能该软体有设计自己的log(日志),这也是系统管理师必须去查看的。 效能监视器 在nt上有一个内建的效能监视器,你可以从编辑选单加入一个统计项目,选取你想要分析的物件(例如:某种网路服务、cpu、记忆体),加入要统计的细项,例如:web伺服器每秒钟的传输量……等。 为了省事,在建构完一台伺服器後,应该立刻建立相关监视项目,通常要监看cpu的使用量和memory的使用量,另外应该针对该伺服器主要的服务,建立监看项目。 当然不同主机跑不同服务,在系统负荷上会有所不同,哪一种服务用量大,目前的机器够不够用来支撑该服务,从效能监视器可以得到一个比较客观可信的结果。 工作管理员 要查看目前在server上所执行的程式,可以在工作列上按滑鼠右键,然後选工作管理员,你可以检视执行中的应用程式、系统程序、效能。常驻型程式放在「程序」活页里,还有微软的网路服务程式也是,非微软的服务当然是在「应用程式」活页里。 为了安全起见,wsh(windows script host)这种服务一定不要开启。其他的程序如果有陌生没见过的,要加以留意,除非你知道自己在做什麽,否则千万不要随便关闭执行中的系统程序,这样很可能会造成当机。那个程序是必须,那个是多余的,只要连续观察一个星期,大概就了解了。去问微软当然比较快,但是我相信谁也不愿意花这个钱! 去除多余帐号 帐号管理的工作内容,除了使用者忘记密码必须帮忙之外,消除多余用不到的帐号,也事关重大。因为一个用不到的帐号,即使被别人冒用,也不会有任何使用者抱怨,这样要做好网路安全是很困难的。在没有办法架设防火_澔驋裥衅渌踩胧┑那板r下,这是唯一重要而必须去做的事。 管理资源权限 为了让不需要资料的人接触不到资料,资源权限的管理是很重要的,由於ntfs档案系统才能做权限设定,因此不要把任何重要的文件放在win98的机器上,因为win98是使用fat32这种档案系统。在nt伺服端依群组特性建立专用目录,是最基本的作法,如确有需要应该在专用目录上设定权限trap,让系统在发现有人不守规矩时,能即时记录并通知系统管理师。 win95/98是nt网域内不被信任的节点,如果能使用poledit这个程式来修改win95/98的系统登录,让使用者在登入系统时,必须通过网域主机上的帐号查核才能签入,这样会安全许多。到底权限考核要做到怎样才够安全?笔者认为以单纯的小学校园环境来说,只要电脑教室管好就ok了,一般办公室电脑除了注意防毒之外,大概不必多做什麽! 以上这些日常维护工作,多久要做一次?笔者建议应该是想到立刻去做、觉得有异样立刻去做,至於因为工作忙碌,根本不想去做的部分,尽快分给别人去做吧!(资讯组已经成为「组」了,找些「组员」吧!) 厘清问题 当用户对网路出现疑难时,网路管理师不应该立刻着手去侦错处理,以免到头来白忙一场,应该先问清楚,排除人为操作及应用软体的问题,再决定下一步骤。在一个稳定的网路环境里,网路故障的情况并不会太多。如果确定是网路出了问题,就要确定问题的来源,询问用户: 有没有错误讯息? 在萤幕上看到什麽? 你正在进行何种操作? 问题什麽时候发生的? 最近有没有装过新软体或硬体? 这些问题有助於厘清不正常现象的真正原因。 侦错的价值 网路故障的可能性很多,如果有合理的怀疑,就可以使用侦错工具做进一步的确认。确认问题来源并不是侦错唯一的目的,因为故障排除的经验,会有助於网路架构的规划。例如:重要设备应有冗余的线路,这样能帮助侦错,万一真的故障也有後备计画;有raid系统就要有备用抽换硬碟,raid才有设置的价值;在日常维护中若发现某机器负担过重,某机器负担过轻,就要依服务的性质重新配置在恰当的硬体上......等等。 侦错步骤 撇开复杂的通讯协定不谈,网路是由各种网路实体所组成,这些实体并不全都是pc,所以并不是全部都有使用者介面或图形化的应用程式可以来监控_顟b,另外这些设备也有些是在远端,没办法去看灯号或组态,必须在远端操作。 由於种种不便,於是业者开发了所谓的web base介面,这些介面操作容易不需学习,对监看该设备_顟b有很大的帮助。可惜由於功能有限,所以并无法取代远端登录(telnet)。请询问厂商或查看型录,了解哪些设备有web介面可以使用。 一、实体线路连接问题: 检查近端网路设备(例如:集线器、路由器、数据机)的灯号,link(lnk)灯必须恒亮,而action(act)灯必须闪_q,如果机器灯号不正常,必须将机器重开机,让机器进行自我测试以恢复_顟b,有些厂牌的网路设备,重开机後并不会立刻将韧体也一起重新启动,而需要以人工方式进入主控台(把这个设备连接在一台工作站的com埠,然後用终端机软体签入该设备),下指令将韧体重新启动。如果不是机器的问题,请将无法连线的设备更换网路线,再以ping指令测试是否线路有通。 二、网路卡测试: 测试网路卡晶片是否能正常工作,一般网路卡会附赠侦错程式(有些直接执行setup就可以看到侦错选单),万一没有附侦错程式给你,也可以使用windows系统的内建侦错工具, net diag指令来侦错。 三、tcp/ip通讯协定侦错: 以 ipconfig /all(unix使用ifconfig)检查网路组态是否设定正确,要检查的项目是 ip 位址,网路遮罩,gateway 的位址,dns设定。接着以 ping 127.0.0.1 测试loop back是否有回应,接着 ping 自己的 ip 是否有回应,如果没有问题接着 ping gateway ,看看是否有回应,如果没问题,接着 ping 自己的domain name 看看是否有回应,假如这些都没问题,表示网路组态设定是正确的,如果没有得到预期的结果,请检查网路组态,看看是哪个部分有问题。 四、routing table侦错: 以 netstat -r 检查路由设定,可以了解本地网域(lan)路由设定是否正确(请参考拙作路由设定一文),如果设定上没有问题,那有可能是远端网域的路由出_顩r,由於远端路由是由别人所管理,同时有可能穿越一个以上的区域网路,所以管理的单位及人员非常多,到底是谁的问题,应该联络谁处理,必须要追踪路由,以厘清问题点出在那儿,可以使用 tracert(unix使用traceroute)指令追踪路径。有关路由的观念,稍後在介绍指令时会详细说明。 五、netbios名称服务侦错: 如果在网路上的芳邻看不到正确的电脑列表,而网路又已连通,那就表示netbios名称服务出了问题。由於unix主机并不支援windows系列的netbios名称服务,所以在网路上的芳邻看不到unix的机器是正常的,解决方法是在unix上安装saMBA伺服程式就可以了,关於unix和nt网路环境如何整合,本文不拟介绍。 netbios名称服务是透过广播的方式来查询主要名称浏览器(master browser)来获得电脑名单,主要名称浏览器通常是网路上第一台开机的电脑,如果网域里面有作业系统版本较高的主机,将会在开机後自动成为主要名称浏览器,它会每隔十五分钟选择一台机器当备份名称浏览器(backup browser),备份清单上的资料。网域内的工作站会每隔12秒广播自己的电脑名称,以及存在的分享资源,主要名称浏览器收到後,就会整理清单。网域内如果电脑数太多会造成广播封包急速增加,而占用频宽,规划上可以使用桥接器或layer 2的switch管制广播封包的流向,减轻网路负荷,有许多网路系统就是因为规划不当而造成广播风暴,致使网路效能不彰。 netbt封包无法穿越路由器或防火_潱绻氪┰铰酚善髦荒軐etbt封装成ip封包,这件事可由wins伺服器来完成。同时因为wins伺服器的架设,原本会定期广播的机制,会转变成固定向wins查询,可以有效减轻网路负担,一台专职的wins伺服器,其效能足以提供给五个网域内一千台以上的工作站使用。如果路由器後方有防火_潱仨殒cp137~139、udp138~139放行,才能通过防火_澋臄r堵;通常只有在多个网域互相连接时,才需要考虑这个问题。这里再强?#123;一次,如果区域网路电脑数量太多,或者已经用桥接器或交换器或路由器来连接各个子网域,一定要安装一台专职wins伺服器(选择nt的wins或unix的samba都可以),这样透过网路工作才会轻骭宜人。 我们可以使用 nbtstat -n 查看目前的电脑列表,或使用 nbtstat -r 来送出广播封包以更新电脑列表的内容。 侦错工具 一、 ping ping指令是传递icmp封包,来测试另一部主机或网路设备是否可经由网路连接。如果 ping 有成功回应,你会看到以下讯息: c:\>ping 163.21.236.5 pinging 163.21.236.5 with 32 bytes of data: reply from 163.21.236.5: bytes=32 time=1ms ttl=255 reply from 163.21.236.5: bytes=32 time<10ms ttl=255 reply from 163.21.236.5: bytes=32 time=1ms ttl=255 reply from 163.21.236.5: bytes=32 time=1ms ttl=255 ping statistics for 163.21.236.5: packets: sent = 4, received = 4, lost = 0 (0% loss), approximate round trip times in milli-seconds: minimum = 0ms, maximum = 1ms, average = 0ms 由於笔者是在local端执行,所以回应时间只有1ms,以ADSL来说大约在45~85ms之间是正常的,如果回应时间太久就是线路品质的问题,因为线路品质不好,封包一再重送,所以效能不彰,解决方法除了检查附近是否有电器干扰外,也只能依靠中华电信赶快提升电话线路抗干扰的能力。 ping不通有两种情况,一种是出现request timed out.,另一种是回应ip并伴随错误讯息。前一种情形是表示封包送出後没有回应,可能线路不通,也可能该主机没有开机或没有连上网路。後一种情形是有闸道器在收到封包後发现错误,所以发出icmp封包通知执行ping的机器,在讯息中可以看到该闸道器的ip及错误讯息,例如:reply from 163.21.254.254: destination unreachable.。 依照错误讯息各有不同含意,例如上述之reply from 163.21.254.254 : destination unreachable. 通常是该主机服务不存在、埠不存在、主机或网路无法辨识或是因为管理上的理由该主机被禁止回应。而reply from 163.21.254.254: ttl expired in transit. 则是因为路由设定错误产生回圈,最後当ttl减到0时最後收到封包的闸道器就会发出此讯息,如果去 ping 一个不应该存在的ip也会产生此种讯息。 二、 net net 与其说是一个指令,不如说是一个指令群,net 指令群由来已久,在nt上比在98上多了一些次指令,在此只介绍98提供的net次指令。各种次指令与用途略述如下: net 不加参数,会显示 net 指令群各种次指令列表及功能略述。 net help 会显示此一指令群的详细资讯和错误讯息的意义。 net config 用来显示windows网路的netbois设定值,包括使用者名称、电脑名称、群组名称及版本资讯。 net view 用来查询和显示某台主机所提供的共享资源名称(藉由「档案列印共享服务」这支程式来提供)。 net use 用来将远端所提供的共享资源虚拟成本地端的资源。 net init 将网路_顟b重置,会重新载入网路卡驱动程式及通讯协定。 net logon 和 net logoff 就是进行windows网域牡侨搿⒌浅鰟幼鳌?br /> net start 和 net stop 用来起始和终止网路服务。 net passwd 修改目前使用者的密码。 net time 向time server查询正确的时间,并会改变本机的系统时间设定。 net print 用来显示和控制网路印表机的列印工作_顟b。 net diag 网路连线侦测工具。 以下介绍 net diag 的用法,执行net diag 指令後,萤幕会出现下列讯息。 c:\>net diag microsoft network diagnostics will use a netbios provider. searching for diagnostic server... no diagnostic servers were detected on the network. is microsoft network diagnostics currently running on any other computers on the network ? (y/n) this computer will now begin acting as a diagnostic server. press any key to stop acting as a diagnostic server. 使用时必须找一台没有问题的机器来配合测试,首先在该机器上执行 net diag 出现searching for diagnostic server... 讯息後,按 enter ,接着电脑会问你是不是要把该机器当成测试 server ,回答y(yes),机器会开始不停送出广播封包。到要测试的机器上执行 net diag ,这时机器会去监耞网路上是否有diagnostic servers送出来的测试封包,假如网路卡没有问题,应该会出现收到封包的讯息。 接收封包测试成功,表示网路卡可以将data link封包(layer 2)解框,但这并不一定表示网路卡没有坏,所以接下来还必须测试传送封包的能力,看看网路卡是不是可以将封包加框,必须将刚才步骤颠倒过来,测试其传送封包的能力,假设都没有问题,那麽就证明网路卡可以正常工作。 记得使用这种非厂商提供的程式,必须使用微软的ndis界面与网路卡所附的layer 2的驱动程式,所以使用此方法来测试,需先执行net logon,将这两种东西bind在一起。如果你连网路都无法login,请制作一片dos开机片,将网路卡所附的ndis dos驱动程式,以 device= 的方式挂在config.sys中,再用它开机就可以正确执行net指令了,有点麻烦但是当你没有网路卡测试工具时,就必须这麽做。 三、 ipconfig 这个指令用来显示基本ip设定,如果使用 ipconfig /all 可以显示更多的组态,画面如下: c:\>ipconfig /all host name . . . . . . . . . : caldera.tmtc.edu.tw dns servers . . . . . . . . : 163.21.236.4 163.21.236.5 163.21.236.7 node type . . . . . . . . . : broadcast netbios scope id. . . . . . : ip routing enabled. . . . . : no wins proxy enabled. . . . . : no netbios resolution uses dns : yes 0 ethernet adapter : description . . . . . . . . : fast ethernet pci adapter physical address. . . . . . : 00-80-c8-f7-ed-29 dhcp enabled. . . . . . . . : no ip address. . . . . . . . . : 163.21.236.71 subnet mask . . . . . . . . : 255.255.255.0 default gateway . . . . . . : 163.21.236.254 primary wins server . . . . : secondary wins server . . . : lease obtained. . . . . . . : lease expires . . . . . . . : 各种组态中netbios名称服务的五种组态(以红色标示)是windows系统特有的,(请参考上节netbios的说明),unix以ifconfig显示ip组态时,并不会有此类讯息。分别叙述如下: node type . . . . . . . . . : broadcast 表示本机以广播方式从主要名称浏览器取得netbios名称表列,而不透过wins伺服器解析netbios名称(broadcast会浪费频宽)。 netbios scope id. . . . . . : 表示未设定輄区号码,輄区号码是用来定义netbios群组,以便在同一子网域中分隔电脑共享资源成不同的表列。 ip routing enabled. . . . . : no 表示不要启动ip路由 wins proxy enabled. . . . . : no 表示不要成为wins在本地网域代理者(如果设成yes,可以让本机成为远端wins的本地端代理器,可以有效降低频宽用量) netbios resolution uses dns : yes 表示要使用dns来做netbios名称解析 使用dns来做netbios名称解析是没有意义的,特别是透过unix系统的dns,或许微软公司想要以dns来支援netbios名称系统,但由於tcp/ip风行,所以微软自己的dns也仅只是将netbios名称的要求封包丢给wins伺服器去解析,扮演起白手套的角色,自己也不提供支援。 四、 tracert 这个工具用来追踪封包从一部机器到另一部机器,将会经由网路走哪一条路径。这个工具对於追踪网路断讯特别有用,当然系统管理师必须对网路实际连接的架构有所了解,才能派上用场。其输出结果如下: c:\>tracert www.ntu.edu.tw tracing route to w3.cc.ntu.edu.tw [140.112.8.130] over a maximum of 30 hops: 1 1 ms <10 ms 1 ms 163.21.236.254 2 <10 ms 1 ms <10 ms 163.21.254.254 3 2 ms 1 ms 1 ms 140.111.255.17 4 3 ms 4 ms 5 ms 203.72.38.112 5 4 ms 4 ms 3 ms r7513-cc.ntu.edu.tw [140.112.254.7] 6 3 ms 3 ms 3 ms w3.cc.ntu.edu.tw [140.112.8.130] 如上图经过的闸道共有:师院电算中心路由器、台北市教育网路中心路由器、教育部路由器、网路交换中心、台湾大学路由器,最後到达目的地台大web伺服器。 如果出现三个星号,表示路径选择失败,从失败的位置可以找出网路故障的筥围,如果连续很多星号超过应有的闸道数,这就表示所有路径已测试完毕,没有办法连接该主机。你可以在tracert指令後面加上 -h 100 表示要追踪100个hops,每个闸道通过一次算一个hop,一般内定值是30 hops,事实上已绰绰有余。 五、 netstat 这个指令也像net指令一样,有一大堆功能,不过一般是用来观察路由表,在windows和unix上都可使用。在windows的环境下,还可以用route print来观察路由表。由於校园网路已转型成网际网路的一环,将来的架构会变成unix和windows混合环境,所以早一点熟悉unix指令也不错。 routing和ip class网路的实际连线有直接的关系,当两台机器间的路径出现复数选择时,静态路由就无法解决问题,而要依靠动态路由协定来和其它路由器求得最佳路径,这在中小学目前的校园环境里应该是遇不到,所以现在去设定动态路由协定,实在是多此一举,也浪费网路资源。 执行netstat -r出现下列讯息: c:\>netstat -r route table active routes: network address netmask gateway address interface metric 0.0.0.0 0.0.0.0 163.21.236.254 163.21.236.71 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 163.21.236.0 255.255.255.0 163.21.236.71 163.21.236.71 1 163.21.236.71 255.255.255.255 127.0.0.1 127.0.0.1 1 163.21.255.255 255.255.255.255 163.21.236.71 163.21.236.71 1 224.0.0.0 224.0.0.0 163.21.236.71 163.21.236.71 1 255.255.255.255 255.255.255.255 163.21.236.71 163.21.236.71 1 active connections proto local address foreign address state tcp caldera:1115 www.tp.edu.tw:nbsession established 路由表的第一行0.0.0.0/0.0.0.0称为预设闸道,在windows控制台的网路组态里,可以设定此项参数。127.0.0.0/255.0.0.0是lookback回路,可用来测试主机的网路服务是否存在。224.0.0.0/224.0.0.0是实验用的ip,一般会拿来用作muticast用途,也就是用在网路视讯广播。255.255.255.255/255.255.255.255是预设的广播ip,目前没在用。以上这些路径,在每片网路卡上都会有,是在安装後自动产生的,其中以预设闸道最为重要,因为它关系着能不能连上inetrnet。 还有三条路径是由网路卡所设定的ip来决定的,如果一片网路卡设定成两个不同ip,就会有六条路径。其中163.21.236.71/255.255.255.255是笔者现在所在的电脑,163.21.236.255/255.255.255.255是笔者所在class c网域的广播用ip,最重要的163.21.236.0称为网路名称,163.21.236.0/255.255.255.0这条路径是用来到达笔者所在的子网域。 假设现在要将163.21.236.0这个网域,进一步分割成两个子网域,分别是: 网路名称 163.21.236.0 163.21.236.128 网路遮罩 255.255.255.128 255.255.255.128 起始ip 163.21.236.1 163.21.236.129 终止ip 163.21.236.126 163.21.236.254 广播ip 163.21.236.127 163.21.236.255 连接两个子网域的桥接器,必须插两片网路卡来当作闸道,其中一片使用163.21.236.126,另一片网路卡使用163.21.236.254这个ip,两片网路卡各落在一个子网路内,其中163.21.236.0这个子网路必须透过163.21.236.128才能连上internet(因为预设闸道163.21.236.254是在163.21.236.128这个子网路中)。 在这个新环境里,笔者的电脑必须变更网路卡上的遮罩,从255.255.255.0变成255.255.255.128,而考虑要连接到163.21.236.128这个子网路,我必须建立一条新的路由,使用route指令: route add 163.21.236.128 mask 255.255.255.128 163.21.236.126 意思是:要到163.21.236.128这个子网路,必须将封包送到163.21.236.126去处理,我们知道163.21.236.126就是桥接器连通我们这个子网路的网路卡。 接着来考虑如何连上internet,很明显的原来的预设闸道不能用了,因为在我的子网路163.21.236.0里是找不到163.21.236.254这台机器,这台机器是在163.21.236.128这个子网路,所以我必须透过桥接器才到得了。首先删除原来的预设闸道路径,再加上新的路径: route del 0.0.0.0 mask 0.0.0.0 163.21.236.254 route add 0.0.0.0 mask 0.0.0.0 163.21.236.126 metric 2 metric 2是告诉桥接器,这个封包不在你的子网路里,请转送给下一个闸道。不过通常桥接器在路由表设定好後,它就知道怎麽办了,这个参数写不写无所谓。 (注意这里的metric和ospf协定里面定义的metric距离向量,是不一样的,这里的metric是微软的风格,以1代表穿过一个闸道) 以上是路由的简要说明,关於其它拓朴环境的路由,甚至是动态路由的进一步讯息,应该另为文介绍,在这里就不多说了! 在netstat -r的回应讯息中最後一道讯息是: tcp caldera:1115 www.tp.edu.tw:nbsession established 这是表示目前有一条连线正在作用中:笔者的电脑(caldera)正以tcp协定连接到www.tp.edu.tw这台主机的nbsession埠。这个埠就是tcp 137埠,是用来查netbios名称的,因为笔者在www.tp.edu.tw上安装了samba服务,然後透过网路上的芳邻来编修和制作网页,所以会看到这样的讯息。透过这些讯息,不是就可以揭开网路的奥秘吗? 六、 nbtstat 这道指令乍看之下,会误以为是netstat,nbt也就是netbt,也就是netbios over tcp/ip。刚才已经解释过,这是将netbios广播封包重新封装成tcp/ip格式,藉以与远端的wins伺服器通讯。 nbtstat -s用来显示目前本机透过netbios名称服务取用资源的情形。 c:\>nbtstat -s netbios connection table local name state in/out remote host input output ---------------------------------------------------------------------------- shane <00> connected out www <20> 426kb 629kb shane <03> listening shane listening root <03> listening 检查得知目前已连接至名叫www的电脑,取用了若干资料。下面的listening表示本机正等待别人来使用共享资源。windows系统并不会去分辨本机有没有资源提供给别人分享,而是无论如何都会将netbios服务开启,这也就是为什麽即使没有东西在分享,要在网路上的芳邻看到主机列表,同样要花相当久的时间。还好netbios是终将淘汰的东西(windows 2000还是向下支援了netbios,以避免与旧有windows环境脱节,但是具名管道服务在windows 2000中完全以dns的方式实作)。 七、 nslookup 这是用来侦测dns名称解析的工具,dns是连上internet必要的服务,相关的观念,相信读者已非常熟悉,这里就不多说了。你要注意的是,windows系统中只有nt系列有提供这个指令,所以请不要在98上面做这项侦错。 我们来看以下的侦错过程: c:\>nslookup 预设伺服器: ns.tmtc.edu.tw <--我的网路组态以它当第一台dns address: 163.21.236.4 > www.tmtc.edu.tw <--先测试该server管理的正解纪录是否存在 伺服器: ns.tmtc.edu.tw address: 163.21.236.4 名称: www.tmtc.edu.tw <--ok没问题 address: 163.21.236.22 > 163.21.236.22 <--再测试该server管理的反解纪录是否存在 伺服器: ns.tmtc.edu.tw address: 163.21.236.4 名称: www.tmtc.edu.tw <--ok也没问题 address: 163.21.236.22 > set q=any <--改变查询的选项为任何型态纪录 > edu.tw <--查询我们上一层的网域内容 伺服器: ns.tmtc.edu.tw address: 163.21.236.4 edu.tw internet address = 140.111.1.2 edu.tw nameserver = moevax.edu.tw edu.tw nameserver = moeSUN.edu.tw edu.tw primary name server = moevax.edu.tw responsible mail addr = sanger.moers4.edu.tw serial = 199911173 refresh = 21600 (6 hours) retry = 7200 (2 hours) expire = 3600000 (41 days 16 hours) default ttl = 172800 (2 days) edu.tw nameserver = moevax.edu.tw <--上一层的dns主机 edu.tw nameserver = moesun.edu.tw moevax.edu.tw internet address = 140.111.1.2 moesun.edu.tw internet address = 140.111.1.20 moesun.edu.tw internet address = 163.28.1.101 > lserver 140.111.1.2 <--将上一层的dns主机设定为本地端dns 预设伺服器: moevax.edu.tw 伺服器 address: 140.111.1.2 > tp.edu.tw <--查询本地网域在上一层的设定内容 伺服器: moevax.edu.tw address: 140.111.1.2 tp.edu.tw nameserver = ns.tp.edu.tw <--与我们呈报上去的设定一致,表 tp.edu.tw nameserver = dns.tp.edu.tw 示上一层没有把我们设错 ns.tp.edu.tw internet address = 163.21.236.5 dns.tp.edu.tw internet address = 163.21.236.7 > exit <--离开nslookup工具 这一段侦错过程是在追踪dns为何不工作,通常我们是由下往上查,而不是由上往下查,因为越往上层其管理会越严谨,出错机率相对不高,除非是我们给上层错误的资料,否则不致於会有问题。 侦测过程中,先侦测自己server管輄内的机器是否能正确的正反解,如果不能解出正确结果,那麽就是我们自己的server设定错误(通常是语法错误),如果根本不能查询,而且出现错误讯息,那就是server挂掉了,请将它修复後重新开机。 如果侦测没有问题,但是在浏览器中还是不能看到自己的网页,这时候我们怀疑上一层资料与我们不match,我们就必须进行记录比对。 假如不知道上层dns的位址,可以先在自己的server上查询一下,查出结果後,再将该server设成本地端预设dns,这样做的目的是让以下的查询可以真正读取到该server管輄的记录内容。 查询有关本地网域它所知道的任何讯息,server应该会回应所有有关的纪录,核对看看是不是与我们通报上去的资料一致。假如是因为我们这边做了修改,但是没有通知上一层的管理员,那发生错误就是天经地义的了! 任何已登录的dns,要修改ip或网域名称,一定要经过正常行政程序通知上一层管理员,请上一层管理员帮你修改纪录,这样改变才是有效的! 结语 在讯息万变的今天,即使是一个广为人知的系统,系统更新的速度也将越来越快。想要学一招走江湖,也越来越困难。在windows网路普及的今天,也难保网路架构不会再改变,linux开始大量的出现在企业伺服端,为了因应局势,微软也推出拥有更先进功能,更贴合於tcp/ip的新作业系统windows 2000,根据微软公布的「tcp/ip在windows 2000的实作细节」白皮书中的描述,windows 2000支援更多的网路界面,例如:adsl、atm等等。支援更多的协定,例如:正日趋风行的ip muticast、群组管理协定igmp、ip forwarder、ip filtering、路由协定ospf……等等。提供更强更低阶的控制除错工具,几乎原封不动的移植所有unix下的网路侦错工具。在网路实作上的规格,几乎是与linux相同,可以看出微软想要打败linux的企图心,当然两者依然无法相容,例如:linux的列印使用lp通讯协定,而windows 2000使用ipp;linux的telnet以ssh编码来加强安全,而windows则使用自行研发的sgc编码。微软的wsh也发展成为shell warp,也可以在wsh上面执行bash、csh……等各种shell,并提供约25种unix指令,以方便远端管理,预定也将支援tcl/tk、python、perl……等多种script语言。笔者试用的结果是,功能的确大幅进步,但在效能及细部?#123;校上,仍然一如以往,进步不大。 对於windows网路管理师来说,windows 2000更好的支援代表着网路实作上的难度会降低,但是相对的也代表着学习的曲线会延伸的更长,要了解一个系统将更不容易。所以一找到时间空隙,就要把握时间不断地进修,不要让系统管理工作,蹉跎了你的青春。 |
责任编辑:gzu521