为 localhost 分配多个 IP 地址 OS X 10.6

为 localhost 分配多个 IP 地址 OS X 10.6

我尝试在启用 HTTPS 的情况下在本地托管多个网站,但为了做到这一点,我需要将本地计算机配置为使用多个 IP 地址作为本地主机(我相信)。有没有办法同时在本地解析多个 IP 地址?

我正在使用 OS X 10.6(标准版 - 非服务器)和 MAMP 服务器设置。

谢谢!

答案1

您不需要多个 IP 即可在一个 Web 服务器上托管多个网站。您需要使用“虚拟主机”(如果需要,也可以使用 https)。这里有一个 MAMP 虚拟主机指南http://sawmac.com/mamp/virtual/

答案2

要为 localhost 设置别名,您可以使用此终端命令创建“环回”:

ifconfig lo0 alias 127.0.0.2

通过设置 localhost 别名,您可以创建多个 HTTPS 虚拟主机,如下所示:

<VirtualHost 127.0.0.1:443> ...... </VirtualHost>
<VirtualHost 127.0.0.2:443> ...... </VirtualHost>

如果需要,您还可以通过 root 的 cron 在启动时初始化这些主机:

sudo crontab -e
@reboot ifconfig lo0 alias 127.0.0.2

希望这能帮助遇到与我相同问题的人!

答案3

您永远不需要在 Linux 或 Windows 上向本地主机添加其他 IP 地址。它们将默认响应来自 127.0.0.0/8 的所有 IP 地址,无需额外配置:

$ ping 127.254.0.100
PING 127.254.0.100 (127.254.0.100) 56(84) bytes of data.
64 bytes from 127.254.0.100: icmp_seq=1 ttl=64 time=0.026 ms

因此,只需让您的应用程序监听 127.0.0.0/8 范围内的任何 IP,就可以了。

例子:

一个控制台:

$ nc -vvl 127.0.34.2 9022
Connection from 127.0.0.1 port 9022 [tcp/*] accepted
Hello

另一个控制台:

$ echo Hello | nc -vv 127.0.34.1 9022
nc: connect to 127.0.34.1 port 9022 (tcp) failed: Connection refused
$ echo Hello | nc -vv 127.0.34.2 9022
Connection to 127.0.34.2 9022 port [tcp/*] succeeded!

正如一位评论者指出的那样,需要在 MacOS/Darwin 上明确将 IP 添加到本地主机接口。

相关内容