【发布时间】:2017-10-04 11:31:07
【问题描述】:
我最近了解了 DNS(域名系统或域名服务器)及其工作原理。我想知道 - 我可以使用其 IP 地址访问网站吗?如何访问? -谢谢你
【问题讨论】:
-
你也可以用谷歌搜索!
-
我没有从那里得到这就是我放在这里的原因。
标签: dns
我最近了解了 DNS(域名系统或域名服务器)及其工作原理。我想知道 - 我可以使用其 IP 地址访问网站吗?如何访问? -谢谢你
【问题讨论】:
标签: dns
TL;DR:这取决于服务器的配置方式,但可能不是,我不会依赖它。
这是因为您尝试访问的网站可能位于反向代理或负载平衡器之后。负载均衡器的作用类似于铁路交换机,具体取决于您用来连接它的主机名。
为简单起见,假设google.com 和mail.google.com 位于具有相同IP 的同一台服务器上:192.168.1.1。
如果您尝试直接连接到http://192.168.1.1/,Web 服务器如何知道您想要哪个服务? 不会。事实上,有些公司的业务完全基于负载平衡其他公司的服务器。
当您使用浏览器连接到主机时,例如:https://www.google.com,您的浏览器会在后台发送一个特殊的 HOST=www.google.com 标头。负载均衡器处理此标头并将请求路由到正确的服务器(可能在完全不同的服务器、网络等上)。
Digital Ocean 有一个关于如何configure a basic virtual host for nginx 的很棒的教程。这展示了多主机配置的基本原理。
如果您不想弄乱 DNS 服务器,您可以通过修改 hosts 文件在桌面上设置本地实验室环境。您可以通过 Google 搜索您的操作系统主机文件所在的位置。
如果你可以访问 cURL,你可以像这样测试结果:
# if you've configured a virtual host for mysite01.local on port 80
curl --verbose --header 'Host: mysite01.local' 'http://127.0.0.1'
# if you've configured a virtual host for mysite02.local on port 80
curl --verbose --header 'Host: mysite02.local' 'http://127.0.0.1'
# depending on your configuration this may return a 404 or point to one of your previous sites
curl --verbose 'http://127.0.0.1'
【讨论】:
是的,您可以使用 IP 地址访问任何域。域名只是网站的名称,IP 地址是页面/网站的地址。 您始终可以使用命令提示符 ping 网站:
ping www.google.com
你会得到一个 IP 地址,在这种情况下是216.58.197.78。现在,当您在浏览器中点击 ip 地址时,您将被重定向到 google.com。
您可以将 DNS(域名系统)视为提供 IP 地址(216.58.197.78)和域名(www.google.com)之间的映射的表
【讨论】: