HCRM博客

在CentOS系统下快速定位IP地址的方法

掌握CentOS网络状态:轻松查看IP地址的多种方法

在管理CentOS服务器或进行日常运维时,准确快速地获取系统的IP地址信息是一项基础且关键的任务,无论是排查网络连接问题、配置服务,还是进行远程访问,知晓机器的IP地址都必不可少,本文旨在提供清晰、实用的指南,介绍在CentOS系统上查看IP地址的多种可靠方法,助您高效管理网络配置。

在CentOS系统下快速定位IP地址的方法-图1

理解关键概念:IP地址与网络接口

在深入操作之前,简单理解几个概念有助于更清晰地执行命令:

  1. IP地址: 互联网协议地址,是设备在网络中的唯一标识符,分为IPv4(如 192.168.1.100)和IPv6(如 fe80::20c:29ff:fea4:d16)两种版本。
  2. 网络接口: 服务器与网络连接的物理或逻辑端口,常见的物理接口如 eth0 (传统以太网), ens33 (较新系统常见命名), enp0s3 等;虚拟接口如 lo (本地环回, 通常是127.0.0.1)。
  3. 内网IP vs. 公网IP:
    • 内网IP (私有IP): 在局域网内部使用的地址,无法直接从互联网访问,常见范围:0.0.0/8, 16.0.0/12, 168.0.0/16
    • 公网IP (公有IP): 互联网上全局唯一的地址,用于服务器对外提供服务或访问互联网,通常由云服务商、ISP分配。

使用 ip addr 命令(推荐)

ip 命令是现代Linux发行版(包括CentOS 7及更高版本)中功能强大的网络配置工具集,是传统 ifconfig 的替代品,它提供的信息丰富且格式清晰。

  1. 打开终端: 通过SSH登录服务器或直接在服务器控制台打开命令行终端。
  2. 执行命令:
    ip addr

    或者更精确地查看状态为 UP (启用) 的接口:

    ip addr show up
  3. 解读输出:
    • 查找类似 eth0, ens33, enp0s3lo 的接口名称。
    • 在接口信息块中,寻找 inet 行(对应IPv4地址)和 inet6 行(对应IPv6地址)。
    • inet 后面紧跟的就是该接口的IPv4地址(如 168.1.100/24),/24 表示子网掩码(这里是 255.255.255.0)。
    • 紧挨着的 brd 后面是广播地址。
    • inet6 后面是IPv6地址。
    • 状态 UP 表示接口已启用,LOWER_UP 表示物理链路已连接。
    • 示例输出片段:
      2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
          link/ether 00:0c:29:a4:0d:16 brd ff:ff:ff:ff:ff:ff
          inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute dynamic ens33
             valid_lft 86388sec preferred_lft 86388sec
          inet6 fe80::20c:29ff:fea4:d16/64 scope link noprefixroute
             valid_lft forever preferred_lft forever

使用 ifconfig 命令(传统,可能需要安装)

在CentOS系统下快速定位IP地址的方法-图2

ifconfig 是一个历史悠久的网络接口配置命令,在较旧的教程和部分管理员习惯中仍被广泛提及,但在CentOS 7及以后的最小化安装中,它可能默认未安装。

  1. 检查是否安装: 直接在终端输入 ifconfig,如果提示命令未找到 (command not found),则需要安装 net-tools 包。
  2. 安装 net-tools (如果需要):
    sudo yum install net-tools  # CentOS 7
    sudo dnf install net-tools  # CentOS 8/Stream
  3. 执行命令:
    ifconfig

    或查看特定接口:

    ifconfig ens33
  4. 解读输出:
    • 同样查找接口名称 (eth0, ens33 等)。
    • 在接口信息中,inet 后面是IPv4地址,inet6 后面是IPv6地址。
    • netmask 表示子网掩码。
    • broadcast 表示广播地址。
    • ether 后面是网卡的MAC地址。
    • 状态 UP 表示接口启用。
    • 示例输出片段:
      ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
              inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
              inet6 fe80::20c:29ff:fea4:d16  prefixlen 64  scopeid 0x20<link>
              ether 00:0c:29:a4:0d:16  txqueuelen 1000  (Ethernet)
              RX packets 12345  bytes 9876543 (9.4 MiB)
              TX packets 6789  bytes 1234567 (1.1 MiB)

使用 hostname 命令

