草庐IT

计算机网络——常用的网络命令

上山打老虎D 2023-04-03 原文

目录

一、实验目的

二、实验内容

三、实验环境和要求

四、实验步骤

1、Ping命令

2、Ipconfig命令

3、Netstat命令

4、Tracert命令

5、Route命令

6、ARP命令

7、Nslookup命令

8、Netsh命令(网络配置工具)

9、FTP命令(文件传输协议实用工具)

10、Net命令(网络管理命令)

五、实验结果

六、心得体会


一、实验目的

  1. 了解ping、traceroute等常用网络工具的功能以及使用方法,并通过这些工具发现或者验证网络中的故障。
  2. 学习安装、使用协议分析软件,掌握基本的数据报捕获、过滤和协议的分析技巧。

二、实验内容

  1. 练习使用10个常用的网络命令
  2. 协议分析软件的安装 、使用

三、实验环境和要求

  1. 使用Windows操作系统
  2. 具备Internet连接

四、实验步骤

1、Ping命令

Ping是一个测试程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。如果Ping运行正确,就可以排除网络访问层、网卡、Modem的I/O线路、电缆和路由器等存在的故障。

按缺省设置,运行Ping命令时发送4个ICMP(网间控制报文协议)“回送请求”,每个32字节数据;若正常应得到4个回送应答。

    Ping能够以毫秒为单位显示发送“回送请求”到返回“回送应答”之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络连接,速度比较快。

Ping 还能显示TTL(Time To Live存在时间值。通过TTL值推算数据包已经通过了多少个路由器:

    源地点TTL起始值(就是比返回TTL略大的一个2的乘方数)-返回时TTL值。我们以深圳大学官网为例:

其中210.39.4.1是该服务器的IP地址,本地机主收到的回送消息具体为:32字节,共用的毫秒数,TTL返回值为41。由此可知TTL的起始值是64,而源地点到目标地点要通过23个路由器网段。共发送4个数据包,回收到4个,共丢失0个占总的0%。最快回收时间为81ms,最慢回收时间为93ms,平均为87ms。

通过Ping检测网络故障的典型次序:

1)ping 127.0.0.1

   这个Ping命令被送到本地计算机的IP软件。如果出错,则表示TCP/IP的安装或运行存在某些最基本的问题。 运行结果如下:

2)ping 本机IP

   这个命令被送到本计算机所配置的IP地址。如果出错,则表示本地配置或安装存在问题。(本机IP可以通过ipconfig进行查询,查询到的本机IP为192.168.3.38)

对本机IP进行Ping操作结果如下。

3)ping 局域网内其他IP

   这个命令经过本地计算机的网卡及网络电缆到达其他计算机,再返回。如收到回送应答,表明本地网络的网卡和载体运行正确。但如果收到0个回送应答,表示子网掩码不正确或网卡配置错误或电缆系统有问题。网关IP是172.31.225.27,那么我们随机选择一个同一局域网内的其他IP进行Ping操作,例如我们选择172.31.225.31。

4)ping 网关IP

   这个命令如果应答正确,表示局域网中的网关路由器正在运行并能够作出应答。 (网关IP可以通过ipconfig进行查询,查询到的网关IP为172.31.225.33)。

对其进行Ping操作,结果如下。

5)ping 远程IP

   如收到4个应答,表示成功使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet(但不排除ISP的DNS会有问题)。 例如:

可见成功收到4个应答。

6)ping 某个域名

   对某个域名执行Ping命令,本地计算机必须先通过DNS 服务器将域名转换成IP地址。如果出现故障,则表示DNS服务器的IP地址配置不正确或DNS服务器有故障。利用该命令实现域名对IP地址的转换功能。我们以腾讯视频为例,百度的域名为baidu.com,对其进行Ping操作,结果如下。

返回的TTL值为48,则由此可知TTL起始值为64,那么源地点到目标地点要通过16个路由器网段。

7)Ping命令的常用参数选项:

