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

2023-11-09

在排除网络问题、设置新连接或配置防火墙时,了解设备的 IP 地址非常重要。

IP 地址可分为两类:公共地址和私有地址。公共IP是唯一的并且可以从互联网访问的IP地址。私有 IP 地址保留供私有网络内部使用,而不直接暴露于 Internet。此外,还有两种类型的 IP 地址:IP 版本 4 (IPv4) 和 IP 版本 6 (IPv6)。

本文介绍了确定 Linux 系统的公共和私有 IP 地址的几种不同方法。

查找您的私人 IP 地址#

私有 IP 地址无法通过 Internet 路由,并且只能在本地网络中使用。 通常,路由器会为本地网络内的每个设备分配一个专用 IP 地址。这为本地网络内的所有设备(例如您的手机、笔记本电脑、智能电视、打印机、媒体中心等)提供了唯一的 IP 地址。

本地网络上的设备通过 NAT(网络地址转换)连接到 Internet。

以下 IPv4 地址范围是为专用网络保留的:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

您可以通过使用以下命令查询网络堆栈来确定您的系统专用 IP 地址ip, ifconfig or hostname.

在 Linux 中,用于显示和配置网络接口的标准工具是ip .

要显示所有网络接口和关联 IP 地址的列表,请键入以下命令:

ip addr

输出如下所示。私有 IP 地址突出显示。

您还可以使用以下命令来显示私有IP地址:

hostname -I
ifconfig

查找您的公共 IP 地址#

公共 IP 地址是分配给网络设备的全球可路由 IP 地址,允许其直接访问 Internet。它们由 ISP 分配给设备,并且每个设备都有唯一的公共 IP 地址。

公共 IP 地址供家庭路由器、Web 服务器、邮件服务器等使用。

确定公共 IP 地址涉及通过 HTTP/HTTPS 或 DNS 协议联系远程服务器并从远程服务器响应中获取 IP 地址。

在台式机上,查找公共 IP 地址的最简单方法是在浏览器中输入“what is my ip”:

如果您使用的是无头 Linux 服务器或者您想要将 IP 地址分配给 shell 脚本变量,您可以使用命令行工具,例如dig , curl and wget .

大多数 DNS 提供商(例如 OpenDNS 和 Google)允许您查询他们的服务器并获取您的公共 IP 地址。

您可以使用以下任何命令来获取您的 IP:

  • dig ANY +short @resolver2.opendns.com myip.opendns.com
  • dig ANY +short @resolver2.opendns.com myip.opendns.com
  • dig ANY +short @ns1-1.akamaitech.net ANY whoami.akamai.net

有许多在线 HTTP/HTTPS 服务会使用您的公共 IP 地址进行响应。这里是其中的一些:

  • curl -s http://tnx.nl/ip
  • curl -s https://checkip.amazonaws.com
  • curl -s api.infoip.io/ip
  • curl -s ip.appspot.com
  • wget -O - -q https://icanhazip.com/

如果上述任何命令不起作用,则在线服务可能存在问题。

您甚至可以创建一个alias在你的~/.bashrc or ~/.zshrc文件,因此您不必键入并记住长命令。例如,您可以添加以下别名:

alias pubip='dig ANY +short @resolver2.opendns.com myip.opendns.com'

现在,每当您需要查找您的公共 IP 时,只需输入pubip在您的终端中。

结论#

我们向您展示了几种不同的命令和在线服务,您可以使用它们来查找您的私有和公共 IP 地址。

