验证性实验


ipconfig

ipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它主要用来显示当前网络连接的配置信息(/all 参数)。

/all 显示所有适配器的完整TCP/IP配置。适配器可表示物理接口(例如已安装的网络适配器) 或逻辑接口(如拨号连接)。

ipconfig/all

实作一

使用ipconfig/all查看自己计算机的网络配置,尽可能明白每行的意思,特别注意 IP 地址、子网掩码 Subnet Mask、网关 Gateway。

自己的计算机网络配置

  • IP地址是指互联网协议地址,是IP协议提供的一种统一的地址格式,为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
  • 子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上还是在远程网上。
  • 默认网关是子网与外网连接的设备,通常是一个路由器。

实作二

使用 ipconfig/all 查看旁边计算机的网络配置,看看有什么异同。

旁边其他计算机
异: IPv4地址的最后一位不同,即IPv4地址不一样。
同: 子网掩码相同都为:255.255.255.0;默认网关相同都为:192.168.0.1。

问题:
你的计算机和旁边的计算机是否处于同一子网,为什么?
答案:
处于同一子网,用两台设备的IP地址与子网掩码做与运算,所得到的网络号一致均为:192.168.0.0;而且以实际情况而言,两台设备所连接的路由器为同一台设备,因此可得处于同一子网。

ping

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

实作一

要测试到某计算机如 重庆交通大学 Web 服务器的连通性,可以使用 ping www.cqjtu.edu.cn命令,也可直接使用 IP 地址。

ping www.cqjtu.edu.cn

ping操作

  • TTL:生存时间,是指指定的数据包被路由器丢弃之前允许通过的网段数量。其值是由发送主机设置的,以防止数据包不断在IP互联网络上永不停止地循环。转送IP数据包时,要求路由器至少将TTL减少1。
  • 时间:是指一次请求的时间,这个时间越小说明速度越快。

实作二

ping的命令详情如下:(可用ping/?显示)

ping/?

ping命令详情

问题:
假设ping百度的 IP即ping 14.215.177.39没问题,但ping 百度的域名即ping www.baidu.com不行,那么可能的原因是什么?如何进行验证和解决?与"能上 QQ,但不能上网" 这个问题的原因是相似的。
答案:
可能的原因:域名解析出错;域名设置错误;
如何解决:
1.联系相关部门,检查当地的DNS服务器;
2.设置电脑的DNS为8.8.8.8。

tracert

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

实作一

要了解到某计算机如www.baidu.com中间经过了哪些节点(路由器)及其它状态,可使用tracert www.baidu.com命令,查看反馈的信息,了解节点的个数。

tracert www.baidu.com

到百度的节点个数

可通过网站http://ip.cn查看这些节点位于何处,是哪个公司的,大致清楚本机到百度服务器之间的路径。
如查看第三个节点的信息:
某个节点的详情

实作二

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

到qige网的情况

问题:
tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?
答案:
通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。Tracert 先发送 TTL 为1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。

问题:
在以上两个实作中,如果你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?
答案:
因为均是由自身的电脑发出的数据,他们出去的网关是一致的。

问题:
在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?
答案:
该节点未收到反馈的消息。

ARP

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

实作一

运行arp -a命令查看当前的 arp 缓存, 请留意缓存了些什么。

arp -a

arp缓存

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

arp -d *//要以管理员身份运行,否则无法删除
//删除后,再ping
ping 192.168.70.254

arp删除缓存

可以看出,缓存的地址变少了。原因可能是,之前与许多IP进行过通讯,因此存在缓存,所以在使用删除操作后,没有与其进行过通讯的IP未出现。

实作二

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

arp/?

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命令设置其为静态类型的。

arp -s192.168.0.1 5c-d9-98-f1-89-64

设置为静态

问题:
你可能会在实作三的操作中得到 “ARP 项添加失败: 请求的操作需要提升” 这样的信息,表示命令没能执行
成功,你该如何解决?
回答:
该操作与arp -d *删除缓存操作一直,所需要的执行权限为管理员,即以管理员的身份运行。可以找到cmder的.exe右键以管理员身份执行。

管理员身份运行

问题:
在实作三中,为何缓存中常常有网关的信息?
我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?
回答:
1.因为缓存本身记录着访问过的pc网卡MAC物理地址;
2.优点:便于管理;缺点:可能被非法盗用。

问题:
那么什么是 ARP 欺骗,发生ARP 欺骗后会有什么后果,我们该如何进行防范?
回答:
ARP原理:
例如两设备PC1和PC2,他们之间的通信需查询ARP缓存表,未通信前缓存表为空,此时PC1没有发往PC2的MAC地址,无法封装数据包进行发送数据,即需先发送广播的ARP请求来获取PC2的MAC地址。当其他PC机收到PC1的ARP请求便会判断PC1广播来的ARP请求中的目的IP是不是自己的IP,如果是就回应自己的MAC地址。因为是广播请求,所以同时连入网络的攻击者也可收到,此时可仿造PC2回复给PC1。
后果:
大多数情况下会造成大面积掉线;如果是被中间人攻击,截取Internet与这个目标主机的之间的全部通信,则会导致信息泄露,在主机看来访问外部服务的响应变慢;或者对于服务器而言,上层应用忙于处理这种异常而无法响应外来请求。
如何防范:
1.绑定mac地址
2.使用静态arp缓存表
3.使用arp服务器,通过服务器来查找arp转换表来响应其他机器的广播
4.使用arp欺骗防护软件