①Ping IP –t   连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断,以百度的域名为例。

②Ping IP -l  m  指定Ping命令中的数据长度为m字节,缺省为32字节,将Ping命令中的数据长度修改为128字节,运行结果如下。

③Ping IP –n   执行特定次数的Ping命令,缺省为4次。将执行次数改为9次,运行结果如下。

8)Ping命令的参数用法查询:

   在窗口中直接输入Ping,会显示出Ping的用法以及各选项的含义。

2、Ipconfig命令

IPConfig  实用程序(和WinIPCfg)可用于显示当前的TCP/IP配置的设置值。

这些值用来检验人工配置的TCP/IP设置是否正确。

如果本地计算机和所在的局域网使用了动态主机配置协议,通过IPConfig可以了解计算机是否成功租用到一个IP地址,如果租用到则可以了解它目前分配到的是什么地址。了解计算机当前IP地址、子网掩码和缺省网关实际上是进行测试和故障分析的必要项目。

IPConfig 最常用的选项:

    1)ipconfig

       当不带任何参数选项使用IPConfig时,它为每个已经配置了的接口显示IP地址、子网掩码和缺省网关值。结果如下。

由图可知,本机IP为172.31.225.27,子网掩码为255.255.255.0,默认网关IP为172.31.225.33.

2)ipconfig /all

       当使用all选项时,IPConfig能为DNS和WINS服务器显示它已配置且所要使用的附加信息(如IP地址),并且显示内置于本地网卡中的物理地址(MAC)。如果IP地址是从DHCP服务器租用的,IPConfig将显示DHCP服务器的IP地址和租用地址预计失效的日期。

相比于不带选项的ipconfig命令,加了all选项之后显示的信息将更加完善,会显示所有网络适配器的完整的TCP/IP配置。例如IP的主机信息,DNS信息,物理地址信息,DHCP服务器信息等等。适配器可以代表物理接口如已安装的网络适配器或逻辑接口如拨号连接或虚拟机网卡。信息更加完善。结果如下。

3)ipconfig /release和ipconfig /renew

       这是两个附加选项,只能在向DHCP服务器租用其IP地址的计算机上起作用。

       如果输入ipconfig /release,所有接口的租用IP地址便重新交付给DHCP服务器(归还IP地址)。结果如下。

如果输入ipconfig /renew,本地计算机便设法与DHCP服务器取得联系,并租用一个IP地址。多数情况下网卡将被重新赋予和以前所赋予的相同的IP地址。

3、Netstat命令

Netstat 用于显示与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,用于检验本机各端口网络连接情况。

 Netstat的一些常用选项:

(1) netstat –s   本选项能够按照各个协议分别显示其统计数据。如果应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么你就可以用本选项来查看一下所显示的信息。你需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。

运行结果如下。

 

结果显示出了IPv4/IPv6的统计信息、ICMPv4/ICMPv6的统计信息以及IPv4/IPv6的TCP和UDP统计信息。

(2) netstat –e   本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报总字节数、错误数、删除数、数据报的数量和广播的数量。这个选项可以用来统计一些基本的网络流量。结果如下。

(3) netstat –r   本选项显示关于路由表的信息,类似于route print命令时看到的信息。除显示有效路由外,还显示当前有效的连接。

结果如下。

可见结果显示出了接口列表、IPv4路由表和IPv6路由表。

(4) netstat –a   本选项显示一个有效连接信息列表,包括已建立的连接(Eetablished),也包括监听连接请求(Listening)的那些连接,断开连接(CLOSE_WAIT)或者处于联机等待状态的(TIME_WAIT)等。

结果如下。

我们拿出其中一行来举例:

这一行表示协议:TCP(传输层通讯协议);本机IP为127.0.0.1,本地打开并用于连接的端口:10804;外部地址为172.31.225.27,远程端口为49801;状态为ESTABLISHED(已建立连接的情况)。

可见显示出了所有已建立的有效连接。