如果您有任何疑问或意见,请在下面留言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Linux 中查找/获取您的 IP 地址 的相关文章

  • 为 CocoaPods 插件设置 Xcode

    我正在尝试设置终端 Xcode 以便正确工作Xcode CocoaPods 插件 https github com kattrali cocoapods xcode plugin 当我从插件运行集成 cocoapods 选项时 我收到一条消
  • 监控Mac网络流量

    我想知道如何监控 Mac 上的网络流量 就像活动监视器的方式一样 显示进出的字节 数据包 我知道这有点模糊 但我不确定最好的起点 编辑 我想用代码来完成此操作 而不是使用现有的软件 我刚刚找到了开源项目 菜单表 http www ragin
  • Node.js:将 repl 挂接到远程节点服务器

    假设我有一个节点服务器在 mysite com 上运行 有没有办法设置该服务器以便我可以使用节点的repl api http nodejs org docs latest api repl html to securely从我的本地计算机连
  • 在 win32/cygwin 上编译 haskell 模块网络

    我正在尝试编译 Network HTTP http hackage haskell org package network http hackage haskell org package network 在 win32 cygwin 上
  • OSX 终端在启动时无法识别 ~/.bashrc 和 ~/.bash_profile

    OSX 识别我的 bashrc 和 bashprofile 的唯一方法是我在终端的首选项中指定启动时要定位的文件 他们没有按应有的方式工作有什么原因吗 这是我的 bashrc 的内部 s HOME rvm scripts rvm sourc
  • 如何限制 docker 容器仅侦听来自本地主机的连接?

    我正在运行一个 docker 容器docker run p 8080 8080 其他计算机可以通过访问访问我的服务器 my ip 8080 但是 出于安全原因 我希望只有 localhost 127 0 0 0 能够访问我的服务器 我不希望
  • 使用 Python 查找 LAN 上的活动节点

    我正在创建一个与 Python 2 7 和 Windows 中的 IP Messenger 相同的 Messenger 我想要与 IP Messenger 使用的功能相同的功能查找通过 LAN 运行相同软件的系统但我无法理解这项技术 有人可
  • 在没有 paramiko 的情况下通过 python 运行 ssh 时,“伪终端不会被分配,因为 stdin 不是终端”

    我在 Python 中运行 ssh 而不使用像 Paramiko 这样的外部库 我这样做有我的理由 而不是通过外部库 基本上我正在做subprocess Popen ssh t bla command 执行此操作时我收到以下消息 Pseud
  • 使用 JMS,是否有任何方法可以将消息存储在间歇性断开连接的客户端上,并在网络可用时将其转发给代理?

    我正在考虑一种架构 其中我的客户端间歇性地连接到网络 当网络不可用时 我希望将在这些客户端上创建的消息存储在 JMS 队列中 并在客户端位于网络上时将这些消息转发到中央消息代理 用户可以控制网络 例如拨入 因此它不像手机那样是间歇性连接 是
  • 10G 链路的 netcat 和 iperf 结果存在巨大差异

    我很困惑看到 netcat 和 iperf 结果之间的巨大差异 我有 10 G 链路连接我的服务器和客户端 iperf 的速度约为 10Gb s 但 netcat 的速度仅为约 280 MB s 可能是什么错误 对于 Iperf Serve
  • 由于 Xcodebuild,终端在每个命令上都停止运行

    我刚刚将 Xcode 更新到 11 4 突然间我的终端 iTerm 3 3 9 变得非常慢 键入命令效果很好 但在按下 Enter 后 我经常等待 3 4 秒才能执行一个简单的任务 cd git add etc 当我查看状态栏时 我注意到x
  • 在本地主机上使用相同的 IP 和端口创建套接字

    我在 Linux 上看到奇怪的行为 我看到远程端和本地端都显示相同的 IP 和端口组合 以下是 netstat 输出 netstat anp 网络统计grep 6102 tcp 0 0 139 185 44 123 61020 0 0 0
  • Kubernetes,无法访问其他节点服务

    我正在 3 个带有 CentOS 7 的 VirtualBox 虚拟机 1 个 master 和 2 个 minions 中使用 Kubernetes 不幸的是安装手册说的是这样的every service will be accessib
  • 如何根据 Bash 中的 VI 模式更改光标形状?

    我的 bashrc 中有以下行 set o vi 我希望我的光标在插入模式下具有管道形状 在命令模式下具有块形状 就像我在 vimrc 中放置以下内容时在 Vim 中的形状一样 let t SI e 6 q let t SR e 4 q l
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 用java实现我自己的远程桌面

    我正在尝试用java实现我自己的远程桌面解决方案 使用套接字和 TCP UDP 我知道我可以使用 VNC 或其他任何东西 但我想做的是学校的作业 因此 为了移动鼠标并单击 我可以使用 Robot 类 我对此有两个问题 发送视频怎么样 我知道
  • 是否有 ADB 命令来检查媒体是否正在播放

    我想使用 ADB 命令检查根植于终端的外部设备中是否正在播放音频 视频 我无法找到任何 ADB 命令 如果有 我尝试过 adb shell dumpsys media player 我想要一个命令来指定视频是否正在运行 您可以使用以下命令查
  • 尝试对无法访问的主机进行套接字操作

    一位客户在连接到我们的服务器服务的 WCF 客户端上报告了此错误 消息 尝试对无法访问的主机进行套接字操作 类型 System Net Sockets SocketException 从这个链接http msdn microsoft com
  • 将多个 csv 文件连接成具有相同标头的单个 csv

    我目前正在使用以下代码导入 6 000 个 csv 文件 带标题 并将它们导出到单个 csv 文件 带单个标题行 import csv files from folder path r data US market merged data
  • Selenium - 等待网络流量

    我们将 Selenium 与 Java API 和一些 Javascript 用户扩展一起使用 我们在应用程序中使用了大量 AJAX 调用 我们的许多测试随机失败 因为有时 AJAX 调用完成得比其他时候慢 因此页面未完全加载 我们通过等待

