windows上重要的计算机网络命令实践

本文目的是在windows上验证计算机网络命令,从而对计算机网络有初步的认识和了解。

1.ipconfig

ipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具,它主要用来显示当前网络连接的配置信息(/all 参数)。显示所有当前 TCP/IP 网络配置值并刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。 在没有参数的情况下使用, ipconfig 显示 Internet 协议版本 4 (IPv4) 以及所有适配器的 IPv6 地址、子网掩码和默认网关。

实作一

命令行输入ipconfig /all查看我们自己的计算机网络配置。

从下面可以看出我们计算机上的网络配置,如Windows IP配置、无线局域网适配器 本地连接* 1、无线局域网适配器 本地连接* 10、无线局域网适配器 WLAN等配置关于IP地址、子网掩码Subnet Mask、网关Gateway的详细信息。

Windows IP 配置

......
以太网适配器 以太网:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Realtek PCIe GbE Family Controller
   物理地址. . . . . . . . . . . . . : 54-BF-64-0E-6F-3B
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是

无线局域网适配器 本地连接* 1:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter
   物理地址. . . . . . . . . . . . . : 7C-76-35-F4-C9-B0
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是

无线局域网适配器 本地连接* 10:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Microsoft Wi-Fi Direct Virtual Adapter #2
   物理地址. . . . . . . . . . . . . : 7E-76-35-F4-C9-AF
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是  
......
无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Intel(R) Wireless-AC 9462
   物理地址. . . . . . . . . . . . . : 7C-76-35-F4-C9-AF
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   本地链接 IPv6 地址. . . . . . . . : fe80::89e4:4e8:7e21:c7bd%20(首选)
    IPv4 地址 . . . . . . . . . . . . : 10.160.11.28(首选)
   子网掩码  . . . . . . . . . . . . : 255.254.0.0
   获得租约的时间  . . . . . . . . . : 2020年11月9日 18:57:55
   租约过期的时间  . . . . . . . . . : 2020年11月10日 19:23:23
   默认网关. . . . . . . . . . . . . : 10.160.255.254
   DHCP 服务器 . . . . . . . . . . . : 172.18.1.101
   DHCPv6 IAID . . . . . . . . . . . : 142374453
   DHCPv6 客户端 DUID  . . . . . . . : 00-01-00-01-24-8B-FB-5F-54-BF-64-0E-6F-3B
  ......

实作二

在其他电脑上继续使用上述命令查看其网络配置,发现差别主要在IP地址、子网掩码Subnet Mask、网关Gateway以及物理地址等这些方面。
image

你的计算机和旁边的计算机是否处于同一子网,为什么?
将ip地址和子网掩码进行与操作,发现两台电脑的网络号一样,所以两台计算机处于同一子网下。

2.ping

PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序 。ping 是工作在 TCP/IP 网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。

实作一

命令行输入ping www.baidu.com查看我们计算机和百度服务器网络连接是否通畅。

从下面可以看出发送接收数据包为32字节并且均未丢失,往返行程平均时间35ms,TTL为54(TTL是 Time To Live的缩写,指生存时间的意思,表示该字段指定IP包被路由器丢弃之前允许通过的最大网段数量)。

	正在 Ping www.a.shifen.com [14.215.177.39] 具有 32 字节的数据:
	来自 14.215.177.39 的回复: 字节=32 时间=36ms TTL=54
	来自 14.215.177.39 的回复: 字节=32 时间=33ms TTL=54
	来自 14.215.177.39 的回复: 字节=32 时间=35ms TTL=54
	来自 14.215.177.39 的回复: 字节=32 时间=39ms TTL=54

	14.215.177.39 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
	往返行程的估计时间(以毫秒为单位):
    最短 = 33ms,最长 = 39ms,平均 = 35ms

实作二

使用ping /?查看ping命令的各种选项的作用

