我们都知道127.0.0.1
(环回)是用来做什么的。
其余保留127.0.0.0/8
环回空间的用途有哪些?
答案1
它也保留用于环回,因此,它没有被广泛用于任何事情。
实际上,127.0.0.1 通常用作“唯一”环回地址,但该地址块的其余部分也应作为环回地址,这意味着它通常不用于任何用途。(不过,例如,较大的 Cisco 交换机将使用 127.0.0.xx IP 来监听连接的卡和模块,因此至少有一些其他地址正在使用。)
来自 RFC3330:特殊用途 IPv4 地址
127.0.0.0/8 - 此地址块指定为 Internet 主机环回地址。由更高级别协议发送到此地址块内任意地址的数据报应在主机内环回。这通常仅使用 127.0.0.1/32 进行环回,但此地址块内的任何地址都不应出现在任何网络上 [RFC1700,第 5 页]。
答案2
在实践中,我看到其他 127.0.0.0/8 地址在两个地方使用:
- 作为对 DNSRBL 查询的响应。不同的响应可以对列出 IP 地址(或域)的原因进行编码。 维基百科有一些详细信息,同样如此RFC5782。 SORBS 列出其返回代码。Project Honeypot 使用三个可用的八位字节对数据进行编码。
- 在 Ubuntu
/etc/hosts
文件中。我不记得细节了,但有一个冲突,所以他们添加了另一个localhost-something
具有不同 IP 地址范围的条目127.0.0.0/8
。它是127.0.1.1这是一个错误解决方法。
答案3
正如已经指出的,整个块用作环回,因此我只添加一个用于常规桌面使用的示例。
127.0.0.1
如果您想要使用本地代理保护 RDP 或其他受限连接,则需要除 之外的环回。例如,通过 SSH 隧道使用 RDP 需要您设置本地端以供端口转发器监听127.0.1.2
。这是因为 Windows 附带的 RDP 客户端拒绝连接到localhost
或127.0.0.1
。
没错,通常您不会将 RDP 客户端连接到您正在使用的同一台计算机(即使想要看到漂亮的镜像效果也不允许这样做:)。
答案4
添加到其他答案:
有一些用例,例如在开发和测试中。有时,使用 127.0.0.0/8 范围内的一些未使用的地址可能比创建专用网络或接口更简单。
您可以启动一个开发“服务器”来监听 127.11.11.11:1234,并开发一个连接到 127.11.11.11:1234 的客户端。这开箱即用,所有这些都是独立的地址,因此可以有另一个服务器进程监听 127.11.11.12:1234,它们不会干扰。
这在 Linux 上运行良好,但我不确定其他操作系统是否也运行良好。
例如创建一个“服务器”进程:
sudo mknod -m 777 fifo1 p
cat fifo1 | netcat -l -k 127.11.11.11 1234 > fifo1
在同一主机的另一个终端中:
$ netstat -tulpn|grep 1234 # check that server is listening:
tcp 0 0 127.11.11.11:1234 0.0.0.0:* LISTEN 28043/netcat
$ echo abc | netcat 127.11.11.12 1234 # wrong ip, no result
$ echo abc | netcat 127.11.11.11 1234 # matching ip, receives echo:
abc
为了完整起见,您可以fifo1
在从第一个终端停止服务器后使用rm
命令删除。