在服务器上使用多个IP地址有什么好处?


Answers:


31

一些(但不是全部)原因:

  • 如前所述,为了托管多个SSL站点
  • 因为您可能要合并来自多个主机的服务,所以您需要保留地址
  • 为了使用以后可以转移到另一台主机的IP地址
  • 通过将主机的IP地址添加到另一台主机来补偿当时发生故障的主机
  • 如果您在同一物理/逻辑网络/ VLAN上有多个IP网络,它将阻止流量通过网关交换,从而加快了速度并减轻了负载
  • 为了设置具有默认IP地址的设备,因此您需要在同一网络上添加地址
  • 为了使用不同的公共IP地址来避免防火墙或避免在垃圾邮件过滤器中被列入黑名单
  • 为了使事情对外部人不那么明显。例如,您可能在IP地址1.2.3.4上运行apache,而仅在1.2.3.5上允许SSH。这样,如果有人尝试攻击站点后面的IP地址,他们将不会发现SSH正在运行。
  • 为了多次运行相同的服务
  • 为了在反向DNS查找中使用不同的主机名。例如,如果您要从此主机连接到外部主机,并且希望以两个不同的域名/主机名的形式出现
  • 为了不暴露服务之间的共性。例如,如果您托管site1.example.com和site2.example.org,并且将它们映射到不同的IP而不是使用CNAME,则它们之间将没有明显的链接

1
增加到单个物理接口的连接数。请参阅:stackoverflow.com/questions/410616/...
Homer6

4

对于Web服务器,这取决于。如果您有多个虚拟主机,则在Apache中,例如,服务器从VirtualHost块中知道要使用哪个IP。

 <VirtualHost 10.10.10.1:80>
   ...
 </VirtualHost>

您还可以让VirtualHost监听Apache当前正在监听的所有可用接口(例如,通过Listen指令。 Listen *:80

 <VirtualHost *:80>
   ...
 </VirtualHost>

如果您有多个站点在启用了SSL的多个站点的服务器上运行,则最好为每个站点使用单独的IP。这是因为SSL证书是在发送HTTP标头之前交换的。如果在一个IP上有多个虚拟主机,那么没有主机头,Apache将不会知道您要访问的站点。

我敢肯定还有许多其他用例,这是一个常见的用例。


您忘记了SSL不再重要,并且有一种方法可以克服TLS中的限制;)
0xC0000022L 2014年

1

最好为单独的服务使用单独的ip,然后当您必须将服务中的一个迁移到另一个硬件/位置时,其他组件将变得透明。

一些服务使用相同的端口号,那么您必须具有多个ip才能在单个服务器上运行该服务。

另外,如果您想处理比临时端口更多的同时连接,则需要更多ip。


如果我正在运行Web服务器,它如何知道要使用哪个IP地址?是否默认安装使用 IP?
Nickolai Leschov

3
它是可配置的。默认情况下,它ListenBinds主机上的每个IP。
fazie 2014年

1

多个IP地址允许您拥有服务IP,换句话说,您可以将IP与特定服务进行匹配,例如在sendmail中,您可以:

DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=192.168.1.25')dnl

等等。它可以用于高可用性,测试和网络路由^^

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.