用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
           [-r count] [-s count] [[-j host-list] | [-k host-list]]
           [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
           [-4] [-6] target_name

选项:
    -t             Ping 指定的主机,直到停止。
                   若要查看统计信息并继续操作,请键入 Ctrl+Break;
                   若要停止,请键入 Ctrl+C。
    -a             将地址解析为主机名。
    -n count       要发送的回显请求数。
    -l size        发送缓冲区大小。
    -f             在数据包中设置“不分段”标记(仅适用于 IPv4)。
    -i TTL         生存时间。
    -v TOS         服务类型(仅适用于 IPv4。该设置已被弃用,
                   对 IP 标头中的服务类型字段没有任何
                   影响)。
    -r count       记录计数跃点的路由(仅适用于 IPv4)。
    -s count       计数跃点的时间戳(仅适用于 IPv4)。
    -j host-list   与主机列表一起使用的松散源路由(仅适用于 IPv4)。
    -k host-list    与主机列表一起使用的严格源路由(仅适用于 IPv4)。
    -w timeout     等待每次回复的超时时间(毫秒)。
    -R             同样使用路由标头测试反向路由(仅适用于 IPv6)。
                   根据 RFC 5095,已弃用此路由标头。
                   如果使用此标头,某些系统可能丢弃
                   回显请求。
    -S srcaddr     要使用的源地址。
    -c compartment 路由隔离舱标识符。
    -p             Ping Hyper-V 网络虚拟化提供程序地址。
    -4             强制使用 IPv4。
    -6             强制使用 IPv6。

假设不能 ping 通某计算机或 IP,但你确定该计算机和你之间的网络是连通的,那么可能的原因是什么?该如何处理能保证 ping 通?
可能是因为该计算机开启了防火墙或者该计算机的网络服务未开启;要想双方能ping通对方,需要双方的计算机网络设置正常且允许访问。

假设在进行的网络排查中,ping百度的IP即ping 14.215.177.39 没问题,但 ping 百度的域名即 ping www.baidu.com不行,那么可能的原因是什么?如何进行验证和解决?
可能是因为本地DNS服务未开启导致无法将域名解析为IP地址,因而能ping通IP地址但是无法ping通域名。
验证和解决:上网搜索当地 DNS 服务器地址,检查当前 DNS 服务器设置是否正确;临时设置 DNS 服务器地址为 8.8.8.8,看能否通过该DNS服务器ping通百度域名。

当网络出现故障不能访问某计算机如14.215.177.39 (百度的 IP 地址之一 ) 时,一般可采用由近及远的连通性测试来确定问题所在。现假设我们IP是 192.168.1.89,旁边计算机的IP是192.168.1.64,网关的IP是192.168.1.1,那么过程如下:

  • 1、ping 127.0.0.1 ,测试自己计算机的状态,如果OK,那么说明本机网络软件硬件工作正常,否则问题在本机,检查本机 TCP/IP 配置即网卡状态等;
  • 2、ping 192.168.1.64 ,测试到旁边计算机的连通性,如果OK,那么说明本子网内部工作正常,否则问题在本机网络出口到交换机之间,检查本机网卡到交换机的连线等;
  • 3、ping 192.168.1.1,测试到网关的连通性,如果OK,那么说明本子网出口工作正常,否则问题在网关,报告给网管;
  • 4、ping 14.215.177.39,测试到百度的连通性,如果OK,那就OK,否则问题在网关以外。

3.tracert

tracert(Trace Route 的组合缩写),也称为路由追踪,该命令可用于跟踪 Internet 协议(IP)数据包传送到目标地址时经过的路径。

实作一

使用命令tracert www.baidu.com命令了解到百度服务器中间经过了哪些节点(路由器)及其它状态,查看反馈的信息,了解节点的个数。
通过网站 http://ip.cn可以查看这些节点位于何处,大致清楚本机到百度服务器之间的路径。
image2

可以看出,从本地主机到百度服务器经过了12个路由器节点,部分路由器直接不回应我们的请求但是仍然将该请求传给了下一跳。

实作二

ping.pe 这个网站可以探测从全球主要的 ISP 到某站点如https://qige.io的线路状态,当然也包括各线路到该主机的路由情况。请使用浏览器访问http://ping.pe/qige.io进行了解。
image3

问题一
tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?
通过向目标地址发送 Internet 控制消息协议 (ICMP) 回显数据包来确定到目标地址的路由。

问题二
在以上两个实作中,如果你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?
无论是访问百度还是棋哥教学网,都需要从本地IP出发,经过本地的路由器转发给外部路由器,因而必然前几个路由器节点是相同的。

问题三
在追踪过程中,你可能会看到路径中某些节点显示为号,这是发生了什么?
因为发给该路由器的ping包被该路由器丢弃因而显示

4.ARP

ARP(Address Resolution Protocol)即地址解析协议,根据给定网络层地址即 IP 地址查找并得到其对应的数据链路层地址即 MAC地址的协议。 ARP 协议定义在 1982 年的 RFC 826。

实作一

运行 arp -a 命令查看当前的 arp 缓存, 请留意缓存了些什么。
image4
然后 ping 一下旁边的计算机 IP(注意,需保证该计算机的 IP 没有出现在 arp 缓存中,或者使用 arp -d * 先删除全部缓存),再次查看缓存,你会发现一些改变,请作出解释。
image5

从上面的图片可以看出,ARP -a命令查看了当前ARP缓存的东西,其中主要是一些IP地址及其解析出的的MAC地址,当使用命令ping 10.160.155.180时,本地ARP缓存将会记录该IP和对应的MAC地址,方便下次的访问。

实作二

请使用 arp /? 命令了解该命令的各种选项。

λ arp /?                                                  
                                                          
显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。                         
                                                          
ARP -s inet_addr eth_addr [if_addr]                       
ARP -d inet_addr [if_addr]                                
ARP -a [inet_addr] [-N if_addr] [-v]                      
                                                          
  -a            通过询问当前协议数据,显示当前 ARP 项。                    
                如果指定 inet_addr,则只显示指定计算机                  
                的 IP 地址和物理地址。如果不止一个网络                     
                接口使用 ARP,则显示每个 ARP 表的项。                   
  -g            与 -a 相同。                                  
  -v            在详细模式下显示当前 ARP 项。所有无效项                    
                和环回接口上的项都将显示。                             
  inet_addr     指定 Internet 地址。                           
  -N if_addr    显示 if_addr 指定的网络接口的 ARP 项。                
  -d            删除 inet_addr 指定的主机。inet_addr 可            
                以是通配符 *,以删除所有主机。                          
  -s            添加主机并且将 Internet 地址 inet_addr             
                与物理地址 eth_addr 相关联。物理地址是用                 
                连字符分隔的 6 个十六进制字节。该项是永久的。                  
  eth_addr      指定物理地址。                                   
  if_addr       如果存在,此项指定地址转换表应修改的接口                      
                的 Internet 地址。如果不存在,则使用第一                 
                个适用的接口。                                   
示例:                                                       
  > arp -s 157.55.85.212   00-aa-00-62-c6-09.... 添加静态项。   
  > arp -a                                  .... 显示 ARP 表。

实作三

一般而言,arp 缓存里常常会有网关的缓存,并且是动态类型的。假设当前网关的 IP 地址是 192.168.0.1,MAC 地址是 5c-d9-98-f1-89-64,请使用arp -s 192.168.0.1 5c-d9-98-f1-89-64命令设置其为静态类型的。
iamge6
若得到 “ARP 项添加失败: 请求的操作需要提升” 这样的信息,表示命令没能执行成功,解决方法就是以管理员方式运行,重新输入命令arp -s 192.168.0.1 5c-d9-98-f1-89-64即可添加成功
image7

在实作三中,为何缓存中常常有网关的信息?我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?
因为主机通过网关访问Internet,因此主机缓存中常常有网关的信息,方便下次直接使用;将网关或其它计算机的 arp 信息设置为静态的优点是便于管理,但是缺点便是容易被非法盗用,给合法用户造成损失和潜在的安全隐患。

5.DHCP

DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有以下用途:

  • 用于内部网或网络服务供应商自动分配 IP 地址给用户
  • 用于内部网管理员对所有电脑作中央管理
  • 简单的说,DHCP 可以让计算机自动获取/释放网络配置。

实作一

一般地,我们自动获取的网络配置信息包括:IP 地址、子网掩码、网关 IP 以及 DNS 服务器 IP 等。使用ipconfig/release命令释放自动获取的网络配置,并用ipconfig/renew命令重新获取,了解 DHCP 工作过程和原理。
释放自动获取的网络配置:
image8
重新获取网络配置:
iamge9

如果没能成功的释放,请思考有哪些可能的原因并着手进行解决?
可能的原因是DHCP服务器未及时响应我们的释放IP地址的请求,导致不能成功释放已经动态分配的IP地址或者是因为本地的DHCP服务因为某种原因处于故障状态。

在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为 169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?
这样能够保证一台计算机都能有一个IP地址,这样可以通过该IP地址在局域网中访问这台主机。

6.netstat

无论使用 TCP 还是 UDP,任何一个网络服务都与特定的端口(Port Number)关联在一起。因此,每个端口都对应于某个通信协议/服务。
netstat(Network Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。

实作一

Windows 系统将一些常用的端口与服务记录在 C:\WINDOWS\system32\drivers\etc\services 文件中,请查看该文件了解常用的端口号分配。
iamge10

实作二

使用netstat -an命令,查看计算机当前的网络连接状况。
可以看出不同网络连接对应的端口号是不同的。
image11

7.DNS

DNS(Domain Name System)即域名系统,是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 的 53 号端口。

实作一

Windows 系统将一些固定的/静态的 DNS 信息记录在 C:\WINDOWS\system32\drivers\etc\hosts 文件中,如我们常用的 localhost 就对应 127.0.0.1 。请查看该文件看看有什么记录在该文件中。
image12

实作二

解析过的DNS记录将会被缓存,以利于加快解析速度。请使用ipconfig /displaydns命令查看。我们也可以使用ipconfig /flushdns命令来清除所有的 DNS 缓存。
1.查看DNS记录
image13
2.清除DNS缓存
image14

实作三

使用nslookup qige.io命令,将使用默认的DNS服务器查询该域名。
image15

当我们使用浏览器上网时,或多或少的会看到一些广告。某些网站的广告是非常没有节操的,所以我们一般可以通过安装浏览器插件如 AdGuard、AdBlocker 等来拦截和过滤。这种方法简单方便有效,不过有一定安全或隐私问题,因为该插件实时知道你访问的 URL。假设不使用这种第三方的插件,希望自己完全控制,那么就请考虑在我们前面提到的 hosts 文件中添加 DNS 记录。有自愿者时时在维护全球正确的DNS记录文件如下:
https://github.com/otobtc/ADhosts/blob/master/hosts

使用插件或自己修改hosts文件来屏蔽广告,思考一下这种方式为何能过滤广告?如果某些广告拦截失效,那么是什么原因?你应该怎样进行分析从而能够成功屏蔽它?
因为通过hosts文件屏蔽广告是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",广告是由该域名跳转而来,因此屏蔽域名即可达到屏蔽广告的效果;广告拦截失效的原因在于此时弹出的小广告不是链接,不会访问本机而是直接访问其他的服务器,因而某些广告无法拦截。

8.cache

cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。

实作一

打开 Chrome浏览器,访问 https://qige.io ,接下来敲 F12 键或Ctrl + Shift + I 组合键打开开发者工具,选择Network 面板后刷新页面,你会在开发者工具底部看到加载该页面花费的时间。请进一步查看哪些文件被 cache了,哪些没有。
image16
加载该页面时间:716ms

实作二

接下来仍在 Network 面板,选择 Disable cache 选项框,表明当前不使用 cache,页面数据全部来自于 Internet,刷新页面,再次在开发者工具底部查看加载该页面花费的时间。你可比对与有 cache 时的加载速度差异。
image17
加载该页面时间:6.63s

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值