菜鸟科技网

CentOS如何查看IP地址?

下面我将从最常用到最详细的顺序,为你列出各种查看 IP 地址的命令,并解释它们的区别和用法。

CentOS如何查看IP地址?-图1
(图片来源网络,侵删)

使用 ip addr 命令 (推荐)

这是目前 Linux 系统中最现代、最推荐的命令,用于显示和操作路由、网络设备、策略路由和隧道。

查看所有网络接口的 IP 地址

这是最常用的方式,会列出所有网络接口(如 eth0, ens33, lo)及其对应的 IP 地址、MAC 地址等信息。

ip addr

或者使用简写 ip a

ip a

输出示例:

CentOS如何查看IP地址?-图2
(图片来源网络,侵删)
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:12:34:56 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.101/24 brd 192.168.1.255 scope global noprefixroute dynamic ens33
       valid_lft 123456sec preferred_lft 123456sec
    inet6 fe80::20c:29ff:fe12:3456/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

输出解读:

  • 1: lo: lo 是回环接口(Loopback),IP 是 0.0.1
  • 2: ens33: ens33 是你的主要网络接口(通常是网卡)。
  • inet 192.168.1.101/24: 这就是你的 IPv4 地址168.1.101,子网掩码是 255.255.0/24 表示)。
  • inet6 fe80::...: 这是你的 IPv6 地址
  • link/ether 00:0c:29:...: 这是网卡的 MAC 地址

只查看某个特定接口的 IP

如果你想只查看 ens33 这个接口的信息:

ip addr show ens33

精准提取 IP 地址

如果你只想从输出中提取出 IP 地址,可以使用 grepawk 命令组合:

# 只显示 IPv4 地址
ip addr show | grep 'inet ' | awk '{print $2}' | cut -d/ -f1
# 输出示例:
# 127.0.0.1
# 192.168.1.101

使用 ifconfig 命令 (传统方法)

ifconfig 是一个传统的命令,在很多旧版 Linux 系统中很常见,在新版的 CentOS 7/8 中,它默认没有安装,但你可以安装 net-tools 包来使用它。

CentOS如何查看IP地址?-图3
(图片来源网络,侵删)

安装 ifconfig (如果未安装)

# CentOS 7/8
sudo yum install net-tools

查看所有网络接口的 IP 地址

ifconfig

查看特定接口的 IP 地址

ifconfig ens33

输出示例:

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.101  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe12:3456  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:12:34:56  txqueuelen 1000  (Ethernet)
        RX packets 12345  bytes 987654 (987.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6789  bytes 987654 (987.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

输出解读:

  • inet 192.168.1.101: 这就是你的 IPv4 地址
  • netmask 255.255.255.0: 这是子网掩码。
  • ether 00:0c:29:12:34:56: 这是 MAC 地址。

查看网络配置文件

这种方法不显示“当前正在使用”的 IP,而是显示“系统配置文件中设置的”静态 IP,这对于排查 DHCP 或 NetworkManager 的问题非常有用。

CentOS 7/8 使用 NetworkManager 管理网络,配置文件通常位于 /etc/sysconfig/network-scripts/ 目录下。

  1. 找到你的配置文件 文件名格式通常是 ifcfg-<接口名>ifcfg-ens33

    ls /etc/sysconfig/network-scripts/
  2. 查看文件内容 使用 catless 命令查看文件内容。

    cat /etc/sysconfig/network-scripts/ifcfg-ens33

输出示例:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static  # 表示静态IP,如果是 dhcp 则表示动态获取
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=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
DEVICE=ens33
ONBOOT=yes        # 开机是否启动此网络接口
IPADDR=192.168.1.101  # 这里是设置的静态IP地址
PREFIX=24         # 子网掩码,等同于 255.255.255.0
GATEWAY=192.168.1.1   # 网关
DNS1=8.8.8.8      # DNS服务器

使用 hostname 命令

hostname 命令主要用于显示或设置系统的主机名,但在某些情况下,它也会显示与主机名绑定的 IP 地址。

hostname -I

输出示例:

168.1.101

这个命令会打印所有配置在主机名上的 IPv4 地址,非常简洁,适合在脚本中快速获取主 IP。


总结与对比

命令 优点 缺点 适用场景
ip addr 现代、功能强大、信息全面、官方推荐 输出信息较多,初学者可能觉得复杂 日常查看、故障排查、脚本编写(首选)
ifconfig 传统、简单直观 默认未安装,在新系统中逐渐被淘汰 在旧系统或习惯使用它的环境中快速查看
cat ifcfg-... 能看到静态 IP 的永久配置 不显示动态获取的 IP 检查网络配置文件,排查为什么 IP 没有生效
hostname -I 极其简洁,只显示 IP 信息量少,不显示 MAC、子网等 在脚本中快速获取主机的 IP 地址

快速参考

  • 日常查看 IP (推荐):
    ip addr
  • 快速获取 IP (脚本用):
    hostname -I
  • 查看网络配置:
    cat /etc/sysconfig/network-scripts/ifcfg-你的网卡名
  • 传统方式 (ip 命令不好用):
    ifconfig
分享:
扫描分享到社交APP
上一篇
下一篇