Linux 在没有接口的情况下,服务如何绑定到127.0.0.xxx

Linux 在没有接口的情况下,服务如何绑定到127.0.0.xxx,linux,localhost,Linux,Localhost,最近我发现我可以在127.0.0.73上绑定Apache,而不需要127.0.0.73 正常情况下,只有127.0.0.1存在 我还和一位朋友谈过,他说这在Linux上是“正常的”,可能在Windows上也是如此,在MacOS上不起作用,但他不知道为什么 我可以做到以下几点: [nmmm@zenbook nmmm]$ curl 127.10.0.123 curl: (7) Failed to connect to 127.10.0.123 port 80: Connection refused

最近我发现我可以在127.0.0.73上绑定Apache,而不需要127.0.0.73

正常情况下,只有127.0.0.1存在

我还和一位朋友谈过,他说这在Linux上是“正常的”,可能在Windows上也是如此,在MacOS上不起作用,但他不知道为什么

我可以做到以下几点:

[nmmm@zenbook nmmm]$ curl 127.10.0.123
curl: (7) Failed to connect to 127.10.0.123 port 80: Connection refused
这表明整个A级网络是可用的

这是如何工作的?

我在
ifconfig
ip
中没有看到任何特别之处,除了
lo
接口没有广播。这是关键点吗?

根据

IPv4网络标准保留整个地址块127.0.0.0/8(超过1600万个地址)用于环回。这意味着发送到这些地址中任何一个的任何数据包都会被环回。地址127.0.0.1是IPv4环回流量的标准地址;其余部分并非所有操作系统都支持。但是,它们可用于在主机上设置多个服务器应用程序,所有应用程序都在同一端口号上侦听。IPv6标准仅为环回分配一个地址:1

或来自

127.0.0.0/8-此块被指定用作Internet主机 环回地址。由更高级别协议发送到服务器的数据报 此块中任何位置的地址都应在主机内循环


即使您无法从
ifconfig
ip
中看到任何内容,您仍然可以ping 127.0.0.0/8块中的所有地址。

这非常有用,但并不能真正回答问题。您可以将任何ip地址绑定到进程。但是,如果你使用随机的,你就不能访问你的服务,因为你的计算机将试图从互联网连接到实际的IP。如果我使用1.2.3.0/255.255.255.0进行环回,这会给我255个本地地址吗?这是因为linux“lo”适配器是这样工作的,还是有一些隐藏的设置?