4、Tracert命令

Tracert命令可以用来跟踪数据报使用的路由(路径),并列出在所经过的每个路由器上所花的时间。因此, Tracert一般用来检测故障的位置。

该实用程序跟踪的路径是源计算机到目的计算机的一条路径,但不能保证或认为数据报总遵循这个路径。

Tracert用法:只需在tracert后面跟一个IP地址或URL,Tracert会进行相应的域名转换。如:

                        Tracert  www.yahoo.com

我们简单的使用该命令来测试到达百度baidu.com的时间和经过的IP地址,结果如下。

 

看信息我们知道我们通过了18个IP节点和使用的时间。第一个一般是我们的机器是从该IP出去的,第二个开始就是经过的路由,最后一个是目标机器,也就是说经过的路由有16个。

对baidu.com进行ping操作。结果如下。

由图可以看出,TTL返回值为48,因此TTL初始值为64,则经过了16个路由器网段。对比刚刚tracert的结果,二者一致。

5、Route命令

Route用来显示、人工添加和修改路由表项目。

大多数主机都驻留在只连接一台路由器的网段上。由于只有一台路由器,因此不存在使用哪一台路由器将数据报发表到远程计算机上去的问题,该路由器的IP地址可作为该网段上所有计算机的缺省网关来输入。

但是,当网络上拥有两个或多个路由器时,可能想让某些远程IP地址通过某个特定的路由器来传递,而其他的远程IP则通过另一个路由器来传递。

在这种情况下,必须人工将项目添加到路由器和主机上的路由表中。

Route 使用选项:

  1. route print  本命令用于显示路由表中当前项目。

