辰汐の小站

如何区分本机IP、127.0.0.1 、 0.0.0.0、localhost?


avatar
chenxi 2025-02-01 157

在计算机网络技术里,IP地址是信息传输和设备识别的关键要素。127.0.0.1、0.0.0.0、localhost和本机IP,这些看似相似的概念,却有着各自独特的含义和用途。对于网络初学者来说,常常会对它们感到困惑,难以准确区分。而清晰地辨别这些概念,对于网络配置、程序开发、服务器搭建等工作至关重要。看似简单,其实区别还是较大的。

本机IP

我们电脑主板上都内置了多种网卡,一般主要有以下几类:

 

  • 有线网卡/以太网卡(Ethernet)
    有线网卡是计算机或网络设备中用于通过有线连接方式接入网络的硬件组件,也叫以太网网卡。有线网卡的数据传输速率有多种规格,如百兆(100Mbps)、千兆(1000Mbps)、2.5G、万兆等,能满足不同网络环境和使用场景的需求,像日常办公场景,百兆或千兆网卡基本够用,而数据中心等对网络速度要求极高的场景,则会使用万兆甚至更高速率的网卡。相比无线网卡,有线网卡通常具有更稳定的连接、更高的传输速率和更低的延迟,适用于对网络稳定性和速度要求较高的场景,如在线游戏、大型文件传输等。

  • 无线网卡(WLAN)
    无线网卡(Wireless network interface controller,缩写为 WNIC)是一种无线终端设备,可将计算机、智能手机、平板电脑等数码产品以无线连接的形式接入无线局域网。其工作原理是:无线路由器或 AP 先通过有线连接从互联网接收信息,把数据从二进制转换为特定频率的无线电波并广播出去;无线网卡接收到射频信号后,再将其转换为设备能理解的信息 。目前,IEEE 802.11n 是无线网卡的主流标准。

  • 虚拟网卡(loopback)
    虚拟网卡(Virtual Network Adapter 或 Virtual NIC)是一种通过软件模拟实现的网络接口,它能模拟物理网卡的功能,虽非真实物理设备,但操作系统和应用程序会将其视作真实网络接口,拥有自己的 MAC 地址和 IP 地址。 应用场景 虚拟化环境:在 VMware、VirtualBox、Hyper – V 等虚拟化软件构建的环境里,每个虚拟机通常会配备一个或多个虚拟网卡,用于虚拟机与主机、虚拟机与虚拟机之间的通信。因为它是虚拟的,不是物理网卡,所以也被称为是本地环回地址(或接口),一般将127.0.0.1作为本地环回地址。比如在个人计算机上用虚拟化软件运行 Linux 虚拟机,虚拟机与宿主机通信就依赖虚拟网卡。 容器化环境:在容器化平台中,虚拟网卡可连接容器实例和宿主机,实现容器之间以及容器与外部网络的通信。 VPN 连接与网络隧道:在使用 VPN 时,虚拟网卡会参与建立安全的远程连接,创建网络隧道,让用户能在公共网络上安全访问私有网络资源。

以上这些网卡都会绑定一个本机IP。

127.0.0.1

127.0.0.1是一种本机保留的私有IP

127.0.0.1它是一个私有IP,代表的就是你的本机环回地址,其实本质上是绑定在虚拟网卡(loopback)上的IP。

127.0.0.1 通常被称为 回环地址(Loopback Address),也被称为 localhost。它的主要作用是将网络请求重定向到本地计算机,而不经过任何外部网络。

特性:
本地回环:所有发送到 127.0.0.1 的请求都会在本地处理。
本机测试:通常用于测试本地服务,如 Web 服务器、数据库等。
固定地址:无论在哪个网络环境中,127.0.0.1 都始终指向当前计算机。
常见场景:
开发环境测试:在本地运行一个 Web 服务器,访问 http://127.0.0.1:8080 以测试服务。
阻止特定域名访问:在 hosts 文件中将某个域名映射到 127.0.0.1,可以有效阻止外部访问。
比如阻止访问某个网站:

127.0.0.1 example.com

这样,所有访问 example.com 的请求都会被重定向到本地,从而阻止外部连接。

 

0.0.0.0

2. 什么是 0.0.0.0?
0.0.0.0 通常被称为 非特定地址(Wildcard Address 或 Any Address),其含义因使用场景而异。在服务器端和客户端中,它的含义有所不同。

