ipconfig
在cmder命令行中输入ipconfig /all可以看到计算机的详细ip信息,在最后一个部分是正在使用的网络的配置,网关、子网掩码和ip地址是必须出现的。
ipconfig命令可以查看电脑的网络配置,是建立连接的第一步
ping
ping是工作在 TCP/IP 网络体系结构中应用层的一个服务命令
例如查看与百度的连接
ping www.baidu.com
TTL是存活周期,为0时则丢弃,时间越短说明网速越快
有时也会出现请求超时的情况
这时可能是因为对方设置了防火墙,无法连接,当对方关闭防火墙后则可以连接。
ping 百度的 IP 即 ping 14.215.177.39 没问题,但 ping 百度的域名即 ping www.baidu.com
不行,那么可能的原因是什么?如何进行验证和解决?
当ping域名的时候需要先到DNS服务器上获得该域名对应的ip地址,所以可能是DNS服务出错了
tracert
tracert称为路由追踪,该命令行程序可用于跟踪 Internet 协议 (IP) 数据包传送到目标地址时经过的路径
比如查看计算机与www.baidu.com的连接经过了哪些节点,可通过下列命令实现
tracert www.baidu.com
tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?
tracert命令获得节点的原理是利用TTL实现,首先发送TTL=1的数据包,这样就得到了第一个地点,TT;L=2的数据包得到第二个地点,以此类推当TTL达到最大值后就得到了全部的地点信息。
你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?
因为当你的计算机访问外网时,首先要通过的是网关。
在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?
这表示没有收到反馈的信息
ARP
ARP地址解析协议,是用于根据给定网络层地址即 IP 地址,查找并得到其对应的数据链路层地址即 MAC地址的协议
运行 arp -a 命令查看当前的 arp 缓存, 请留意缓存了些什么。
ping 一下你旁边的计算机 IP(注意,需保证该计算机的 IP 没有出现在 arp 缓存中,或者使用 arp -d * 先删除全部缓存),再次查看缓存,你会发现一些改变,请作出解释。
先使用命令删除缓存,再查看
ping旁边的计算机后可以发现该计算机的ip地址和MAC地址都保存在了缓存中。
请使用 arp /? 命令了解该命令的各种选项
你可能会在实作三的操作中得到 “ARP 项添加失败: 请求的操作需要提升” 这样的信息,表示命令没能执行成功,你该如何解决?
鼠标右键点击cmder选择以管理员身份运行
我的网关地址是192.168.43.1,MAC地址是28-39-26-01-5B-BD,使用下面命令将网关设置为静态的
arp -s 192.168.43.1 28-39-26-01-5B-BD
在实作三中,为何缓存中常常有网关的信息?
因为使用arp时会发送广播,因此网关能够收到进而获得网关的信息
我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?
静态分配的ip地址是固定的,优点是便于管理,特别是在根据IP地址限制网络流量的局域网中,以固定的IP地址或IP地址分组产生的流量为依据管理,可以免除在按用户方式计费时用户每次上网都必须进行的身份认证的繁琐过程
缺点是用户分配的地址可能被非法盗用,影响网络的正常使用
arp可以查看缓存的ip地址和MAC地址,当再次连接时会先看缓存中有没有一样的ip地址,有的话直接从缓存中提出。
DHCP
DHCP即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:
用于内部网或网络服务供应商自动分配 IP 地址给用户
用于内部网管理员对所有电脑作中央管理
当使用ipconfig/release命令时会释放连接,计算机会显示无网络连接状态,使用ipconfig/renew命令后会重新分配网络地址,计算机又显示有网状态
在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为 169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?
169.254.x.x是内部地址,在访问外网时会分配一个新的地址
经常的,在一个固定地方的网络配置我都喜欢采用 静态/手动配置,而不是动态 DHCP 来进行。你能想到是什么原因吗?
因为使用DHCP不是很安全
netstat
netstat是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。
Windows 系统将一些常用的端口与服务记录在 C:\WINDOWS\system32\drivers\etc\services 文件中,请查看该文件了解常用的端口号分配
上图是该文件的一小部分
比如37号端口是系统用来核对校准时间的,80号端口是用来上网的。
使用 netstat -an 命令,查看计算机当前的网络连接状况
其中 LISTENING表示该网络连接处于监听状态,ESTABLISHED表示处于连接状态,TIME_WAIT表示结束了这次连接,CLOSE_WAIT表示被动关闭。
DNS
DNS即域名系统,是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 的 53 号端口
Windows 系统将一些固定的/静态的 DNS 信息记录在 C:\WINDOWS\system32\drivers\etc\hosts 文件中,如我们常用的 localhost 就对应 127.0.0.1 。请查看该文件看看有什么记录在该文件中
解析过的 DNS 记录将会被缓存,以利于加快解析速度。请使用 ipconfig /displaydns 命令查看。我们也可以使用 ipconfig /flushdns 命令来清除所有的 DNS 缓存
下面是其中一部分
使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名
上面秘籍中我们提到了使用插件或自己修改 hosts
文件来屏蔽广告,思考一下这种方式为何能过滤广告?如果某些广告拦截失效,那么是什么原因?你应该怎样进行分析从而能够成功屏蔽它?
hosts相当于一个库,如果输入的域名在hosts中有,就会先调用其对应的IP,而不通过DNS,因此可以通过手动添加错误的ip网址以达到屏蔽某网站的目的
cache
cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。
浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。
打开 Chrome 或 Firefox 浏览器,访问 https://qige.io ,接下来敲 F12 键 或 Ctrl + Shift + I 组合键打开开发者工具,选择 Network 面板后刷新页面,你会在开发者工具底部看到加载该页面花费的时间。请进一步查看哪些文件被 cache了,哪些没有
对比速度
总结
经过这次在cmder下使用一些常用命令,让我对网络连接和网络配置有了初步的了解,基础的东西往往是重要的,通过命令能够更加清楚的了解网络的连接,希望今后多加练习,熟练的掌握更多的命令。