结果如下。

   (2) route add   本命令可将路由项目添加给路由表。

     例如,如果要设定一个到目的网络172.255.255.255的路由,其间要经过5个路由器网段,首先要经过本地网络上的一个路由器(所接端口IP为192.168.3.1,子网掩码为255.255.255.255,则应该输入以下命令:

route add 172.255.255.255 mask 255.255.255.255 192.168.3.1 metric  5

结果如下。

   再用route print 看是否添加成功。结果如下。

   可见添加成功!

   (3) route change  本命令用来修改数据的传输路由。

      但不能用本命令来改变数据的目的地。以上面的IP地址为例,将网关IP由192.168.3.1变为192.168.3.100。

route change 172.255.255.255 mask 255.255.255.255 192.168.3.100 metric  5

输入以上命令,结果如下。

再用route print 看是否改变成功。结果如下。

可见网关IP被成功改变。

   (4) route delete

     本命令可以从路由表中删除路由。删除上述加进去的路由表,输入以下命令:

route delete 172.255.255.255

结果如下。

再用route print 看是否删除成功。结果如下。

由图可见删除路由成功。

6、ARP命令

ARP用于确定对应IP地址的网卡物理地址。

ARP命令能够查看本地计算机或另一台计算机的ARP高速缓存中的当前内容。

此外,使用ARP命令,也可以用人工方式输入静态的网卡物理/IP地址对。可使用这种方式为缺省网关和本地服务器等常用主机进行操作,有助于减少网络上的信息量。

ARP 常用命令选项:

   (1) arp -a或arp –g   用于查看高速缓存中的所有项目。

arp -a结果如下。

arp–g 结果如下。

   (2) arp -a IP   如果有多个网卡,那么使用arp -a加上接口IP地址,就可以只显示与该接口相关的ARP缓存项目。

例如:arp -a 224.0.0.22

结果只显示该ip的ARP。

(3)arp -s IP 物理地址

添加Internet地址物理地址的关联条目,其中物理地址是用连字符分隔的6个十六进制字节。

可以向ARP高速缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。

   例如:arp -s 172.255.255.255 01-02-03-04-05-06

   输入以上命令,结果如下。

再用arp -a 查看是否添加成功,结果如下。

可见添加成功。

   (4) arp -d IP   使用本命令能够人工删除一个静态项目。

例如删除我们刚刚添加的Internet地址172.255.255.255,输入以下命令:

arp -d 172.255.255.255

再用Arp -a命令检验是否删除成功。

可见删除成功。

7、Nslookup命令

nslookup命令的功能是查询一台机器的IP地址和其对应的域名,通常它能监测网络中DNS服务器是否能正确实现域名解析它,它的运行需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。

该命令的一般格式为:nslookup [IP地址/域名]

如果在本地机上使用nslookup命令来查询v.qq.com的话,执行后如下:

或者可以先进入nslookup模式再输入要查找的[域名/IP]:

结果如下。

  如果要退出该命令,输入exit并回车即可。

8、Netsh命令(网络配置工具)

windows系统下提供的功能强大的网络配置命令行工具,它允许从本地或远程显示或修改当前正在运行的主机网络配置。该工具既可以命令行交互运行,手动输入命令,也可以在脚本中使用,通过批处理模式运行一组命令。

首先用netsh ?显示参数列表如下。

用法为:

用法: netsh [-a AliasFile] [-c Context] [-r RemoteMachine] [-u [DomainName\]UserName] [-p Password | *]   [Command | -f ScriptFile]

其中-a 运行AliasFile后返回到netsh命令提示符。AliasFile 指定包含一个或多个netsh命令的文本文件的名称;-c 更改到指定的netsh上下文。Context 指定netsh上下文。   

9、FTP命令(文件传输协议实用工具)

Windows系统提供的FTP工具,客户端用户连接远程FTP服务器,实现文件共享和传输,下载FTP服务器资源文件,或上传客户端文件。

输入ftp 回车 再输入‘?’,结果如下。

继续输入lcd可以查到目前的本地目录。

输入ftp -h显示各参数的操作。结果如下。

10、Net命令(网络管理命令)

Net命令是一个命令行命令,通过它可以查看和管理网络的环境、服务、用户、登陆等信息内容。要想获得Net的命令帮助,在命令行控制台下输入NET /?就可以得到Net的所有命令列表。结果如下。

输入net accounts结果如下。

输入net config结果如下。

五、实验结果

1.ping用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。

2.ipconfig用来显示当前的 TCP/IP 配置的设置值,检验人工配置的TCP/IP 设置是否正确。

3.netstat用来显示与IP、TCP、UDP和ICMP 协议相关的统计数据,检验本机各端口网络连接情况。

4.tracert用来跟踪数据报使用的路由,并列出在所经过的每个路由器所需要的时间。

5.Route用来显示、人工添加和修改路由表项目。

6.ARP用来确定对应 IP 地址的网卡物理地址。

7.nslookup用来查询一台机器的 IP 地址和其对应的域名。

8.netsh 网络配置工具

9.ftp文件传输协议实用工具

10.net网络管理命令

六、心得体会

1)在做route add操作时,当我输入命令后,窗口显示:请求的操作需要提升。如下。

当我试了几个不同的命令得到的还是这样的结果,于是我上网查了一下,按照网上说的以管理员身份运行cmd窗口,照做后结果恢复正常,关于route的其他命令也都是在管理员身份下运行的cmd中操作的。Route后面的几个命令也是通过管理员身份操作。

2)做ftp命令时,不知道如何查询各参数对应的功能。通过上网查找资料发现,可以查询参数功能的命令是ftp -h,查询结果如下。

有关计算机网络——常用的网络命令的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  3. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  4. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  5. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  6. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  7. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  8. ruby - 如何计算 Liquid 中的变量 +1 - 2

    我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我

  9. ruby - 使用 Ruby,计算 n x m 数组的每一列中有多少个 true 的简单方法是什么? - 2

    给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in

  10. ruby - 从 Ruby : capturing the output while displaying the output? 运行 shell 命令 - 2

    我有一个问题。我想从另一个ruby​​脚本运行一个ruby​​脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密

随机推荐