AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 78048
Accepted
Jichao
Jichao
Asked: 2009-10-25 23:22:06 +0800 CST2009-10-25 23:22:06 +0800 CST 2009-10-25 23:22:06 +0800 CST

IP 地址 0.0.0.0 和 127.0.0.1 有什么区别?

  • 772

我知道 127.0.0.1 ~ 127.255.255.254 是大多数现代操作系统的环回 IP 地址,这些 IP 地址可以用来指代我们自己的计算机。

但什么是 0.0.0.0?它似乎也指本地计算机,那么有什么区别?

而且,您能否为我解释以下 IP 连接:

netstat -an 输出的屏幕截图

ip
  • 5 5 个回答
  • 338272 Views

5 个回答

  • Voted
  1. Best Answer
    Lee B
    2009-10-26T00:55:26+08:002009-10-26T00:55:26+08:00

    唯一的问题是您并不是说“所有地址都应该具有访问权限”——这是在您的防火墙和/或服务器软件和/或其他安全层(如 tcpwrappers)中完成的。

    在这种情况下,0.0.0.0 表示“本地计算机上的所有 IP 地址”(实际上可能是“本地计算机上的所有 IPv4 地址”)。因此,如果您的网络服务器机器有两个 IP 地址,192.168.1.1 和 10.1.2.1,并且您允许像 apache 这样的网络服务器守护进程在 0.0.0.0 上侦听,那么这两个 IP 地址都可以访问它。但仅限于可以联系这些 IP 地址和 Web 端口的对象。

    请注意,在不同的上下文(路由)中,0.0.0.0 通常表示默认路由(到“其余”互联网的路由,除了本地网络中的路由等)。

    • 187
  2. slubman
    2009-10-25T23:33:30+08:002009-10-25T23:33:30+08:00

    当服务在 0.0.0.0 上侦听时,这意味着该服务正在侦听所有配置的网络接口,当在 127.0.0.1 上侦听时,服务仅绑定到环回接口(仅在本地计算机上可用)

    • 97
  3. Massimo
    2011-08-12T22:45:45+08:002011-08-12T22:45:45+08:00

    IP 地址0.0.0.0可能具有非常不同的含义,具体取决于它的使用位置。

    • 将其与 0.0.0.0/8 子网中的任何其他地址(即任何以 开头的地址)一起提供给实际网络接口的地址都不是有效地址0.。
    • 它不能用作任何 IP 数据包的源地址,除非发生这种情况时计算机仍然不知道自己的 IP 地址并且它正在尝试获取一个(经典示例:DHCP)。
    • 如果在路由表中使用,则标识默认网关;到 0.0.0.0 的路由是默认路由,即在没有任何更具体的路由可用于目标地址时使用的路由。
    • 最后,当在netstat命令的输出中看到时(这是您所要求的),这意味着给定的套接字正在侦听计算机拥有的所有可用 IP 地址;当一台计算机有多个 IP 地址时,一个套接字只能绑定到一个特定的地址和端口对,或者绑定到一个端口和所有地址;如果您在那里看到 IP 地址,则表示套接字仅在该端口和该特定地址上侦听;如果您看到0.0.0.0,则表示它正在侦听机器所有地址上的该端口,包括环回一 ( 127.0.0.1)。
    • 49
  4. user62491
    2011-08-12T22:20:12+08:002011-08-12T22:20:12+08:00

    Lee B 的回答是正确的,但如果您有兴趣,这里有一些相关的 RFC。

    0.0.0.0:

    来自RFC1122,第 3.1.2.3 节:

    我们现在总结 A、B 和 C 类 IP 地址的重要特殊情况,使用以下 IP 地址表示法:

                { <Network-number>, <Host-number> }
    
            or
                { <Network-number>, <Subnet-number>, <Host-number> }
    

    ...

              (a)  { 0, 0 }
    
                 This host on this network.  MUST NOT be sent, except as
                 a source address as part of an initialization procedure
                 by which the host learns its own IP address.
    

    就是这样,“这个网络上的这个主机”......正如Lee B的回答所说,这会转化为您主机上的所有可用IP地址。在 0.0.0.0 上托管服务将自动在每个可寻址接口上托管该服务。

    127.0.0.1:

    来自RFC5735:

    127.0.0.0/8 - 此块被分配用作 Internet 主机环回地址。由更高级别协议发送到该块内任何地址的数据报在主机内部循环返回。这通常仅使用 127.0.0.1/32 进行环回来实现。如 [RFC1122] 第 3.2.1.3 节所述,整个 127.0.0.0/8 块内的地址不会合法地出现在任何地方的任何网络上。

    0.0.0.0 和环回地址 127.0.0.1 之间的区别在于,环回地址旨在允许主机本身内的功能齐全的 IP 接口,而不管网络设置的其余部分(如果有的话)是什么样子。发送到环回设备的任何流量都会立即在其上接收。环回网络“引用”您自己的主机并没有太多……更像是您的主机中有一个迷你网段,设备、进程和套​​接字可以打开和连接。

    • 32
  5. Hải Phong
    2016-12-29T02:28:00+08:002016-12-29T02:28:00+08:00

    简单来说:在 0.0.0.0 上侦听意味着从可以通过网络访问这台计算机的任何地方进行侦听,例如,从这台计算机、本地网络或 Internet 上侦听,而在 127.0.0.1 上侦听意味着只从这台计算机上侦听

    • 10

相关问题

  • 共享服务器IP

  • Windows 中执行反向 DNS 查找的命令行实用程序是什么?

  • 如何找到 ubuntu 盒子的默认网关

  • 我怎样才能得到一个网站的IP地址?

  • 如何让我的计算机将自己称为 192.168.1.* 上的任何 ip?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve