如何在 Linux 中查找您的 IP 地址

每个网站都有一个唯一的公共 IP 地址,任何人都可以从任何地方访问它。
366 位读者喜欢这篇文章。
Satellite in a field

nerolf via Flickr。CC BY 2.0

我们每天都在使用互联网协议 (IP),无论我们是否意识到。例如,任何时候您在网络浏览器中输入网站名称或搜索词,它都会查找该 URL(或搜索引擎)的 IP 地址,然后加载该网站。

让我们将 IP 地址分为两类:私有和公共。私有 IP 地址是您的 WiFi 盒子(和公司内网)提供的地址。它们在 10.x.x.x172.16.x.x-172.31.x.x192.168.x.x 范围内,其中 x=0 到 255。公共 IP 地址,顾名思义,是“公共的”,您可以从世界任何地方访问它们。每个网站都有一个唯一的 IP 地址,任何人都可以从任何地方访问它;这被认为是公共 IP 地址。

此外,IP 地址有两种类型:IPv4 和 IPv6。

IPv4 地址的格式为 x.x.x.x,其中 x=0 到 255。大约有 2^32(约 40 亿)个可能的 IPv4 地址。

IPv6 地址使用十六进制数字,格式更复杂。总位数是 128 位,这意味着有 2^128—340 涧!—个可能的 IPv6 地址。引入 IPv6 是为了解决在不久的将来 IPv4 地址可预见的耗尽问题。

作为一名网络工程师,我建议不要与任何人分享您机器的公共 IP 地址。您的 WiFi 路由器有一个公共 IP,它是 WAN(广域网)IP 地址,对于连接到该 WiFi 的任何设备都将是相同的。连接到同一 WiFi 的所有设备都具有私有 IP 地址,这些地址在本地通过上面提供的范围来识别。例如,我的笔记本电脑连接的 IP 地址是 192.168.0.5,我的手机连接的 IP 地址是 192.168.0.8。这些是私有 IP 地址,但两者都将具有相同的公共 IP 地址。

以下命令将获取 IP 地址列表,以查找您机器的公共 IP 地址

  1. curl ifconfig.me
  2. curl -4/-6 icanhazip.com
  3. curl ipinfo.io/ip
  4. curl api.ipify.org
  5. curl checkip.dyndns.org
  6. dig +short myip.opendns.com @resolver1.opendns.com
  7. host myip.opendns.com resolver1.opendns.com
  8. curl ident.me
  9. curl bot.whatismyipaddress.com
  10. curl ipecho.net/plain

以下命令将获取您接口的私有 IP 地址

  1. ifconfig -a
  2. ip addr (ip a)
  3. hostname -I | awk '{print $1}'
  4. ip route get 1.2.3.4 | awk '{print $7}'
  5. (Fedora)Wifi 设置→ 点击您连接的 Wifi 名称旁边的设置图标 → 可以看到 Ipv4 和 Ipv6
  6. nmcli -p device show

注意:某些实用程序需要根据您使用的 Linux 发行版安装在您的系统上。此外,一些注明的命令使用第三方网站来获取 IP

在 GNOME 桌面中查找您的 IP 地址

如果您使用 Linux,您可以使用一些基本的桌面实用程序来查找您的 IP 地址。首先,转到您的“活动”屏幕并键入“网络”(用于有线连接)或“Wi-Fi”(用于无线连接)。

Use GNOME activities to locate your Network or Wi-Fi settings

在“网络设置”窗口中,点击您正在使用的网络旁边的“齿轮”图标。

Click the gear icon next to the Network you are on

您的 IP 地址列在“网络配置文件”中。

IP addresses are provided in your Network profile

在本示例屏幕截图中,我的 IPv4 地址是 10.1.1.2,网关是 10.1.1.1。

公共和私有 IP 地址

为了理解公共和私有 IP 地址的重要性,让我们看看一个称为 NAT(网络地址转换)和 PAT(端口地址转换)的概念。

私有地址用于局域网 (LAN)。它们绑定到特定的网络。

公共地址对于建立与其他网络的外部连接是必要的,最值得注意的是互联网的“万维网” (www)。

NAT 是将私有 IP 转换为公共 IP 的过程,它由三种主要类型组成:静态、动态和 PAT。在静态 NAT 中,一个私有 IP 映射到一个公共 IP。防火墙是一个常见的例子。在动态 NAT 中,私有 IP 地址映射到公共 IP,但从公共 IP 地址池中映射。

总共有 2^32 个 IPv4 地址,其中大约只有 37 亿个是公共地址,但人和设备的数量实际上超过了 IP 地址的数量。然而,我们还没有耗尽地址。这是因为一个称为 PAT 的概念,它允许使用端口号从多个(通常是所有)私有 IP 地址转换单个公共 IP 地址。在这里,不是为每个设备分配一个公共地址,而是为外部侧分配一个公共地址,并为内部网络中的每个设备分配私有地址。PAT 最广泛地用于我们用来连接到互联网的家用无线路由器中。

私有 IPv4 地址

  • 本地地址仅在内部网络中使用。

  • 范围是 10.x.x.x、172.16.x.x-172.31.x.x 和 192.168.x.x(x 是 0 到 255 之间的数字)。

  • 用于局域网 (LAN)。

  • 无法在全球范围内访问,也无法在全球范围内搜索。

  • 不唯一:同一个私有 IP 可以在两个不同的网络中使用。

  • 每个路由器都带有一个私有 IP 地址,多个设备可以连接到该地址。用户无需额外付费即可获得私有地址。

  • 一些示例私有 IP 地址:10.0.0.4、172.16.4.5、192.168.9.8

公共 IPv4 地址

  • 公共地址用于连接到外部网络。

  • 范围从 0.0.0.0 到 255.255.255.255,但私有 IP 地址和一些不可用或保留的 IP 除外。

  • 用于连接到互联网。

  • 全球可访问且可以搜索。这些通常用于确定地理位置。

  • 在整个互联网中是唯一的。

  • 私有地址需要付费,因为它们是唯一的、有限的且可从互联网访问的。每个网站都有一个域名映射到一个公共 IP。例如,opensource.com 的公共 IP 地址是 54.204.39.132

使用 IP 找到您的方向

IP 地址是网络上计算机最直接的路由。还有其他系统,例如 DNS 和 Avahi,可以帮助将一台计算机路由到另一台计算机,但是当这些系统不可用或因任何原因不希望使用时,IP 协议就是您使用的协议。现在您明白了原因,更重要的是,如何找到您自己的 IP 地址。

编者注:本文最初于 2018 年 5 月发布,并已更新。

标签

9 条评论

优秀

谢谢 :)

回复 ,作者:Tushar (未验证)

太棒了!感谢您的翻译和分享,非常感谢 :D

回复 ,作者:victorhck

顺便说一句,我发现了一个“错误”

在私有 IP 地址命令中,数字 3 有一个错误的字符
‘{print $1}’
^ 应该是一个空格 ' '
祝您编程愉快!

1. ifconfig.me 应该更正为
1. curl ifconfig.me

另外,请尝试 'ip -br -c a' :)

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.