在管理和维护 CentOS 服务器的过程中,准确、快速地查看主机的网络地址是一项基础且至关重要的技能,无论是配置网络服务、排查连接故障,还是设置防火墙规则,都离不开对主机 IP 地址的掌握,本文将系统性地介绍在 CentOS 系统中查看主机地址的多种方法,从传统工具到现代命令,并涵盖内网与公网地址的获取,帮助您全面掌握这一核心操作。
使用 ip addr
命令(现代推荐方法)
在当前主流的 CentOS 7、8 及 9 版本中,ip
命令套件(iproute2
)是查看和管理网络配置的首选工具,它功能强大且信息详尽。ip addr
(或其简写形式 ip a
)是用于显示接口地址信息的核心命令。
在终端中直接输入以下命令:
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 fq_codel state UP group default qlen 1000
link/ether 08:00:27:2e:c6:64 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::a00:27ff:fe2e:c664/64 scope link
valid_lft forever preferred_lft forever
输出信息解读:
1: lo
和2: ens33
:这是网络接口的名称。lo
是本地回环接口,ens33
是一个典型的以太网接口名称。link/ether 08:00:27:2e:c6:64
:这是接口的 MAC 地址(物理地址)。inet 192.168.1.100/24
:这是您需要重点关注的 IPv4 地址。168.1.100
是主机的内网 IP 地址,/24
表示子网掩码为 255.255.255.0。inet6 fe80::a00:27ff:fe2e:c664/64
:这是接口的 IPv6 链路本地地址。scope global
:表示这是一个全局有效的地址,可以在整个网络中路由。scope link
则表示该地址仅在本地链路上有效。
使用 ifconfig
命令(传统方法)
ifconfig
是一个非常经典的网络配置工具,许多资深管理员都习惯使用它,在较新的 CentOS 版本中,ifconfig
所属的 net-tools
包已不再默认安装。
如果您希望使用 ifconfig
,可能需要先手动安装它:
sudo yum install net-tools
安装完成后,即可使用命令查看地址:
ifconfig
其输出格式与 ip addr
不同,但同样包含了关键信息:
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::a00:27ff:fe2e:c664 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:2e:c6:64 txqueuelen 1000 (Ethernet)
RX packets 1234 bytes 123456 (123.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5678 bytes 654321 (654.3 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 0 bytes 0 (0.0 B)
TX packets 0 bytes 0 (0.0 B)
inet 192.168.1.100
清晰地标明了 IPv4 地址,netmask
是子网掩码,broadcast
是广播地址。
查看主机名
主机名是网络中识别一台主机的逻辑标识,它同样是一种“地址”。
使用 hostname
命令可以快速查看当前的主机名:
hostname
而 hostnamectl
命令提供了更为丰富的信息,包括静态主机名、瞬态主机名等,是现代系统管理中的推荐工具:
hostnamectl
输出可能如下:
Static hostname: centos-server
Icon name: computer-server
Chassis: server
Machine ID: ...
Boot ID: ...
Operating System: CentOS Linux 8
CPE OS Name: cpe:/o:centos:centos:8
Kernel: Linux 4.18.0-...
Architecture: x86-64
获取公网 IP 地址
上述 ip addr
和 ifconfig
命令通常只能显示主机在局域网(LAN)中的内网 IP 地址,如果您的服务器需要对外提供服务,那么了解其公网 IP 地址至关重要,由于公网 IP 是由网络服务提供商(ISP)分配的,需要通过查询外部服务来获取。
您可以使用 curl
或 wget
等工具访问一些提供此服务的网站:
curl ifconfig.me
或者:
curl ipinfo.io/ip
执行命令后,终端会直接返回您的公网 IP 地址字符串,0.113.55
。
常用命令对比小编总结
为了方便您快速选择合适的工具,下表小编总结了本文介绍的主要命令:
命令 | 主要功能 | 备注 |
---|---|---|
ip addr 或 ip a | 查看所有网络接口的详细配置 | 现代推荐方法,信息全面,系统默认安装。 |
ifconfig | 查看网络接口配置 | 传统方法,输出简洁,但功能较弱,新系统需手动安装 net-tools 。 |
hostname | 查看当前主机名 | 简单直接。 |
hostnamectl | 查看详细的主机名及相关信息 | 现代推荐方法,信息丰富。 |
curl ifconfig.me | 获取主机的公网 IP 地址 | 需要主机能够访问互联网。 |
相关问答 (FAQs)
为什么在 CentOS 7/8 中输入 ifconfig
提示 command not found?
解答: 这是因为从 CentOS 7 开始,系统默认使用 iproute2
软件包(包含 ip
命令)来替代老旧的 net-tools
软件包(包含 ifconfig
、route
等命令)。ip
命令功能更强大,能更好地支持现代网络特性(如网络命名空间),如果您仍然习惯使用 ifconfig
,可以通过 sudo yum install net-tools
命令手动安装它,但官方和社区都推荐您尽快适应并使用 ip
命令。
如何区分命令输出中的 IPv4 和 IPv6 地址?
解答: 在 ip addr
或 ifconfig
的输出中,可以通过几个关键特征来区分:
- 标签前缀:IPv4 地址通常标记为
inet
,而 IPv6 地址标记为inet6
。 - 格式差异:IPv4 地址由四组 0-255 的数字组成,中间用点号分隔,
168.1.100
,IPv6 地址则由八组四位十六进制数组成,中间用冒号分隔,fe80::a00:27ff:fe2e:c664
,长度明显更长。 - 数量:一个网络接口通常只有一个主要的 IPv4 地址,但可能会有多个 IPv6 地址(如链路本地地址、全局单播地址等)。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复