特性:
通配地址:表示未指定或所有可用的网络接口。
服务器监听:在服务器中,0.0.0.0 表示监听所有网络接口上的请求。
无效地址:在客户端中,表示没有有效的目标地址或不发送请求。
常见场景:
服务器监听所有地址:用于服务器绑定所有网络接口,接受来自任何 IP 地址的请求。
阻止域名访问:在 hosts 文件中将域名映射到 0.0.0.0,快速丢弃请求,减少系统资源消耗。
比如:服务器监听所有接口

python -m http.server --bind 0.0.0.0 8080

这表示服务器会接受来自任意网络接口的连接。

比如:阻止访问某个网站

0.0.0.0 example.com

这样访问 example.com 时,系统会立即丢弃请求。

localhost 是一种特殊的域名

localhost 它并不是IP,而是一种特殊的域名(没有后缀),默认的情况下它解析到的是本地IP(127.0.0.1),主要通过本机的host文件进行管理,如果你愿意,也可以把localhost域名解析到某个公网IP上去。


127.0.0.1、localhost 、本机IP、0.0.0.0 的区别和总结

1、127.0.0.1和localhost并不需要联网访问,即使在无网络环境下访问这两者都能找到本机;

2、localhost是域名,默认是指向127.0.0.1的;

3、本机IP中的有线网IP和无线网IP都是需要联网后才能正常分配和访问的,它们是本机对外开放的IP地址。

三个都可以访问本机,但三个的差别还是挺大的。

1、localhost实际上是个域名,写死在本机的域名记录里,里面对应的ip写着127.0.0.1。如果没有这条记录,localhost也是访问不了本机的。它只能用来本机访问本机。

2、127.0.0.1是一个保留ip地址,代表着本机。它只能用来本机访问本机,无法访问其他机器。

3、本机ip通常指本机配置的网络ip地址,用来访问网络的地址,一般上网时用的都是本机ip。

4、127.0.0.1 适合本地回环测试或模拟连接被拒绝的场景,常用于开发或测试环境。

5、0.0.0.0 更适合快速阻止域名访问或监听所有网络接口,适用于服务器配置和提高拦截效率。
选择使用哪种地址取决于具体需求,如果是为了阻止外部服务访问,0.0.0.0 通常更高效,而 127.0.0.1 更适合模拟本地网络环境。

使用 127.0.0.1 的优点:
将请求重定向到本地,可模拟访问失败或“连接被拒绝”,适用于需要测试或验证的场景,对于需要模拟访问失败或本地测试则使用 127.0.0.1,更灵活。

使用 0.0.0.0 的优点:
更快丢弃请求,不会尝试任何连接,节省系统资源,更适合单纯阻止访问的情况,对于只想快速阻止域名访问则使用 0.0.0.0,效率更高。

 

这三个当中有两个是IP地址的数字形式,一个是127.0.0.1一个是本地网卡动态获取的或者手工指定的IP地址!比如192.168.1.100!就这两个来说,表现出来的形式都不同,数字也不同!

在局域网中共享打印机或文件,本地网卡所拥有的地址对于别的电脑来说就是唯一的一个访问的IP地址!这个本机IP地址属于整个局域网甚至还能通过路由器NAT上网!同样对于本机来说使用这个IP也是可以访问本地的!

而127.0.0.1是个环回地址!听名字就知道是一个绕圈圈的高手!他就是代表本机,并且只代表本机!并且只能在本机访问才是本地,如果你换了一台电脑用127.0.0.1访问那么就是访问新换的电脑,而不是原来的电脑!有着在本机安装的数据库服务器用的就是代表本机的127.0.0.1!

localhost这是一个用字母表示的域名,从字面来说就是本地主机的意思,实际上在默认情况下从本机访问他也是来到了本机!这个和127.0.0.1一样也是代表本地,并且只代表本地!不同的是,访问域名需要解析记录!就是域名和数字IP地址的对应关系!并且这个对应的关系可能会被修改导致无法访问本机!而控制对应关系的记录就在本机的Windows/system32/drivers/etc下,hosts是一个没有扩展名的文件可以用记事本等打开!里面默认就是localhost对127.0.0.1!可以修改!

暂无评论

发表评论

汐汐

Avatar
AI

简介:辰汐の小站的智能AI助手

来自:辰汐の小站

生日:2025年2月1日

欢迎光临本站喵~

有任何问题可以问我哦~

感谢@雨落听风祈的编写!

——唯有青春与梦想不可辜负!

.

.

.

.

前往主站

日历

2025 年 3 月
 123
45678910
11121314151617
18192021222324
25262728  

推广

飞机场推荐-->

Hey there! Ask me anything!