随机推荐

  • 了解 Linux 进程状态的基本指南

    Linux 是世界上最流行的操作系统之一 以其效率和可靠性而备受赞誉 它是许多服务器 超级计算机和嵌入式系统的核心 Linux 的强大功能很大一部分源于它对系统进程的管理 本文提供了了解 Linux 进程状态的基本指南 并举例说明以便更好地
  • 如何在生产服务器上安全地重新启动 Apache

    要在生产服务器上安全地重新启动 Apache 建议使用 apachectl 或 httpd 工具 取决于您的系统 它提供了优雅的重新启动命令 这可确保所有当前操作在服务重新启动之前完成 验证配置文件 重新启动之前 请确保您的 Apache
  • 如何在 Ubuntu 20.04 上安装和配置 Fail2ban

    Fail2ban 是一种用于提高服务器安全性免受网络攻击的工具 它允许您根据定义的设置临时或永久阻止远程 IP 地址 它可以帮助您保护服务器和数据免受攻击者的侵害 本教程帮助您在 Ubuntu 20 04 LTS Linux 系统上安装 F
  • 什么是 SHA-512 算法?

    安全哈希算法 SHA 是将数据转换为固定长度哈希值的加密函数 可以将其视为数据的数字 指纹 SHA 512 算法是 SHA 2 安全哈希算法 2 家族的一部分 该算法由美国国家安全局 NSA 设计 并由美国国家标准与技术研究所 NIST 于
  • df 命令 – 检查 Linux 中的磁盘空间

    你使用Linux吗 如果是这样 那么您就知道它是一个功能强大的操作系统 具有大量工具和选项来帮助您管理系统 Linux 提供的最有用的工具之一是 df 命令 它允许您检查磁盘空间 在这篇博客中 我们将了解如何使用 df 命令来检查 Linu
  • Git 技巧:安全删除本地和远程分支

    使用 Git 是现代软件开发的重要组成部分 随着项目的发展 我们经常发现自己有多个分支代表不同的开发阶段 然而 维护太多分支可能会导致混乱和混乱 在本文中 我们将探讨安全有效地删除 Git 远程和本地分支的步骤 确保干净且有组织的工作流程
  • Linux Nohup 命令

    The nohup命令执行指定为其参数的另一个程序并忽略所有SIGHUP 挂断 信号 SIGHUP是当进程的控制终端关闭时发送到进程的信号 通常 当您通过 SSH 运行程序时 如果连接断开或注销 会话将终止 并且从终端执行的所有进程都将停止
  • 如何在 CentOS 7 上安装和使用 FFmpeg

    FFmpeg 是一个用于处理多媒体文件的免费开源工具集合 它包含一组共享的音频和视频库 例如libavcodec libavformat和libavutil 使用 FFmpeg 您可以在各种视频和音频格式之间进行转换 设置采样率 捕获流音频
  • 如何在 Debian 10 上安装 Python 3.8

    Python 是世界上使用最广泛的编程语言之一 凭借其简单易学的语法 Python 成为初学者和经验丰富的开发人员的热门选择 Python 是一种非常通用的编程语言 它可用于构建各种应用程序 从简单的脚本到复杂的机器学习算法 Debian
  • 如何在 Debian 9 上安装 Visual Studio Code

    视觉工作室代码是微软开发的免费开源跨平台代码编辑器 它有一个内置的调试支持 嵌入式Git控制 语法突出显示 代码完成 集成终端 代码重构和片段 可以使用扩展来扩展 Visual Studio Code 功能 本教程介绍如何使用 VS Cod
  • 使用 PostfixAdmin 设置邮件服务器

    Postfix Admin 是一个基于 Web 的界面 允许用户配置和管理基于 Postfix 的电子邮件服务器 使用 Postfix Admin 您可以创建和管理多个虚拟域 用户和别名 这是该系列的第一篇文章设置和配置邮件服务器其中涵盖了
  • 如何在 CentOS 8 上安装 PHP

    PHP 是最常用的服务器端编程语言之一 许多流行的 CMS 和框架 例如 WordPress Magento 和 Laravel 都是用 PHP 构建的 在本指南中 我们将讨论如何在 CentOS 8 上安装 PHP 7 2 7 3 或 7
  • 在 Debian 10 上使用 Let's Encrypt 保护 Apache

    Let s Encrypt 是由互联网安全研究小组 ISRG 创建的证书颁发机构 它通过完全自动化的流程提供免费的 SSL 证书 旨在消除手动证书创建 验证 安装和续订 Let s Encrypt 颁发的证书自颁发之日起 90 天内有效 并
  • 如何在 CentOS 7 上安装 PostgreSQL

    PostgreSQL 或 Postgres 是一种开源通用对象关系数据库管理系统 具有许多高级功能 可让您创建复杂的 Web 应用程序 在本教程中 我们将向您展示如何在 CentOS 7 计算机上安装 PostgreSQL 的两种不同方法
  • 如何在 Ubuntu 18.04 上安装 MariaDB

    MariaDB 是一个开源 多线程关系数据库管理系统 向后兼容 MySQL 的替代品 它由以下机构维护和开发MariaDB基金会包括MySQL的一些原始开发人员 在本教程中 我们将向您展示如何在 Ubuntu 18 04 计算机上安装 Ma
  • 在 CentOS 7 上使用 yum-cron 配置自动更新

    定期更新 CentOS 系统是整个系统安全最重要的方面之一 如果您不使用最新的安全补丁更新操作系统的软件包 您的计算机就会容易受到攻击 如果您管理多台 CentOS 机器 手动更新系统软件包可能会非常耗时 即使您管理单个 CentOS 安装
  • 在 Vim / Vi 中查找和替换

    本文介绍如何在 Vim Vi 中查找和替换文本 Vim 是最流行的命令行文本编辑器 它预装在 macOS 和大多数 Linux 发行版上 在 Vim 中查找和替换文本既快速又简单 基本查找和替换 在 Vim 中 您可以使用以下命令查找和替换
  • 安装和配置 Roundcube Webmail

    这是最后一部分设置和配置邮件服务器系列 其中我们将介绍如何安装和配置 Roundcube Webmail Roundcube 是一个基于 Web 的 IMAP 电子邮件客户端 具有用 PHP 编写的非常直观且现代的用户界面 要使用 Roun
  • Linux 中的自由命令

    我的 Linux 系统上有多少可用 RAM 内存 是否有足够的可用内存来安装和运行新应用程序 在Linux系统中 您可以使用free命令获取有关系统内存使用情况的详细报告 The free命令提供有关物理总量和swap内存 以及空闲和已用内
  • 如何在 Linux 中查找/获取您的 IP 地址

    在排除网络问题 设置新连接或配置防火墙时 了解设备的 IP 地址非常重要 IP 地址可分为两类 公共地址和私有地址 公共IP是唯一的并且可以从互联网访问的IP地址 私有 IP 地址保留供私有网络内部使用 而不直接暴露于 Internet 此