精华内容
下载资源
问答
  • 为什么域名能够访问网站,而直接使用IP可以

    万次阅读 多人点赞 2018-10-16 11:19:22
    为什么域名能够访问网站,而直接使用IP不可以背景介绍提出问题分析原因只输入ip地址访问不到域名的原因:多个站点对应一个ip地址的问题虚拟主机技术反向代理技术小结 背景介绍 在访问杭电官网杭电官网的时候,直接在...

    背景介绍

    在访问杭电官网杭电官网的时候,直接在浏览器上,输入域名是可以得到访问结果的。因此,产生了一种猜测,既然网络中实际上是根据域名转换的IP来直接访问服务器的,那么我直接通过IP来访问杭电官网是否可以??

    通过nslookup 解析出杭电官网的ip地址,然后在浏览器中手动输入相关ip地址,结果并不能得到访问结果,为什么?

    解析到的ip地址有两个
    218.75.123.182
    218.75.123.181
    初步怀疑可能是用这两个IP地址做了高可用
    当其中某一个Ip地址访问不到的时候,另外一个ip地址可以访问到。

    继而,我决定换个网站来试一下,看能否直接访问杭电OJ高潮来了,惊讶的发现杭电OJ和杭电官网,这两个网站对应的IP地址是同一个。

    提出问题

    由于上面的情况,我内心中充满了疑问,主要有两点。

    • 1.为什么我直接访问www.hdu.edu.cn是能够访问到网站的,而当我输入218.75.123.182却访问不到?
    • 2.为什么www.hdu.edu.cnacm.hdu.edu.cn这两个网站使用dns解析出来的ip地址是一样的?

    分析原因

    查阅众多资料后,基本能够分析出以上两个问题的原因所在。

    只输入ip地址访问不到域名的原因:

    使用nslookup对多个杭电下的网站进行解析,发现很多站点的ip地址是相同的,都是218.75.123.182,218.75.123.181这两个。如下图所示,杭电网站cloud.hdu.edu.cn和www.hdu.edu.cn以及杭电oj系统.www.hdu.edu.cn对应的是同一个公网ip地址(不知道公网ip和私网ip的,可以查一下百度)

    外网查询杭电网站

    这么多站点对应同一个ip地址,你只输入ip地址,浏览器当然不知道你到底要访问哪一个站点,这就是为什么你不能够使用ip地址去访问的原因所在。

    多个站点对应一个ip地址的问题

    理论上来说,一个ip对应一个站点,这是很正常的,那为什么会出现上文中所描述的那样,一个ip地址对应多个站点的情况呢?

    有两种技术可以实现描述的问题

    • 1.虚拟主机技术
    • 2.反向代理技术

    虚拟主机技术

    虚拟主机技术是apache,nginx等服务器所特有的一种功能,也就是实现多个站点在同一台服务器上放置。假如说杭电是使用虚拟主机技术实现的一个IP对应多个web站点的话,那么实际情况应该是这个样子:

    比如我现在有一台服务器,我可以在服务器里面描述这样一种站点和实际路径的关系:

    站点实际存放路径
    acm.hdu.edu.cn/var/www/acm
    www.hdu.edu.cn/var/www/html
    cloud.hdu.edu.cn/var/www/cloud

    那么这样这三个站点就能够在同一台服务器上共存了,当你访问acm.hdu.edu.cn的时候,主要有这么几个步骤

    • 1.dns做域名解析,然后得到解析后的结果,假如说是218.75.123.182。
    • 2.浏览器开始与目标ip地址为218.75.123.182的服务器进行三次握手操作,建立TCP连接
    • 3.浏览器开始构建HTTP请求报文,报文的头部格式为
    Accept	
    */*
    Accept-Encoding	
    gzip, deflate
    Accept-Language	
    zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Connection	
    keep-alive
    Cookie	
    PHPSESSID=v103qj5emvgv5j8hd85d2aro33
    Host	
    acm.hdu.edu.cn
    Referer	
    http://acm.hdu.edu.cn/
    User-Agent	
    Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/62.0
    

    只需要关注这个报文头部的这么一段

    Host	
    acm.hdu.edu.cn
    

    通过这个报文可以知道,浏览器要访问ip地址为218.75.123.182的服务器的哪一台HOST(这里有一个概念,服务器上面可以有一个站点,也可以由多个站点,有一个站点的话,服务器上就只有一个HOST,如果有多个站点的话,服务器上面就会有多个虚拟HOST

    • 4.服务器接受到这个报文之后,会进行分析,apache服务器会根据报文中的host,来匹配自己的配置文件。假设,服务器中的配置文件是这样写的:
    <VirtualHost *:80>
     DocumentRoot /var/www/acm
     ServerName acm.hdu.edu.cn
    </VirtualHost>
    <VirtualHost *:80>
     DocumentRoot /var/www/html
     ServerName www.hdu.edu.cn
    </VirtualHost>
    <VirtualHost *:80>
     DocumentRoot /var/www/cloud
     ServerName cloud.hdu.edu.cn
    </VirtualHost>
    

    那么当请求报文中的HOST是acm.hdu.edu.cn的时候,apache服务器就会根据自己的配置文件所写的那样,去/var/www/acm目录下寻找站点内容。

    • 5.服务器处理请求,构建响应报文,发送响应报文到客户端

    反向代理技术

    当我以为我已经接近了事实真相的时候,意外的发现了另外一个问题,我登录到校园网,然后继续使用nslookup进行域名解析,发现了一个惊讶的事情,解析之后,上文中所提到的那三个站点的ip完全不一样。也就是说实际上这三个站点完全放在了不同的服务器上,即不可能是使用的虚拟主机技术(如果使用虚拟主机技术,这几个站点肯定是在同一台服务器上的)。
    如下图所示
    在这里插入图片描述
    内网、外网解析文中所述三个站点的情况如下表所示

    网站域名外网解析内网解析
    acm.hdu.edu.cn218.75.123.182,218.75.123.181192.168.102.19
    www.hdu.edu.cn218.75.123.182,218.75.123.181192.168.102.6
    cloud.hdu.edu.cn218.75.123.182,218.75.123.18110.1.18.137

    既有192.168开头的私网ip地址,又有10.1开头的私网ip地址,这种特殊的网络结构是由于杭电的网络规划造成的,一开始杭电使用的是192.168开头的私网ip地址,后来发现不够了,继而进行扩展,使用10.1开头的私网ip地址。这里对于这一部分内容不做深究

    由此,我们基本可以推断出,杭电实际的网络结构是下图所示的样子。而不是上文中,我所推测的虚拟主机。
    在这里插入图片描述

    当我在外网访问acm.hdu.edu.cn的时候,主要经历了这么几个步骤。
    通过dns解析获得acm.hdu.edu.cn的反向代理ip地址 218.75.123.181。
    1.客户端发送报文到ip地址为218.75.123.181的服务器上,中间要经过NAT路由器,做NAT转化,把私网IP地址转化为公网IP地址。
    2.数据包在因特网中进行路由准发
    3.数据包最终到达218.75.123.181的apache服务器,这个服务器实际上并不承担web站点任务,主要是作为一个WEB网站的网关角色(反向代理角色)。
    4.请求报文中的HOST是acm.hdu.edu.cn,因此,反向代理服务器会将请求报文转发至域名为acm.hdu.edu.cn的主机上。acm主机处理完请求之后,会将处理后的结果返回至客户端。

    小结

    本文主要讲了两方面:

    • 1.直接使用ip地址访问不了站点的原因

    原因就在于该ip地址可能对应着多个web站点,单单依靠ip地址是不知道如何匹配到哪个web站点的。但是通过域名,我们就能够知道具体要访问哪一个HOST。如果使用虚拟主机,直接找到相关virtual HOST即可,如果使用反向代理,那么通过代理找到HOST的实际私网地址也可以。

    • 2.只有一个公网ip如何实现多个WEB站点的访问

    有两种办法可以实现,其一是虚拟主机,其二就是反向代理。通过目前来看,虚拟主机的实现方式已然不多,更多的企业或者学校使用的是反向代理技术

    针对本案例(杭电若干网站),这若干网站经过DNS解析后对应的是同一个ip218.75.123.182或者218.75.123.181,用户请求接入到这个公网ip的时候,该服务器会进行反向代理,根据请求报文中的HOST名字,将请求报文转发至具体的局域网内部的主机进行处理,然后再将处理结果进行返回。

    展开全文
  • 在开发中遇到这种情况,在开发工具里面访问可以,当时到了手机上之后就发现的请求可以正常获取数据,的则不行。 都是使用https地址,也配置后台了,但是就是不出数据,总是无法请求服务。 后来检查在手机上当...

    在开发中遇到这种情况,在开发工具里面访问可以,当时到了手机上之后就发现有的请求可以正常获取数据,有的则不行。

    都是使用https地址,也配置后台了,但是就是不出数据,总是无法请求服务。
    后来检查在手机上当请求wx.request时总是卡住不动了,向服务器发送不了请求,查找相关的资料分析这种情况很可能是TLS版本的问题,腾讯官方说小程序要求 TLS1.2及以上的版本才行。

    所以再遇到这个问题的时候,就检查一下访问的网站的TLS版本是否是1.2以上的,如果是自己架设的服务器,比如Tomcat这种,就可以在tomcat 的server.xml中配置的connector port=”443”那个标签里面把 SSLProtoco="TLSv1.2" 设置上就好啦

    原创文章

    展开全文
  • 访问不了github网站问题解决

    千次阅读 2020-02-19 00:28:34
    查了一下原因是附近DNS服务器上没有github的IP地址,毕竟美国的网站嘛,所以访问不到了。 解决办法:修改本地hosts文件,手动给出github的IP地址。 1. 首先可以在站长工具 - DNS查询:...

    现象:打不开github,ping一下发现请求超时或者不稳定的老是会发4个包丢失1个包。

    很郁闷,访问其他网站都是好好的。。

    查了一下原因是附近DNS服务器上没有github的IP地址,所以访问不到了。

    解决办法:修改本地hosts文件,手动给出github的IP地址。

    1. 首先可以在站长工具 - DNS查询:http://tool.chinaz.com/dns?type=1&host=github.com&ip=

    选择TTL最小的那个IP地址。但我试了好多个才行,以下你们可以直接试一下:

    13.250.177.223 github.com
    13.229.188.59 github.com
    192.30.253.112 github.com
    52.74.223.119 github.com

    我是用了最后一个就OK了。

    2. 修改hosts文件,文件路径为:C:\Windows\System32\drivers\etc\hosts

    在最后添加即可:#是注释,不加也OK的

    参考出处:

    https://blog.csdn.net/weixin_43935907/article/details/90044553

     

     

     

     

    展开全文
  • phpstudy添加网站访问不了问题

    千次阅读 2019-10-14 20:31:32
    一、如下进行添加要发布的网站: ...三、此时访问会出现访问不到的情况 需要将C:\Windows\System32\drivers\etc 下的hosts文件夹中加入刚添加的域名,如下: 此时,通过域名就可以访问发布的网站了 ...

    一、如下进行添加要发布的网站:

    二、将对应的文件粘贴到上图根目录之下

    三、此时访问会出现访问不到的情况 需要将C:\Windows\System32\drivers\etc 下的hosts文件夹中加入刚添加的域名,如下:

    此时,通过域名就可以访问发布的网站了

     

    展开全文
  • 个别网站访问不了的解决方法

    万次阅读 2018-04-19 16:11:05
    访问不了该网址的电脑上ping 上个步骤获得ip,看是否能ping通,如果能ping通则说明是dns的问题3.把dns修改为首选114.114.114.114,备选8.8.8.8,一般就可以访问该网站了如果无法执行上面的步骤,可以直接把...
  • 指完发现用域名访问不网站,但是公网ip可以。于是看了网上资料,好像是要清除浏览器DNS缓存,我清完没用。然后发现我的域名是https的,查了查,好像是没有在服务器上安装SSL证书,导致我用域名访问不了。最后真是...
  • 宝塔面板建立的网站为什么访问不了?有些用户在本地环境的宝塔面板新增网站后,却出现了访问不了的情况,这里宵云小编提供一种解决办法供大家参考。 将宝塔面板软件安装好后,配置IIS、数据库、PHP环境。按照步骤...
  • 怎样让自建网站在内外网访问时不用加端口名 怎样让自建网站在内外网访问时不用加端口名 工具/原料 Internet 信息服务(IIS)管理器 路由器。已建好的网站 方法/步骤 打开Internet 信息服务(IIS)管理器,双击第一...
  • 前几天我的github还能访问,这几天访问就出现了如下的情况: 原理:修改C:\Windows\System32\drivers\etc下的hosts...下次访问了,修改为最新的IP就行。 打开浏览器重新访问github,又可以访问了: 如果还是.
  • 1.如果是tp5 那么请你伪静态一下 代码如下 location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; }} 转载于:https://www.cnblogs.com/roseY/p/9459160.html...
  • 搞学术的都应该对谷歌学术情独钟,但谷歌在国内许多地方是访问不到的(虽然笔者在校园内可以浏览谷歌网站,但离开校园后想找些免费的论文也是很无奈),于是笔者寻找了许许多多方法,搜集了很多网站,期望谷歌访问...
  • 2、按照步骤创建网站,本地若如果能正常访问,证明本系统中hosts文件未加入 举个栗子:127.0.0.1 wzweb.com hosts文件位置如下: C:\Windows\System32\drivers\etc 3.如果是tp5 那么请你伪静态一下 代码...
  • https://www.jianshu.com/p/6e30d2b70886 添加监听IP地址:netsh http add iplisten ipaddress=192.168.2.223 netsh http add iplisten ipaddress=0.0.0.0 转载于:...
  • 这是因为 Chrome 默认使用的是谷歌搜索引擎,你懂的,由于某些原因,在一般情况下,大陆是用了谷歌搜索引擎的。因此,你需要把搜索引擎换成百度、搜狗、360、必应或者其他。 设置方法:点击 Chrome 浏览器页面右....
  • 为什么能直接通过IP访问网站

    万次阅读 2016-06-23 18:36:58
    原文链接: http://www.examw.com/java/jichu/143769/为什么能直接通过IP访问网站,从理论上说,在IE(或其他的Web浏览器,如Firefox)的地址栏中输入这四个IP地址中的任何一个,都可能访问www.csdn.net.如输入...
  • tomcat部署的网站访问不到静态资源

    万次阅读 2016-10-15 21:46:31
    问题描述:javaweb项目,tomcat发布,别人写的工程部署到自己的tomcat上,访问不到静态资源 404错误,但在别人的机器上可正常使用。好久不接触前端代码了,最后发现居然是路径问题。。。。 静态资源在/WEB-INF/...
  • 为了提高网站访问速度,系统会自动将已经访问过并获取了IP地址的网站存入本地的DNS缓存里,一旦再对这个网站进行访问,则不再通过DNS服务器而直接从缓存中取出该网站的IP地址进行访问。但有时就是因为本地DNS缓存...
  • 在网上试了很多方法 但是都不行 最后自己捣鼓了一下 操作如下 ... 之后在Proxy Server上设置 ...虽然搞懂原理,但是我后面改了请求连接如下 即可正常请求成功了 http:8080/emps?pn=2 但是后面发生了一件更诡...
  • 我买的是腾讯云的服务器Cenos 6.5系统,自己配置的DNS域名服务器,nslookup www.xuefeng66.cn能够正常解析为115.159.201.119(若是非...解析成功后,发现通过IP可以访问,但是通过域名访问,终于发现时tomcat的问题
  • 使用Chrome访问https网站时,可能会出现以下错误,本文说明如何解决此类问题: “您的连接不是私密连接”、... 解决Chrome浏览器访问https网站的问题 方法/步骤 参考下面经验...
  • vi /etc/selinux/config 文件(vi后面个空格)   打开后按a插入 修改参数部分 SELINUX=disabled 参数可选(enforcing、permissive、disabled) 修改SELINUX=disabled之后 按下ESC,输入:wq保存退出 然后...
  • 部署了个网站很久了,电脑域名访问和地址访问都正常,手机只能地址访问,域名访问不了,请问这是什么问题?跪求。 和阿里云接入备案关系吗?
  • 解决方案: 加入nginx.exe的路径
  • ngnix项目配置网站不加www可以访问

    千次阅读 2019-01-10 17:54:16
    1.首先要在域名解析中...2.然后在ngnix的配置文件中需要加入带www的地址配置: server {  listen 80;  server_name www.baidu.cn;  return ;//项目地址 } server {  listen 80;  server_name ba...
  • 解决办法在chrome启动目标加入如下参数  最后完整路径 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-infobars --ignore-certificate-errors
  • python学习中爬取网站视频时由于python本身能地址限制的原因,能直接用response = requests.get(url)获取到网页源代码,进而无法爬取网站信息。 我以猫眼网为例: 访问猫眼代码如下: import requests from ...
  • 4. 唯独在家时,采用无线路由分配的IP访问,直接显示无法打开。但IP是可以Ping通的 5. windows防火墙没有打开 6. 由于仅无线路由分配的IP访问,应该可以排除文件夹权限问题 7. tlenet 本机IP 端口 不通 ...
  • 最近老是访问各种网站,提示无法访问网站。然后刷新几下又能访问了 解决方案 don't怀疑,就是你的网络DNS被劫持了。修改你的DNS 国内通用的114DNS:114.114.114.114和114.114.115.115 步骤如下 以win10为例...
  • 做了个项目,部署到服务器去,因为做了...但打开最新的网站不能成功,问我为什么,我在网上查找了下资料(一般手机默认端口为80和8080,能进行设计),在根据实际情况(真正的网站可以在手机打开,测试的打开),因
  • <p><img alt="" height="385" src="https://img-ask.csdnimg.cn/upload/1610935446846.png" width="1332" />如图所示,nacos在Linux机器上启动成功了,...下面用curl访问路径,没有展示页面</p>

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 991,439
精华内容 396,575
关键字:

有的网站访问不了