在管理和维护 CentOS 服务器的过程中,了解如何查看其 IP 地址是一项基础且至关重要的技能,无论是进行远程连接、配置网络服务,还是排查网络故障,IP 地址都是不可或缺的关键信息,本文将系统地介绍在 CentOS 系统中查看 IP 地址的多种方法,从传统的命令到现代的工具,并深入解析不同场景下的最佳实践,帮助您全面掌握这一核心技能。

IP 地址分为内网(私有)IP 和公网 IP,内网 IP 用于局域网内部通信,而公网 IP 则是服务器在互联网上的唯一标识,我们将分别介绍如何查看这两种类型的地址。
使用 ip 命令(推荐)
ip 命令是 iproute2 软件包的一部分,它取代了老旧的 ifconfig 命令,是现代 Linux 发行版(包括 CentOS 7 及更高版本)中查看和管理网络信息的标准工具,它功能强大,信息详尽。
基本用法: 打开终端,输入以下命令:
ip addr
或者使用其简写形式:
ip a
输出解析: 执行命令后,您会看到类似下面的输出:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:4a:5b:6c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe4a:5b6c/64 scope link
       valid_lft forever preferred_lft forever
lo:这是回环接口,其 IP 地址永远是0.0.1,用于本机内部通信。ens33:这是一个以太网接口的名称(名称可能因系统而异,如eth0,eno16777736等),这是我们关注的重点。inet 192.168.1.100/24:这行信息显示了该接口的 IPv4 地址。168.1.100就是您的内网 IP 地址,/24表示子网掩码为 255.255.255.0。inet6 fe80::...:这是该接口的 IPv6 链路本地地址。
快速筛选 IPv4 地址:
如果您只想快速查看 IPv4 地址,可以结合 grep 命令进行过滤:
ip a | grep 'inet '
这会输出所有包含 inet 的行,让您能更直接地找到 IP 地址。
使用 ifconfig 命令(传统方法)
ifconfig 是一个非常经典的网络配置工具,许多资深管理员都习惯使用它,在最小化安装的 CentOS 7/8 系统中,它可能默认未被安装。

安装 ifconfig:
如果提示 command not found,您需要先安装 net-tools 软件包:
sudo yum install net-tools
基本用法: 安装完成后,直接输入命令即可:
ifconfig
输出解析: 输出结果会列出所有活动的网络接口:
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:fe4a:5b6c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:4a:5b:6c  txqueuelen 1000  (Ethernet)
        RX packets 12345  bytes 1234567 (1.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 54321  bytes 7654321 (7.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        TX packets 0  bytes 0 (0.0 B)
- 在 
ens33接口下,inet 192.168.1.100后面紧跟的就是您的内网 IPv4 地址、子网掩码和广播地址,非常直观。 
查看网络配置文件(适用于静态 IP)
如果您的服务器 IP 地址是手动配置的(静态 IP),那么信息会明确记录在配置文件中,这对于确认配置和排查静态 IP 问题非常有用。
配置文件通常位于 /etc/sysconfig/network-scripts/ 目录下,文件名格式为 ifcfg-<接口名>,ifcfg-ens33。
使用 cat 或 vi 命令查看文件内容:
cat /etc/sysconfig/network-scripts/ifcfg-ens33
示例:**
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=...
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
BOOTPROTO=static表明这是一个静态 IP 配置。IPADDR=192.168.1.100直接定义了 IP 地址。
查找公网 IP 地址
上述方法查到的都是内网 IP,如果您需要知道服务器在互联网上的地址,可以使用以下命令,它们会向外部服务请求,并返回您的公网 IP。

确保您的服务器可以访问互联网,然后使用 curl 工具:
curl ifconfig.me
或者:
curl ipinfo.io
又或者:
curl icanhazip.com
这些命令会直接返回一串数字,即您的公网 IP 地址。
方法小编总结与对比
为了方便您根据不同场景选择最合适的方法,下表对上述主要方法进行了小编总结:
| 命令/方法 | 适用场景 | 优点 | 缺点 | 
|---|---|---|---|
ip addr | 
日常查看、脚本编写、现代系统 | 信息最全面,系统自带,功能强大 | 输出信息较多,初学者需适应 | 
ifconfig | 
习惯旧版命令、快速查看 | 输出直观,符合老用户习惯 | 可能需额外安装,功能已被 ip 取代 | 
hostname -I | 
脚本中快速获取 IP | 输出简洁,只有 IP 地址 | 信息量少,无法区分接口 | 
查看配置文件 | 
排查静态 IP 配置问题 | 信息权威,直接反映配置 | 需要文件路径和权限,不适用于动态 IP | 
curl 外部服务 | 
获取公网 IP | 简单直接,结果准确 | 需要互联网连接,依赖外部服务 | 
相关问答 FAQs
为什么我使用 ifconfig 命令时系统提示 “command not found”?
解答: 这是因为在 CentOS 7 及以后的版本中,特别是采用最小化安装时,ifconfig 命令所属的 net-tools 软件包不再默认被安装,系统推荐使用更现代的 ip 命令,如果您确实需要使用 ifconfig,可以通过 sudo yum install net-tools 命令来手动安装它,安装完成后,即可正常使用。
我的服务器有多个网络接口和多个 IP 地址,如何准确判断哪个是用于连接互联网的主 IP?
解答: 通过 ip route 或 ip r 命令查看系统的路由表,标记为 default 的那条路由所对应的设备(dev 后面的接口名)就是主网络接口,再使用 ip addr show <接口名> 查看该接口的 IP 地址,这个 IP 通常就是主 IP,要确定公网 IP,最可靠的方法仍然是使用 curl ifconfig.me 这类命令,因为它返回的是对端服务器看到的您的 IP,避免了内部多 IP 的混淆。