hostname 命令主要用于查看或设置主机名,但配合 -I (大写i) 选项可以快速列出系统所有非环回(lo)网络接口的IPv4地址。

  1. 执行命令:
    hostname -I
  2. 输出解读:
    • 该命令会在一行内输出所有非环回接口的IPv4地址,用空格分隔。
    • 示例:168.1.100 10.0.0.5
    • 这个方法非常简洁,特别适合在脚本中快速获取所有IP地址。

使用 nmcli 命令(NetworkManager 用户)

如果您的CentOS系统使用 NetworkManager 服务来管理网络(桌面环境或部分服务器配置),nmcli 是其强大的命令行客户端。

在CentOS系统下快速定位IP地址的方法-图3
  1. 执行命令查看所有设备概况:
    nmcli device status

    这会列出设备名称、类型、状态和连接信息。

  2. 查看具体设备的详细信息(包含IP):
    nmcli device show ens33

    ens33 替换为您的实际接口名,在输出中查找 IP4.ADDRESS[1]IP6.ADDRESS[1] 行获取详细的IP地址信息。

如何查看服务器的公网IP?

前面介绍的方法主要获取的是服务器内网接口的IP地址,如果您的服务器部署在云平台(如阿里云、腾讯云、AWS、Azure)或通过路由器/NAT设备连接互联网,那么它还有一个由云服务商或ISP分配的公网IP

  1. 使用 curl 访问外部服务: 这是最常用和便捷的方法,利用一些提供查询自身公网IP服务的网站。
    • 常用命令:
      curl ifconfig.me
      curl icanhazip.com
      curl ipinfo.io/ip
      curl api.ipify.org
    • 执行任何一个命令,终端通常直接返回服务器的公网IPv4地址。
  2. 注意事项:
    • 这种方法需要服务器本身能正常访问互联网。
    • 依赖于外部服务的可用性和稳定性。
    • 部分命令可能返回IPv6地址(如 curl icanhazip.com 默认返回IPv4,curl -6 icanhazip.com 返回IPv6),使用 ip addr 结合外部服务是判断服务器是否具备IPv6公网地址的更准确方法。

选择哪种方法?个人观点与实践建议

  • ip addr 是首选: 它功能强大、信息全面、格式标准,且是系统自带工具,无需额外安装。ip addr show up 能快速过滤出活跃接口,非常高效,强烈建议管理员优先掌握和使用此命令。
  • hostname -I 适合脚本: 当您只需要快速获取所有内网IPv4地址列表用于脚本自动化时,这个命令简洁明了。
  • ifconfig 作为备选: 熟悉传统命令或需要查看更详细的流量统计信息时可以使用,但需注意其可能未预装,且未来支持度可能逐渐降低。
  • nmcli 适合NetworkManager环境: 如果系统明确依赖NetworkManager,使用其配套工具 nmcli 进行管理更为一致和可靠。
  • 公网IP查询:curl 外部服务是最通用的方法,尤其在云服务器上,对于物理服务器直接连接公网的情况,ip addr 显示在公网接口上的IP就是公网IP(通常不在私有地址段内)。

关键点强调:

  • 权限: 执行 ifconfigip addr 通常不需要 root 权限即可查看信息,但安装软件包 (sudo yum/dnf install ...) 和修改网络配置需要 sudoroot
  • 接口名称: CentOS 7+ 默认使用类似 ens33, enp0s3 的命名规则,替代了传统的 eth0,使用 ip link showls /sys/class/net 可以列出所有接口名称。
  • IPv6: 现代网络环境中,IPv6地址越来越重要。ip addr 命令能清晰地展示IPv6地址(inet6行)及其作用域 (scope global 通常是公网或内网唯一地址,scope link 是链路本地地址)。
  • 环境差异: 不同版本的CentOS、不同的网络配置(如是否使用NetworkManager)、不同的虚拟化/云平台环境,可能会在细节上略有差异,掌握原理比死记命令更重要。

写在最后:

熟练掌握在CentOS上查看IP地址的技能,是每一位服务器管理者和开发者的基本功,看似简单的操作,却连接着服务器与庞大网络世界的桥梁,理解不同命令的适用场景、区分内网与外网地址、关注IPv6的发展,能让您在面对复杂的网络环境时更加从容不迫,选择 ip addr 作为您的得力助手,结合实际情况灵活运用其他方法,网络配置与故障排查的效率将大大提升,清晰的网络认知是保障服务稳定与安全的重要基石。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/37208.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~