最常用且推荐的方法(适用于 CentOS 7 及以上版本)
这些是现代 Linux 系统的标准方式,信息清晰,易于使用。

ip addr 命令(推荐)
ip 命令是 ifconfig 的替代品,功能更强大,是当前所有主流 Linux 发行版的首选。
基本用法:
ip addr
输出示例:
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 86400sec preferred_lft 86400sec
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是你的第一块以太网网卡(具体名称可能不同,如ens32,eth0)。inet 192.168.1.101/24: 这就是你网卡的 IPv4 地址。168.1.101是地址,/24是子网掩码。inet6 fe80::...: 这是网卡的 IPv6 地址。
常用技巧:
- 只显示 IPv4 地址:
ip -4 addr show # 或者简写 ip -4 a
- 只显示 IPv6 地址:
ip -6 addr show # 或者简写 ip -6 a
- 只显示活跃且已配置 IP 的接口:
ip addr show | grep -E 'inet|UP'
- 获取单个 IP 地址(一行一个):
ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}'这个命令会直接输出
168.1.101,非常适合在脚本中使用。
nmcli 命令(NetworkManager 的命令行工具)
如果你的 CentOS 系统使用 NetworkManager(默认是),nmcli 是管理网络连接和查看信息的最佳工具,信息非常结构化。
基本用法:
nmcli device show
输出示例:
设备类型: ethernet
接口名称: ens33
通用路径: /sys/devices/pci0000:00/0000:00:1f.6/net/ens33
MAC 地址 (MAC): 00:0C:29:12:34:56
...
IP4.地址[1]: 192.168.1.101/24
IP4.网关: 192.168.1.1
IP4.DNS[1]: 8.8.8.8
IP4.DNS[2]: 8.8.4.4
...
IP6.地址[1]: fe80::20c:29ff:fe12:3456/64
常用技巧:
- 简洁模式,只显示 IP 地址:
nmcli -g ip4.addresses device show ens33 # 输出: 192.168.1.101/24
- 显示所有连接的简要信息:
nmcli connection show
传统方法(适用于 CentOS 6 或旧版系统)
这些方法在旧版系统中非常常见,在新版系统中仍然可用,但已逐渐被 ip 和 nmcli 取代。
ifconfig 命令
ifconfig 是一个非常经典的老牌命令,但在新版的 CentOS 中默认没有安装。
安装 ifconfig:
# CentOS 7/8 sudo yum install net-tools
基本用法:
ifconfig
输出示例:
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 15233 bytes 15343654 (14.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8451 bytes 1015421 (990.7 KiB)
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 56 bytes 4864 (4.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 56 bytes 4864 (4.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如何解读输出:
inet 192.168.1.101: 这就是你的 IPv4 地址。netmask 255.255.255.0: 子网掩码。
查看特定网卡:
ifconfig ens33
hostname 命令
这个命令主要用于显示或设置系统的主机名,但也可以用来显示 IP 地址。
基本用法:
hostname -I
输出示例:
168.1.101 10.0.0.5
这个命令会以空格分隔,列出所有配置在主机上的 IPv4 地址,非常简洁。
特殊情况:查看公网 IP 地址
有时你需要知道服务器在互联网上的公网 IP,而不是内网 IP。
使用 curl 访问在线服务
这是最简单直接的方法,需要系统安装 curl(通常已预装)。
curl ifconfig.me # 或者 curl ipinfo.io # 或者 curl cip.cc
输出示例:
45.67.89
这个 45.67.89 就是你的服务器出口到互联网的公网 IP 地址。
使用 wget 访问在线服务
如果你的系统有 wget 而没有 curl,也可以使用它。
wget -qO- ifconfig.me
总结与对比
| 命令 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
ip addr |
日常查看、脚本编写(推荐) | 信息全面,是现代标准,功能强大 | 输出信息较多,需要简单过滤 |
nmcli |
NetworkManager 环境下精确管理 | 信息结构化,适合管理网络连接 | 对简单查看来说略显复杂 |
ifconfig |
旧版系统 (CentOS 6) 或习惯使用 | 经典命令,熟悉直观 | 新版系统默认不安装,功能相对 ip 较弱 |
hostname -I |
快速获取所有 IP 地址 | 极其简洁,一行搞定 | 不显示子网掩码等其他信息 |
curl ifconfig.me |
获取公网 IP 地址 | 简单快速,无需登录路由器 | 依赖网络连接和外部服务 |
给新手的建议:
- 日常查看:直接使用
ip addr。 - 需要快速复制 IP:使用
hostname -I。 - 管理网络:学习使用
nmcli。 - 获取公网 IP:使用
curl ifconfig.me。
