我正在尝试改进我网站服务器上的生产环境。我注意到许多网站没有可直接访问的 IP 地址,但我的网站 IP 似乎可以访问。例如:
[lucas]$ nslookup professionalSite.org
Server: 208.67.222.222
Address: 208.67.222.222#53
Non-authoritative answer:
Name: professionalSite.org
Address: 192.12.345.102
[lucas]$ nslookup mySite.org
Server: 208.67.222.222
Address: 208.67.222.222#53
Non-authoritative answer:
Name: mySite.org
Address: 54.133.23.199
[lucas]$
在此示例中,当我在浏览器中输入“192.12.345.102”IP(来自professionalSite.org
)时,它是无效的。在我的网站上,当我在浏览器中输入“54.133.23.199”时,它会解析到我的网站。
那么,我是否应该担心以这种方式处理传入请求?“professionalSite.org”和“mySite.org”之间的优缺点是什么?如何防止直接向我的静态 IP 发送请求(类似于上面的“professionalSite.org”的请求)?
更新
这是一个更具体的例子:
[lucas]lucas$ nslookup craigslist.org
Server: 208.67.222.222
Address: 208.67.222.222#53
Non-authoritative answer:
Name: craigslist.org
Address: 208.82.238.129
当我在浏览器中导航到时208.82.238.129
,出现 404 错误。但在我的网站上,网站运行正常。为什么会这样?在浏览器中直接输入静态 IP 时出现 404 错误有什么好处吗?
答案1
我真的不确定你说的“隐藏”是什么意思,但我猜你的意思是如果你直接通过 IP 联系某个网站,你就会收到错误(例如 404)。
这里发生的事情如下:HTTP 1.1 能够传输您想要联系的站点名称以进行请求(与 SSH 不同),因此您可以使用单个 IP 地址运行多个域。但是,如果您仅使用 IP 与 Web 服务器通信,它将有一个默认站点(通常是定义的第一个 vhost)来处理此请求。一些站点为此情况定义了一个特定的 vhost,它将始终以错误作出反应。这样做的原因有很多,尤其是在由许多服务器运行的大型站点上,但通常不会产生很大的“安全影响”。
您可以将 Web 服务器配置为执行相同操作,但如果它仅为一个站点(您的站点)提供服务,那么这样做绝对没有任何安全优势 - 如果您仅通过其 IP 与其通信,那么您的网站将面临与使用域名时完全相同的安全风险。
答案2
您看到的是您网站的 DNS 记录。您无法“隐藏”它们,您也不想这样做;它们必须公开可见,否则没有人能够通过其 URL 访问您的网站(访问者只能通过其 IP 地址访问您的网站)。