如何在OS X上获取除127.0.0.1以外的回送地址


55

根据我阅读的所有内容,整个127.xxx子网应该环回。

但是,在Mac上,我只能ping 127.0.0.1

我知道我之前已经做过(尽管可能在另一个OS上),并且对于在本地开发多个SSL站点以及为通过本地IP访问的远程服务建立隧道非常有用(例如,我可以通过ssh进入MySQL服务器,并且只需将标准端口端口转发到我的本地计算机上但在127.0.0.2上的同一端口,而我的本地服务器在127.0.0.1上运行。

Answers:


72

这是简短的答案: sudo ifconfig lo0 alias 127.0.0.* up

每个别名必须单独添加(sudo ifconfig lo0 alias 127.0.0.2 upsudo ifconfig lo0 alias 127.0.0.3 up)。可以手动进行测试,也可以将该子网中其他250个可用数字的子集或完整列表放入StartupItems脚本中,该脚本会在启动时自动进行。

长答案:根据RFC3330,127.0.0.0/8-此块被分配用作Internet主机回送地址。由更高层协议发送到该块内任意位置的地址的数据报应在主机内部循环。通常仅使用127.0.0.1/32进行环回,但是此块中的任何地址都不应出现在任何地方的任何网络上。


4
如果只有一种方法可以使它适用于127。*。*。*
Matthew Schinckel 2012年

如果事实证明这也可以在CentOS上使用,那么您的先生就从我这里得到了赏金。
Parthian Shot

实际上,无论哪种方式,您都会获得赏金。由于它不适用于CentOS,一旦找到答案,我将提出并回答该问题。
Parthian Shot

我如何在端口8上设置4台服务器,并在debian9 Gnu / Linux上使用不同的回送地址superuser.com/a/1255308/62123
ctrl-alt-

12

对于那些感兴趣的人,这里有个bash脚本,它为IP 127.0.0。*添加了所有别名:

#!/bin/bash
for ((i=2;i<256;i++))
do
    sudo ifconfig lo0 alias 127.0.0.$i up
done

我读错了吗?您创建的内容看起来像从127.0.0.1到127.0.0.255的所有地址。如果将“ sudo ifconfig lo0别名127.0.0。$ i up”更改为“ sudo ifconfig lo0别名127. $ i。$ i。$ i up”,这对大多数人来说都是正确的吗?但是,您将跳过小于2的任何内容。那么也许对其他两个八位位组使用不同的变量?环回的最高IP地址是127.255.255.255
Everett

1
@Everett,您正确阅读了此内容,它仅执行地址127.0.0。*。我没有覆盖整个范围的原因是,实际上即使处理255个地址也相当慢,因此255x255x255会花费太长时间。
劳伦特

1
谢谢。我只是想确保已经设定了期望值,因为有人会来这里说:“嘿,它在127.7.53.91中不起作用。” 我不会那样做,但是有人会…
Everett

2
实际上,@ Everett的建议也不起作用,因为它只会启用诸​​如127.7.7.7或127.42.42.42之类的地址,也就是说,最后三位数字都是相等的。您将需要三个不同的循环才能真正启用127/8块中的所有IP。但是,这样做肯定不是一个好主意:考虑到每个IP必须分别启用,很有可能每个分配的IP都附有一些资源。分配大约1770万个IP(即256 ^ 3)可能会产生一些重大后果……
jwatkins

2
@jwatkins底线:仅在需要时才启用它们,实际上,这是一切工作的经验法则。
William T Froggard '16
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.