我有一个虚拟服务器(共享主机),有一个域名(和几个子帐户,每个子帐户都是一个单独的站点,也有自己的域名)
我想知道是否有办法找出域名的 IP 地址。我尝试 ping 它,但没有成功。它只给我该域名的 IP 地址物理服务器它托管着我的虚拟域名,或者至少我是这样假设的,因为它为我拥有的每个域名提供了相同的 IP。
抱歉,虽然我不是技术新手,但我不熟悉这些服务器内容。
答案1
虚拟服务器和共享主机往往是不同的东西,尽管这不会影响我的答案。
单个服务器(物理的或虚拟的,无所谓)可以托管许多不同域的网站。
每个域名都将解析为相同的 IP 地址,即相关服务器的 IP 地址。
因此 www.example.com 解析为 198.51.100.21,但 www.example.org 也是如此。它们都托管在同一台服务器上。
因此,当您 ping www.example.com 和 www.example.org 时,您会得到相同的响应,如果它们由同一台服务器托管,那就应该如此。
注意:即使两个域名解析到不同的 IP 地址,它们也可能托管在同一台服务器上,因为一台服务器可以支持多个 IP 地址。
dig
您可以使用或等工具查找服务器名称/完全限定域名/网站的 IP 地址nslookup
。例如,
nslookup www.google.com
Non-authoritative answer:
www.google.com canonical name = www.l.google.com.
Name: www.l.google.com
Address: 74.125.113.103
Name: www.l.google.com
Address: 74.125.113.104
Name: www.l.google.com
Address: 74.125.113.105
Name: www.l.google.com
Address: 74.125.113.106
Name: www.l.google.com
Address: 74.125.113.147
Name: www.l.google.com
Address: 74.125.113.99
当 Web 服务器托管多个网站(或域)时,服务器需要知道您要访问哪个域(名称),而 IP 地址是不够的。这就是为什么,
http://198.51.100.21/something
对于托管多个域的服务器来说,这通常是不可能的(对于网络托管服务提供商而言尤其如此)。
还有许多其他原因导致使用 IP 地址也是不合适的。
我喜欢将其想象成邮政地址。仅仅知道某人的邮政地址(如服务器 IP 地址)是不够的,您还必须知道他们的名字(如网站域名)并将其写在信件上。如果您不知道,您只知道他们的妈妈(即默认网站)会打开并阅读它。
答案2
看起来,在托管您域名的服务器上,所有托管域名都共享同一个 IP 地址,这是服务器的公共 IP 地址。为了将流量引导到特定域名的正确文件,主机正在使用基于名称的虚拟主机。如果您尝试使用 IP 地址访问任何域,您很可能只会从主机获得默认页面。
答案3
dig domain.com
将为您提供您的域名指向的 IP(如果您使用的是 Windows,则为 nslookup)
你确定你托管的“物理主机”不是你的 vps IP 吗?听起来你的提供商可能在做一些不可靠的 NAT,如果你的网站指向物理主机上的 IP,而不是虚拟机上的 IP
最简单的方法是通过 ssh 登录到你的 vps 并运行
ifconfig
这将告诉你服务器的 IP