49 ip-address
我在hiredis 中运行该示例,该示例127.0.0.2用作Redis 服务器IP,并且运行正常。实际上,redis 服务器运行在同一台机器上。我知道那127.0.0.1是 的 IP 地址lo,但是127.0.0.2呢?是一样的127.0.0.1吗?
icy*_*com 46
是的:
IPv4 网络标准保留整个 127.0.0.0/8 地址块用于环回目的。这意味着发送到这 16,777,214 个地址之一(127.0.0.1 到 127.255.255.254)的任何数据包都会被环回。IPv6 只有一个地址,::1。
各种互联网工程任务组 (IETF) 标准为此保留了 IPv4 地址块 127.0.0.0/8(采用 CIDR 表示法)和 IPv6 地址 ::1。最常用的 IPv4 地址是 127.0.0.1。通常,这些环回地址映射到主机名、localhost 或环回。
或来自 RFC 本身:
127.0.0.0/8 - 该块被分配用作 Internet 主机环回地址。由更高级别协议发送到该块内任何地址的数据报应该在主机内部循环。这通常仅使用 127.0.0.1/32 实现环回,但此块内的地址不应出现在任何网络的任何位置 [RFC1700,第 5 页]。
为了好玩,请尝试 ping:
$ ping 127.127.127.127
PING 127.127.127.127 (127.127.127.127) 56(84) bytes of data.
64 bytes from 127.127.127.127: icmp_req=1 ttl=64 time=0.110 ms
64 bytes from 127.127.127.127: icmp_req=2 ttl=64 time=0.065 ms
^C
--- 127.127.127.127 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.065/0.087/0.110/0.024 ms
Run Code Online (Sandbox Code Playgroud)
ctr*_*lor 12
我将在下面回答您的每个问题,并提供参考和示例。它不像是或否那么简单。
127.x.x.x地址都限制在本地机器上吗?” 是的127.x.x.x地址都绑定到lo接口”是127.x.x.x地址是否通过网络路由?” 不127.0.0.0/8 - 此块被分配用作 Internet 主机环回地址。由更高级别协议发送到该块内任何地址的数据报在主机内部循环。这通常仅使用 127.0.0.1/32来实现环回。如 [RFC1122] 第 3.2.1.3 节所述,整个 127.0.0.0/8 块内的地址不会合法地出现在任何网络的任何地方。— RFC5735强调我的。
127.0.0.2一样127.0.0.1吗?” 否根据 rfc5735 可能是,但不一定是。这是一个实现定义的行为。请参阅您的操作系统手册。在任何情况下,整个范围都是保留的,不得通过网络路由。而127.0.0.1to127.255.255.254是绑定到 interface 的所有本地地址lo。她们不一样。您可以使用每个地址将不同的服务绑定到同一端口。例如,端口 80 上的 1600 万个 Web 服务器只能从本地计算机访问(如果您没有先耗尽内存或其他资源)
我刚刚设置了一个 docker 服务来绑定到127.0.0.2:80. 然后我添加了一个别名到/etc/hosts. 现在我可以通过 连接到它http://myserver,但不能通过http://127.0.0.1或连接到它http://localhost。但是,它仅适用于本机。因为它只是在lo界面上。
然后我设置了另一个 docker 服务来绑定到127.0.0.3:80,以及一个 python 服务localhost:80和另一个127.0.0.4:80。
这可能不适用于所有操作系统。我正在使用 Debian(9) Gnu/Linux,Linux 内核 4.9.0-3-amd64。有些操作系统可能会处理所有地址127.0.0.1?127.255.255.254相同。有些可能只适用于127.0.0.1.
请注意,诸如 ping 之类的服务将在 0.0.0.0 (ipv4)ping 127.127.127.127上侦听,因此侦听器将接收到它,因为它127.127.127.127是您的地址之一。但是,如果服务侦听特定地址,则您需要使用此特定地址来连接它(取决于所使用的操作系统)。
也可以看看
| 归档时间: |
|
| 查看次数: |
74914 次 |
| 最近记录: |