windows环境下的网络命令初探
0、windows环境如何用命令控制电脑(CMD)
简述:我们平时接触的电脑都是有桌面显示的,每个应有都有图标或者能在文件夹里找到程序的启动文件(.exe文件),但是其实我们的电脑系统都是通过命令来运行的,我们还能通过命令来实现对电脑信息的查询,电脑信息的控制。相比用鼠标点点点,用键盘直接操作无疑要更加高效。
那如何使用命令来控制电脑呢
windows键+R | 打开运行 |
---|
输入cmd
回车即可打开命令窗口(如下图)
接下来就可以开始学习计算机网络相关的命令啦
1、ipconfig
1.1 简介:
要想初探计算机网络命令,首先我们就要先了解网络相关的配置,ipconfig就是来显示网络连接的配置信息的。
1.2 ipconfig实作内容
ipconfig相关选项
IPConfig选项 | 解释 |
---|---|
/? | 显示此帮助消息 |
/all | 显示完整配置信息 |
/release | 释放指定适配器的 IPv4 地址 |
/release6 | 释放指定适配器的 IPv6 地址 |
/renew | 更新指定适配器的 IPv4 地址 |
/renew6 | 更新指定适配器的 IPv6 地址 |
/flushdns | 清除 DNS 解析程序缓存 |
/registerdns | 刷新所有 DHCP 租用并重新注册 DNS 名称 |
/displaydns | 显示 DNS 解析程序缓存的内容 |
/showclassid | 显示适配器允许的所有 DHCP 类 ID |
/setclassid | 修改 DHCP 类 ID |
/showclassid6 | 显示适配器允许的所有 IPv6 DHCP 类 ID |
/setclassid6 | 修改 IPv6 DHCP 类 ID |
实作一
用ipconfig/all查看自己网络的配置,我使用的WLAN,所以就查看我的WLAN有哪些配置吧
实作二
我先不忙着做解释,让我们先看看旁边电脑的网络配置吧
1.3 简单解析
提出问题:我们连接的同一个校园网,大家看出有什么相同的和不同的吗?
1、物理地址不同:
物理地址就相当于机器ID,每台计算机都有一个属于自己的物理地址,又称MAC地址,这个地址一般和生产厂商有关,厂商会去买断一些MAC地址的前缀,也就是前几个数,也就是说相同厂家的生产的计算机一般前几个都是一样的,不同的在后面。正是因为这个地址是唯一的,所以我就简单打了点马赛克。
2、本地链接IPV6不同:我们连的网络虽然是同一个,但是计算机网络是需要区分每个用户的,所以自然本地链接的IPV6是不一样的,IPV6地址有128位,所以有2的128次方个地址,这个数量级,我相信,我们分配一百年也分配不完。
提出问题1:IPV6这么多地址那为啥不用IPV6,要用IPV4呢???
该问题会在默认网关解析处给原因
3、IPV4不同:同样的,计算机不同,所以网络地址不同,IPV4地址以10.开头,说明我们连接都是属于内网,因为IPV4是32位,网络地址个数相对于计算机用户来说是远远不够的,所以引入了内网的概念(这也是不用IPV6的原因之一)。
4、子网掩码相同:子网掩码是用来确定网络号的,也是因为IPV4可分配的地址不够,所以提出了子网掩码的概念,只要把子网掩码化成2进制后与IPV4进行与操作,就能获得网络号。每个子网都有一个网络号,我们连接的是同一个子网,所以当然子网掩码是一样的。
5、默认网关相同:正如子网掩码的内容所诉,我们的子网是同一个,那么我们出子网到达外网的地址当然就是一个啊,这个网关就是整个子网内用户出去的地址。
问题1 原因:也正是因为有着网关的存在,所以我们就能更好的对计算机用户进行管理,管理员就能知道你要去哪,你要干什么了。如果用IPV6以后,我们的地址每个人一个都可以,那就不需要啥子网的概念了,所以这个就不太好监管了。。。。
2、ping
2.1 简介:
既然知道了网络的基本配置,那么我们是如何知道我们已经连接到网络了呢,我们又是如何知道别人的计算机是否也连接到网络了呢,那么命令ping就能解决这个问题。ping就是可以个别人发一个包,连续发四次,如果连接到了,就会有回应。
2.2 ping实作内容:
实作一
本来是要尝试ping学校官网的,但是学校官网应该是设置了防火墙,所以一直都ping不同,那么我就尝试ping ping百度。
注意到,我们发送了一个32字节的数据包,一共发了四次,百度服务器也回了四次。
提出问题2:
1、为啥回复有一个TTL?TTL是干啥的?
2、我们能不能发送一个其他字节数量的包呢,怎么发?
3、确定计算机网络地址不是IP地址吗,为啥我ping www.baidu.com也能收到百度服务器的回复?
该问题会在本节简单解析和实作二做出解释
实作二
我们实现了ping的功能,那ping还有其他功能吗
ping/? | 显示命令ping的其它选项 |
---|
问题2.2 原因:实作一提出问题,能不能发送一个其他字节数量的包呢,当然了,比如
理论上,这个数据包的数值可以达到65535,也就是2的16次方,但是现在的服务器都是有设置的,如果你ping的长度大于他们设定的值,他们就不会回你,放置服务器因为大量的这种垃圾信息而一直处于忙碌。
2.3 简单解析:
TTL 是干啥的?
TTL 就是数据包的生存时间,如果我传输到下一个节点,TTL自动减一。如果TTL为零,那么该节点就会回复你TTL用完了。
为啥ping www.baidu.com 也能成功呢?
这就涉及到域名解析服务,就是Internet域名解析服务器会根据你的域名来找到对应的IP,全球一共有13台域名解析服务器,很可惜,在中国,一台也没有。。。。
3、tracert
3.1 简介:
tracert称为路由追踪,该命令程序可用于跟踪Internet协议(IP)数据包传送到目标地址时经过的路径,上节ping命令中的TTL就是tracert实现的基础。
3.2 tracert实作内容:
我们来看看我们到百度有多少个节点
具体地址可以通过IP查询找到该ip属于哪个公司,哪个点的。
3.3 简单解析:
请求超时:请求超时我们也能到达下一个节点是因为有的服务器不想让我们知道他们的地址,所以不想给我们回复。
实现原理:上一节讲了TTL,tracert的实现原理就是我开始把目的设置为百度服务器,但是我的生存周期只有一个,那么我到达我去百度服务器路劲的下一个节点后,该节点就会回复我。那么下一次设TTL为2,依次这样下去,我们就能知道我访问百度经过了哪些节点。
4、ARP
4.1 简介:
ARP为地址解析协议是用于根据给定网络层地址,查找到其对应的数据链路层地址即MAC地址的协议
4.2 ARP实作内容:
实作一
用arp -a 找到自己的mac表有哪些内容。
看看旁边电脑的
实作二
用 arp/?查看有哪些arp选项
实作三
用arp -d *清除缓存
再用arp -a查看
删除失败:用管理员运行cmd.exe文件,参考ARP 项删除失败: 请求的操作需要提升。
实作四
通过arp -s IP MAC来讲该IP 设置为静态的,
4.3 简单解析:
ARP是一个地址解析协议,就是通过IP地址找到对应的计算机的MAC地址,通过这个协议,我们就能通过IP地址找到路,通过mac地址知道下一步数据该往哪个端口走。
5、DHCP
5.1 简介:
DHCP是动态主机配置协议,用于内部网络或网络服务供应商自动分配IP给用户,用于内部网管理员对所有电脑做中央管理,DHCP可以让计算机自动获取/释放网络配置
5.2 DHCP实作内容:
通过ipconfig/release断开连接,释放网络配置
通过ipconfig/renew来重新连接网络,获取网络配置
5.3 简单解析:
DHCP的存在是为了避免某台计算机关机了,但是还占用着内网的ip,所以我们就用DHCP协议,如果我们需要上网,就向本地服务器申请一个内网ip使用,等我们关机了,或者申请超时了,我们要上网就需要重新申请。
6、netstat
6.1 简介:
Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
6.2 netstat 实作内容:
常见选项
netstat选项 | 解释 |
---|---|
-a | 显示所有连接和侦听端口 |
-b | 显示在创建每个连接或侦听端口时涉及的可执行程序。在某些情况下,已知可执行程序承载多个独立的组件,这些情况下,显示创建连接或侦听端口时涉及的组件序列。在此情况下,可执行程序的名称位于底部 [] 中,它调用的组件位于顶部, 直至达到 TCP/IP。注意,此选项可能很耗时,并且在你没有足够权限时可能失败 |
-e | 显示以太网统计信息。此选项可以与 -s 选项结合使用 |
-f | 显示外部地址的完全限定域名(FQDN) |
-n | 以数字形式显示地址和端口号 |
-o | 显示拥有的与每个连接关联的进程 ID |
-p | proto 显示 proto 指定的协议的连接;proto可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s 选项一起用来显示每个协议的统计信息,proto 可以是下列任何一个: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6 |
-q | 显示所有连接、侦听端口和绑定的非侦听 TCP 端口。绑定的非侦听端口不一定与活动连接相关联 |
-r | 显示路由表 |
-s | 显示每个协议的统计信息。默认情况下,显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;-p 选项可用于指定默认的子网 |
-t | 显示当前连接卸载状态 |
-x | 显示 NetworkDirect 连接、侦听器和共享终结点 |
-y | 显示所有连接的 TCP 连接模板。无法与其他选项结合使用 |
interval | 重新显示选定的统计信息,各个显示间暂停的间隔秒数。按 CTRL+C 停止重新显示统计信息。如果省略,则 netstat 将打印当前的配置信息一次 |
实作一
Windows系统将一些常用端口记录在C:\WINDOWS\system32\drivers\etc\services中可以看到端口号分配
1.熟知端口号:0-1023 由IANA指派和控制
2.注册端口号:1024-4951 IANA不指派也不控制,可在IANA注册,防止出现重复。
3.动态端口:4952-65535 不用指派、注册,可由任何进程来使用,是短暂端口。
实作二
netstat -an查看当前连接状态
6.3 简单解析:
端口号对应的是传输层和应用层之间的联系,传输层如何知道应该吧该数据包交给哪个程序处理就是通过端口号来解决。计算机端口也是Internet的通道,也可以通过netstat命令可以了解哪些端口是打开的,找出恶意后台程序,降低风险
7、DNS
7.1 简介:
DNS为域名系统,它是域名与IP地址互相映射的一个分布式数据库,能够使人更方便地访问互联网,其适用TCP和UDP地53号端口,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
7.2 DNS 实作内容:
实作一
通过计算机的C:\WINDOWS\system32\drivers\etc\hosts 查看静态DNS信息。
番外:可以通过设置这个来快速访问 github网站,具体可见这里
实作二
通过ipconfig /displaydns来查看电脑中已经存在的DNS表
通过ipconfig /flushdns来清除缓存
实作三
使用 **nslookup qige.io **命令,将使用默认的 DNS 服务器查询该域名。
7.3 简单解析:
通过DNS域名解析,我们就能够查询到域名对应的IP地址,这样我们访问www.baidu.com这些就能够直接访问,而不用去记那些繁杂的ip地址。
8、cache
8.1 简介:
Cache提供了快速 Web 应用开发、高速的事务处理、大规模的扩展性、对事务数据的实时查询。 Cache运行概述对Cache架构和性能进行了深层次的描述。
8.2 cache实作内容:
实作一
访问一个网站 Ctrl+Shift+I组合键打开开发者工具,选择NETwork面板并刷新,看哪些文件被缓存了或者按F12打开开发者工具,选择 Network 面板后刷新页面,你会在开发者工具底部看到加载该页面花费的时间
下面两幅图是使用cache和未使用cache的时间结果对比
结果如下
使用cache
未使用cache
8.3 简单解析:
应用缓存,我们能更加快速的访问网站,每次访问网站就不需要所有信息都通过Internet获取了,我们通过缓存也能够获取一部分数据,这样节省了网络资源,但是另外一方面也让用户的计算机会储存一些无用的信息,所以我们也是需要定时清理缓存的。
9、总结:
通过这些命令我们大概了解了网络相关的配置,下一篇我们将通过wireshark抓包来具体分析一些计算机网络的知识。