为啥有的网站域名可以访问而IP不能访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥有的网站域名可以访问而IP不能访问相关的知识,希望对你有一定的参考价值。

参考技术A 应该是服务器设置的问题。服务器如果是独立IP,则域名和IP都能访问,但如果服务器是共享IP,因为服务器上放置了多个站点,所以IP不能访问,电脑也不知道你要访问的具体是哪一个网站。而域名却能具有指定性。

域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名是一个IP地址上有“面具” 。一个域名的目的是便于记忆和沟通的一组服务器的地址(网站,电子邮件,FTP等)。域名作为力所能及难忘的互联网参与者的名称,世界上第一个注册的域名是在1985年1月注册的。

网络之间互连的协议(IP)是Internet Protocol的外语缩写,[1] 中文缩写为“网协”.
网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。IP地址具有唯一性,根据用户性质的不同,可以分为5类。另外,IP还有进入防护,知识产权,指针寄存器等含义。
参考技术B 通过域名可以访问,IP地址不行出现这个情况可以能由一下几种情况引起的:
1、自己搭建的服务器,采用动态IP解析服务。由于网络环境复杂或者多线路引起的IP地址解析失败。
2、电脑或者服务器的INPut:80口被封。或者被其他软件占用。域名采用默认80口解析生效。
3、IP解析中遇到位置因素。域名解析可以通过多线路实现。
优缺点:IP解析速度快。但是生效慢,网络复杂容易出现解析失败。域名解析速度慢但是稳定!

为啥用ip不可以访问知乎,而百度却可以?

我们先来ping知乎的域名,然后可以得到响应的服务器的ip

技术分享图片

之后我们用浏览器来访问这个ip,结果如下

技术分享图片

被拒绝访问了。

而用ip来访问百度,则没啥问题,如图

技术分享图片

技术分享图片

访问知乎的时候,域名可以访问,ip不可以访问,这究竟是为啥?

我们知道,ipv4的ip地址是非常有限的,如果每个人都想拥有一个全球ip,那肯定是不够分配的,不知道啥是全球ip的可以看我这篇文章:谈谈NAT:什么?全球IP和私有IP是什么鬼?

所以,很多网站在发布的时候,是有可能几个域名共用一个CDN服务器的。

技术分享图片

稍微解释下CDN是啥: CDN服务器可以说是一种缓存服务器。当我们要访问某个网站的资源时,如果该网站的服务器离我们很远,这样的话响应速度就会很慢,为了让响应速度快一些,我们可以把资源分布放在各个地方,然后响应客户端的时候,把离客户端较近的资源传送给他

当我们用域名访问知乎的时候,CDN服务器可以根据访问的域名知道你想要的是哪个网站的资源,然后直接给你返回对应的资源。

但是当你用公网ip访问就不一样了,由于一个CDN服务器的公网ip对应多个域名网站,他不知道你想要的是哪个网站的资源,也就是说,当你用 118.89.204.192 去访问知乎的时候,CDN服务器不知道你要访问的是 zhihu.com,还是访问 a.com 或 b.com,所以他也干脆明了点,直接拒绝你的访问。

有人可能会问,我输入域名之后,DNS服务器帮我自动解析成对应的ip,去访问知乎的时候,也还是用ip访问的啊,这貌似和ip访问没啥区别啊。

确实,访问的时候,DNS服务器都会帮们我把域名解析成ip去访问,CDN服务器之所以能够检测到对应的域名,其实是这样的:

当客户端用域名访问知乎的时候,DNS会解析成对应的ip去访问CDN服务器,然后CDN服务器可以根据SNI机制获得该ip对应的来源域名,然后返回对应的资源。

这里稍微简单粗暴解释下SNI机制:该机制主要是用来解决一个服务器对应多个域名时产生的一些问题,通过这种机制,服务器可以提前知道(还没建立链接)客户端想要访问的网站,想要知道更加具体的我已经给你们准备好文章:https://blog.csdn.net/firefile/article/details/80532161

知道了用域名可以访问知乎,而用ip不可以访问知乎之后,我们再来说说百度。

为啥百度ip和域名都可以访问呢?

这其实很简单,就是百度用的CDN服务器,只对应一个网站域名呗,说白了,就是百度有钱!

有收获?不妨点个赞,让更多的人看到这篇文章!

文章目录导航:各类文章汇总

文章首发于我的公众号「苦逼的码农」,更多精彩文章可以关注下我哦。后台回复「666」送你一份我整理的电子书单

技术分享图片

以上是关于为啥有的网站域名可以访问而IP不能访问的主要内容,如果未能解决你的问题,请参考以下文章

该网站域名为啥访问不了?

如何设置tomcat,使得网站只能用域名访问,不能用IP访问

网站ping域名和ping IP地址都可以Ping通,但为啥浏览器无法访问

域名解析后网站为啥还不能访问

求教我的tomcat配置了域名之后,为啥域名访问正常,而ip反而不能访问呢

云服务器,网站域名没有备案为啥就无法访问呢?