2.5 Windows常用的网络命令
Windows操作系统自带有许多网络命令,它们虽然简单,但是却可以实现强大的功能。下面介绍一些常用的网络命令。
2.5.1 ping命令
这个命令用来检测当前主机与目的主机之间的连通情况,它是ICMP使用的一个实例。使用ping进行测试,如果ping运行正确,大体上就可以排除网络访问层、网卡的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。但由于可以自定义所发数据报的大小及无休止的高速发送,ping也被某些别有用心的人作为DDoS(分布式拒绝服务攻击)的工具。
Ping命令的格式如图2-7所示(在命令行状态下输入ping即可显示其格式及参数的说明)。
其中的常用参数说明如下。
-t:使当前主机不断地向目的主机发送数据,直到使用<Ctrl+C>组合键中断。
-n:执行特定次数的ping命令,其中count为正整数值。
-lsize:指定发送的数据包的大小,而不是默认的32字节。
ping命令格式为:ping主机名-t。如图2-8所示,如果ping某一网站,如www.baidu.com,出现“来自180.97.33.108的回复:字节=32时间=21msTTL=54”则表示本地主机与该网站的IP级连接是畅通的。其中“180.97.33.108”是对方的IP地址,“字节=32”表示数据包大小为32个字节,“时间=21ms”表示完成命令所花时间为21ms,“TTL=54”表示生存时间。
图2-7 ping命令格式
图2-8 带参数-t的ping命令
TTL是IP包中的一个值,它告诉网络中的设备包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。例如,不正确的路由表可能导致包的无限循环。一个解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL的初值通常是系统默认值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减1,TTL通常表示包在被丢弃前最多能经过的路由器个数。当计数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。
如果出现如图2-9所示的提示,则说明本地DNS配置有问题或DNS服务器无此域名信息。
图2-9 DNS查找不到目标
如果出现“Requesttimedout”,如图2-10所示,则表示此时发送的数据包不能到达目的地,可能有以下两种情况:一种是网络不通;还有一种是此时网络连通状况不佳。
图2-10 ping不通目标
默认情况下,在出现“Requesttimedout”之前,ping会等待1000ms(1s)的时间让每个响应返回。如果通过ping探测的目标系统经由时间延迟较长的链路,如卫星链路,则响应可能会花更长的时间才能返回。此时可以使用-w(等待)参数选项指定更长时间的超时。
如果执行ping命令不成功,则可以预测故障出现在以下几个方面:网线是否连通、网络适配器是否安装正确、IP地址是否可用等;如果执行ping命令成功而网络仍无法使用,那么问题很可能出在网络系统的软件配置方面,执行ping命令成功只能保证当前主机与目的主机间存在一条连通的物理路径。
另外,由于ping命令可以被攻击者用来收集主机信息和作为攻击的手段,因此,出于安全的考虑,许多主机的防火墙配置了“拒绝外部的ICMP信息包”这样的规则,这样的主机也是无法ping到的。例如,使用“pingwww.sohu.com”,返回信息可能为“Requesttimed out”,看起来好像该主机不可达,而实际上可以通过浏览器访问该网站。
2.5.2 at命令
这个命令的作用是安排在特定的日期或时间执行某个特定的命令或程序。当知道要运行命令主机的当前时间,就可以使用此命令让其在以后的某个时间去执行某个程序或命令。具体用法和参数如图2-11所示。
图2-11 at命令参数
图2-12就是利用at命令实现计算机定时关机,如设定关机时间为17:00。at命令的执行与用户权限以及相关的服务有关。如果在执行过程中提示“服务尚未启动”,则需开启服务中的“Task Scheduler”选项。
图2-12 at命令使用示例
2.5.3 netstat命令
netstat命令可以用来显示当前的TCP/IP连接、Ethernet统计信息、路由表等。netstat命令的格式如下:
netstat[-a][-e][-n][-o][-s][-pproto][-r][interval]
-s:按照各个协议分别显示其统计数据。如果用户的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么就可以用该选项来查看一下所显示的信息。
需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。图2-13显示了当前计算机协议的统计信息(图2-13中统计信息未显示完)。
图2-13 netstat命令查看协议统计信息
-e:显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数,以及数据报的数量和广播的数量。
-r:显示关于路由表的信息,类似于使用routeprint命令时显示的信息。除了显示有效路由外,还显示当前有效的连接。
-a:显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。
-n:显示所有已建立的有效连接。
从图2-14中可以看到,计算机打开许多端口,其中有些端口的状态为“LISTENING”,表示该端口处于监听状态,没有和其他计算机建立连接;而有的端口状态为“ESTABLISHED”,表明该端口正与某计算机进行通信。
图2-14 netstat-a命令输出示例
2.5.4 tracert命令
当数据报从本地经过多个网关传送到目的地时,tracert命令可以用来跟踪数据报使用的路由(路径)。该实用程序跟踪的路径是源计算机到目的地的一条路径,tracert命令诊断程序确定到目标所采取的路由。
tracert命令的使用是在后面加上一个IP地址或URL,tracert命令会进行相应的域名转换。Tracert命令一般用来检测故障的位置,可以用tracert命令测试在哪个环节上出了问题。
tracert命令的用法示例如图2-15所示。从图2-15中可以看出,经过了59.172.218.219这个网络节点后显示请求超时,而这个时候本机又是能够访问该网站的,说明tracert命令相关的协议服务被该网络节点拒绝了。
图2-15 tracert命令示例
2.5.5 net命令
net命令中有很多函数用于配置部分本地操作系统的常用选项和核查计算机之间的NetBIOS连接,输入net/?,然后按<Enter>键,显示该命令的用法:
net[accounts|computer|config|continue|file|group|help|helpmsg|localgroup|name|pause|print|
send|session|share|start|statistics|stop|time|use|user|view]
1.netstart<servicename>
启动本地主机或远程主机上的服务。输入“netstarttelnet”,就可以启动本机上的telnet服务,如图2-16所示。
图2-16 启动telnet服务
2.netstop<servicename>
停止本地或远程主机上已开启的服务。输入“netstopserver”,就可以停止server及与之关联的服务,如图2-17所示。
图2-17 停止某个服务
3.netuser
执行和账户相关的一些操作,包括新建账户、删除账户、查看特定账户、激活账户、禁用账户等。输入不带参数的“netuser”命令,可以查看所有账户,如图2-18所示。
图2-18 显示所有账户
1)创建新账户。例如,“netuserpeter123456/add”命令,表示新建一个账户名为peter,密码为123456,默认为user组成员,如图2-19所示。
2)删除账户。例如,“netuserpeter/del”命令,表示将账户名为peter的账户删除,如图2-19所示。
图2-19 添加、删除账户
3)禁用某个账户。设定john为一个已存在的账户,使用命令“netuserjohn/active:no”,可将账户名为john的账户禁用,如图2-20所示。
4)激活某个账户。“netuserjohn/active:yes”命令:表示激活账户名为john的账户,如图2-20所示。
图2-20 禁用、激活账户
5)查看账户信息。例如“netuserjohn”命令,表示查看账户名为john的用户的情况,包括账户的状态、密码有效期、所属组和上次登录时间等。
4.netlocalgroup
查看所有和用户组有关的信息以及进行的相关操作。不带参数的“netlocalgroup”命令可列出当前所有的用户组。可以把某个账户提升为administrators组成员,用法为:net localgroup groupname username/add。例如,把账户john添加到管理员组中去,可使用命令“net loaclgroup administrators john/add”,john就成为管理员组的成员,获得了管理员的权限。使用命令“net localgroup administrators john/del”,就可以把john这个账户从管理员组中删除。使用“net localgroup groupname”命令格式,本例中的groupname为administrators,可查看组信息,以及该组包含的成员。以上命令如图2-21所示。
图2-2 1net localgroup命令示例
2.5.6 ftp命令
ftp命令的基本使用方法为:首先在命令行中输入ftp,然后按<Enter>键(也可直接添加对方IP地址或完全域名登录),也可以输入“help”来查看帮助(任何DOS命令都可以用此方法查看命令帮助)。
接下来是登录过程,直接在ftp的提示符下输入“open主机IP地址ftp端口”命令格式,然后按<Enter>键即可,一般端口默认都是21,可以不写。接着就是输入合法的用户名和密码进行登录,若以匿名FTP登录,可在User提示符后面输入anonymous,并在password提示符后面输入一个邮件地址为密码。ftp命令示例如图2-22所示。
图2-22 使用ftp命令
使用ftp命令登录后,可使用如下命令进行操作。
dir:和DOS命令一样,用于查看服务器的文件,直接输入dir,然后按<Enter>键,就可以看到此FTP服务器上的文件,如图2-23所示。
cd:进入某个文件夹。
get:下载文件到本地计算机。
put:上传文件到文件服务器(需要远程服务器配置相应权限)。
delete:删除远程FTP服务器上的文件(需要远程服务器配置相应权限)。
disconnect:断开当前连接。
bye:退出FTP服务。
quit:退出FTP服务。
图2-23 FTP服务器上的文件列表
2.5.7 nbtstat命令
nbtstat命令用于提供关于NetBIOS的统计数据。使用nbtstat命令,可以查看本地计算机或远程计算机上的NetBIOS名字列表。图2-24就是nbtstat命令查看远程计算机NetBIOS的示例。
图2-24 nbtstat命令示例
nbtstat常用参数选项如下。
-n:显示寄存在本地的名字和服务程序。
-r:清除NetBIOS中的高速缓存。
-aIP地址:通过IP地址显示另一台计算机的物理地址和名字列表,所显示的内容就像另一台计算机自己运行nbtstatn命令一样。
-sIP地址:显示使用其IP地址的另一台计算机的NetBIOS连接表。
-c:显示NetBIOS名字高速缓存的内容。NetBIOS名字高速缓存用于存放与本计算机最近进行通信的其他计算机的NetBIOS名字和IP地址对。
2.5.8 telnet命令
telnet命令为远程登录命令。使用时,先输入telnet,然后按<Enter>键,在提示符下输入“open主机名(IP地址)”命令格式,示例如图2-25所示,这时就出现了登录窗口,用户可输入合法的用户名和密码,这里输入的密码都是不显示的。
图2-25 建立telnet连接
当输入的用户名和密码都正确后,就成功建立了telnet连接,这时用户就在远程主机上具有了相应的权限。
当然,以上命令能成功运行需要telnet的目标设备支持并开启了telnet访问。