ipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它的主要用来显示当前网络连接的配置信息。
(1)实作1
使用 ipconfig/all 查看自己计算机的网络配置,尽可能明白每行的意思,特别注意 IP 地址、子网掩码 Subnet Mask、网关Gateway。
可以看到,本主机的IP地址是10.160.76.26;
子网掩码是255.254.0.0,与IP相余就得到该主机所在网络号;
默认网关是10.160.255.254,也就是该网络路由器出口。
(2)实作2
使用 ipconfig/all 查看旁边计算机的网络配置,看看有什么异同。
你的计算机和旁边的计算机是否处于同一子网,为什么?
旁边的计算机ip为192.168.43.189;子网掩码为255.255.255.0,;相与后明显看出网络号不相同,不处于同一子网
(1)实作1
要测试到某计算机如 重庆交通大学 Web 服务器的连通性,可以使用 ping www.cqjtu.edu.cn 命令,也可直接使用 IP地址。
Q:假设你不能 ping 通某计算机或 IP,但你确定该计算机和你之间的网络是连通的,那么可能的原因是什么?该如何处理能保证 ping 通?
A:当不能ping某ip时,我们一般可采用由近及远的连通性测试来确定问题所在。现假设你的 IP 是 192.168.1.89,你旁边计算机的 IP 是192.168.1.64,网关的 IP 是 192.168.1.1 ,那么过程如下:
(4)问题2
Q:假设在秘籍中进行的网络排查中,ping 百度的 IP 即 ping 14.215.177.39 没问题,但 ping 百度的域名即
ping www.baidu.com 不行,那么可能的原因是什么?如何进行验证和解决?
A:能ping通ip,说明目标是存在的,并且是可以访问的;不能ping通域名,说明dns解析失败;因为你输入的域名首先要由你当地的dns服务器转换为对应的ip地址,然后根据ip地址发送icmp数据包测试;由于dns服务器故障或者设置错误,就会出现现在的问题。
TRACERT (Trace Route 的组合缩写),也称为路由追踪,该命令行程序可用于跟踪 Internet 协议 (IP) 数据包传送到目标地址时经过的路径。
(1)实作1
要了解到某计算机如 www.baidu.com 中间经过了哪些节点(路由器)及其它状态,可使用 tracert www.baidu.com命令,查看反馈的信息,了解节点的个数。
可通过网站 http://ip.cn 查看这些节点位于何处,是哪个公司的,大致清楚本机到百度服务器之间的路径。
如上图,由本机到www.a.shifen.com [14.215.177.38]经过了12跳;
其中www.a.shifen.com是百度原来的域名,百度原来叫十分网,因为点击量每点一下赚10分钱,现在已作废了。
第一跳是10.60.255.254,也是我们的网关,内部网络
第二跳是交通大学校园网的网关,也是内部网络
第五跳是重庆电信的ip
最后一跳是百度的ip,
(2)实作2
ping.pe 这个网站可以探测从全球主要的 ISP 到某站点如 https://qige.io
的线路状态,当然也包括各线路到该主机的路由情况。请使用浏览器访问 http://ping.pe/qige.io 进行了解。
(3)问题1
Q:tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?本问题可结合第二部分的 Wireshark实验进行验证。
A:通过向目标发送不bai同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
(4)问题2
Q:在以上两个实作中,如果你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?
A:主机的数据都会通过网关,然后才能访问外网,有多个网关的情况下,前几个节点都一样。
(5)问题3
Q:在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?
A:对方没有回应,或响应超时。
ARP(Address Resolution Protocol)即地址解析协议,是用于根据给定网络层地址即 IP 地址,查找并得到其对应的数据链路层地址即 MAC地址的协议。 ARP 协议定义在 1982 年的 RFC 826。
(1)实作1
运行 arp -a 命令查看当前的 arp 缓存, 请留意缓存了些什么。
然后 ping 一下你旁边的计算机 IP(注意,需保证该计算机的 IP 没有出现在 arp 缓存中,或者使用 arp -d * 先删除全部缓存),再次查看缓存,你会发现一些改变,请作出解释。
可以发现多了一个地址,且是动态的,本机的接口会将新主机的 IP 和物理地址记录在列表中,从而方便下次的访问。
(2)实作2
(3)问题1
Q:你可能会在实作三的操作中得到 “ARP 项添加失败: 请求的操作需要提升” 这样的信息,表示命令没能执行成功,你该如何解决?
A:以管理员身份打开cmd
(4)问题2
Q:在实作三中,为何缓存中常常有网关的信息?我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?
A:因为缓存记录的就自己访问的IP和MAC地址。
静态ARP表项通过手工配置和维护,不会被老化,不会被动态ARP表项覆盖。配置静态ARP表项可以增加通信的安全性。
静态ARP表项可以限制和指定IP地址的设备通信时只使用指定的MAC地址,此时攻击报文无法修改此表项的IP地址和MAC地址的映射关系,从而保护了本设备和指定设备间的正常通信。
(5)ARP 欺骗
DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:
用于内部网或网络服务供应商自动分配 IP 地址给用户
用于内部网管理员对所有电脑作中央管理
简单的说,DHCP 可以让计算机自动获取/释放网络配置。
(1)实作1
一般地,我们自动获取的网络配置信息包括:IP 地址、子网掩码、网关 IP 以及 DNS 服务器 IP 等。使用 ipconfig/release 命令释放自动获取的网络配置,并用 ipconfig/renew 命令重新获取,了解 DHCP 工作过程和原理。
当我们使用ipconfig/release 命令时,会释放现有的IP地址,所以会出现网络断开的情况。
当我们使用ipconfig/renew命令时,会发现网络连接恢复了,说明renew命令会重新租借一个新的IP地址分配给我的电脑,且时间为1天
(2)问题2
在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?
169.254.×.×”实际上是自bai动私有IP地址。在Windows 2000以前的系统中,如果计算机无法获取IP地址,则自动配置成“IP地址:0.0.0.0”、“子网掩码:0.0.0.0”的形式,导致其不能与其它计算机进行通信。而对于Windows 2000以后的操作系统则在无法获取IP地址时自动配置成“IP地址:169.254.×.×”、“子网掩码:255.255.0.0”的形式,这样可以使所有获取不到IP地址的计算机之间能够通信。
(3)问题3
在我校不少地方如教室,计算机都采用了 DHCP 来获得网络配置。假如某天因 DHCP
服务器问题从而不能获得网络配置,那么我们可以查看隔壁教室计算机的配置信息来手动进行网络配置,从而使该计算机能够接入 Internet。
经常的,在一个固定地方的网络配置我都喜欢采用 静态/手动配置,而不是动态 DHCP 来进行。你能想到是什么原因吗?
静态ip(固定ip)是长期分配给一台计算机或网络设备使用的 ip 地址。分配过一次后就不需要重新分配,且稳定性更佳 ,安全性更好。
(4)
DHCP也是一个没有考虑安全性的并且使用广泛的一个协议。比如,因为 DHCP 维护的地址池是有限的,那么我可以不停的发出 DHCP
请求,从而导致 DHCP 地址耗尽。然后我自己再运行一个 DHCP 服务器来提供虚假的网络信息,特别是伪造的网关和 DNS 信息。
无论是使用 TCP 还是 UDP,任何一个网络服务都与特定的端口(Port Number)关联在一起。因此,每个端口都对应于某个通信协议/服务。
netstat(Network Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。
(1)实作1
Windows 系统将一些常用的端口与服务记录在 C:\WINDOWS\system32\drivers\etc\services文件中,请查看该文件了解常用的端口号分配。
1.HTTP协议代理服务器常用端口号:80/8080/3128/8081/9098
2.SOCKS代理协议服务器常用端口号:1080
3.FTP(文件传输)协议代理服务器常用端口号:21
4.Telnet(远程登录)协议代理服务器常用端口号:23
HTTP服务器,默认端口号为80/tcp(木马Executor开放此端口)
HTTPS(securely transferring web pages)服务器,默认端口号为443/tcp 443/udp
Telnet(不安全的文本传送),默认端口号为23/tcp(木马Tiny Telnet Server所开放的端口)
FTP,默认的端口号为21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口)
(2)实作2
使用 netstat -an 命令,查看计算机当前的网络连接状况。更多的 netstat 命令选项,可参考上面链接 4 和 5 。
DNS(Domain Name System)即域名系统,是互联网的一项服务。它作为将域名和 IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 的 53 号端口。
(1)实作1
Windows 系统将一些固定的/静态的 DNS 信息记录在 C:\WINDOWS\system32\drivers\etc\hosts
文件中,如我们常用的 localhost 就对应 127.0.0.1 。请查看该文件看看有什么记录在该文件中。
(2)实作2
解析过的 DNS 记录将会被缓存,以利于加快解析速度。请使用 ipconfig /displaydns 命令查看。我们也可以使用ipconfig /flushdns 命令来清除所有的 DNS 缓存。
(3)实作3
使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名。当然你也可以指定使用CloudFlare(1.1.1.1)或 Google(8.8.8.8) 的全球 DNS 服务器来解析,如:nslookup qige.io 8.8.8.8,当然,由于你懂的原因,这不一定会得到正确的答案。
cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。
(1)实作1
打开 Chrome 或 Firefox 浏览器,访问 https://qige.io ,接下来敲 F12 键 或 Ctrl + Shift+ I 组合键打开开发者工具,选择 Network 面板后刷新页面,你会在开发者工具底部看到加载该页面花费的时间。请进一步查看哪些文件被 cache了,哪些没有。
(2)实作2
接下来仍在 Network 面板,选择 Disable cache 选项框,表明当前不使用 cache,页面数据全部来自于 Internet,刷新页面,再次在开发者工具底部查看加载该页面花费的时间。你可比对与有 cache 时的加载速度差异。