DHCP

DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:
用于内部网或网络服务供应商自动分配 IP 地址给用户
用于内部网管理员对所有电脑作中央管理
简单的说,DHCP 可以让计算机自动获取/释放网络配置。

实作一

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

ipconfig/release//释放自动获取的网络配置
ipconfig/renew//重新获取

释放
重新获取

问题:
如果你没能成功的释放,请思考有哪些可能的原因并着手进行解决?
答案:
可能没有加适配器,网卡或驱动,加一个适配器,网卡或驱动。

问题:
在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为 169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?
答案:
原因:自动配置的IP地址只是给我们短暂性解决不能获取DHCP服务器的配置数据问题;
意义:让计算机在连接网络时不再自动获取网络地址,避免网络连接上的困扰,防止主机脱网,这是一种可以保持通讯的紧急网络处理方案。

问题:
经常的,在一个固定地方的网络配置我都喜欢采用 静态/手动配置,而不是动态 DHCP 来进行。你能想到是什么原因吗?
回答:
动态DHCP获取需要一定的时间搜索可用的ip,如果DHCP服务器有问题,将搜索整个网段。并且相较来说静态配置的ip更稳定。

netstat

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

打开的计算机端口,就是向 Internet 打开的一个通道。通过 netstat 命令,我们可以了解当前计算机哪些端口是打开的,从而找出一些恶意后台程序,分析其所作所为,并且可以进一步将相关端口关闭,降低安全风险。

实作一

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

端口号分配

实作二

使用netstat -an命令,查看计算机当前的网络连接状况。

netstat -an

计算机网络连接状况
更多netstat 命令

-a或–all:显示所有连线中的Socket;
-A<网络类型>或–<网络类型>:列出该网络类型连线中的相关地址;
-c或–continuous:持续列出网络状态;
-C或–cache:显示路由器配置的快取信息;
-e或–extend:显示网络其他相关信息;
-F或–fib:显示FIB;
-g或–groups:显示多重广播功能群组组员名单;
-h或–help:在线帮助;
-i或–interfaces:显示网络界面信息表单;
-l或–listening:显示监控中的服务器的Socket;
-M或–masquerade:显示伪装的网络连线;
-n或–numeric:直接使用ip地址,而不通过域名服务器;
-N或–netlink或–symbolic:显示网络硬件外围设备的符号连接名称;
-o或–timers:显示计时器;
-p或–programs:显示正在使用Socket的程序识别码和程序名称;
-r或–route:显示Routing Table;
-s或–statistice:显示网络工作信息统计表;
-t或–tcp:显示TCP传输协议的连线状况;
-u或–udp:显示UDP传输协议的连线状况;
-v或–verbose:显示指令执行过程;
-V或–version:显示版本信息;
-w或–raw:显示RAW传输协议的连线状况;
-x或–unix:此参数的效果和指定"-A unix"参数相同;
–ip或–inet:此参数的效果和指定"-A inet"参数相同。

DNS

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

实作一

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

实作二

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

ipconfig/displaydns
ipconfig/flushdns

查看
缓存

实作三

使用nslookup qige.io命令,将使用默认的 DNS 服务器查询该域名。当然你也可以指定使用 CloudFlare(1.1.1.1)或 Google(8.8.8.8) 的全球 DNS 服务器来解析,如:nslookup qige.io 8.8.8.8,当然,由于你懂的原因,这不一定会得到正确的答案。

nslookup qige.io
nslookup qige.io 8.8.8.8

查询
指定查询

问题:
上面秘籍中我们提到了使用插件或自己修改 hosts 文件来屏蔽广告,思考一下这种方式为何能过滤广告?如果某些广告拦截失效,那么是什么原因?你应该怎样进行分析从而能够成功屏蔽它?
回答:
为什么可以过滤:
修改hosts文件是指将某个网站重定向到一个地址,使之无法访问,达到屏蔽广告的效果;
原因:
可能某些广告不是以链接形式出现;
怎么成功屏蔽:
一般可以通过安装浏览器插件如 AdGuard、AdBlocker 等来拦截和过滤。这种方法简单方便有效,不过有一定安全或隐私问题,因为该插件实时知道你访问的 URL。假设不使用这种第三方的插件,希望自己完全控制,那么就请考虑在我们前面提到的 hosts 文件中添加 DNS 记录。

cache

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

实作一

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

实作二

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

不用缓存
可见花费时间为2.35s。
肉眼的见的速度变慢,而某些软件所扫描出的电脑垃圾文件大多为浏览器缓存,因此可看出该被清理的是他们本身(XX管家,XX卫士等等)。

Wireshark实验
Cisco Packet Tracer 实验

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值