在 CentOS 系统管理中,准确、高效地查看和诊断网络信息是一项至关重要的基础技能,无论是排查网络故障、配置服务,还是进行安全审计,都离不开对网络状态的深刻理解,本文将系统性地介绍在 CentOS 环境下查看各类网络信息的常用命令和方法,从基础的 IP 地址配置到复杂的网络连接状态,帮助您全面掌握网络诊断的核心工具。

查看网络接口与 IP 地址
这是最基础也是最频繁的网络操作,我们需要知道系统有哪些网络接口,它们的 MAC 地址是什么,以及分配了哪些 IP 地址。
使用 ip 命令(推荐)
ip 命令是 iproute2 软件包的一部分,是现代 Linux 发行版中用于网络配置和状态查询的首选工具,功能强大且输出信息清晰。
ip addr show # 或者使用简写 ip a
该命令的输出通常会包含以下关键信息:
- 1: lo: 回环接口,用于本机内部通信,IP 地址通常为 127.0.0.1。
- 2: eth0: 以太网接口(名称可能不同,如 enp0s3, ens33 等)。
link/ether 00:1a:2b:3c:4d:5e: 这是网卡的 MAC 地址,是全球唯一的硬件标识符。inet 192.168.1.100/24: 这是分配给该接口的 IPv4 地址以及子网掩码(/24 表示 255.255.255.0)。state UP: 表示该接口的物理链路是激活的。inet6 fe80::...: 这是链路本地 IPv6 地址。
使用 ifconfig 命令(传统方法)
ifconfig 来自于 net-tools 软件包,是一个非常经典的工具,但在较新的 CentOS 版本中默认可能未安装。
# 如果未安装,需要先安装 sudo yum install net-tools # 查看信息 ifconfig
ifconfig 的输出相对简洁,但提供的信息不如 ip 命令全面(它不直接显示多路由表信息)。
检查路由表
路由表决定了数据包从本机发往目标地址的路径,查看路由表是排查网络连通性问题的关键步骤。
使用 ip route 命令(推荐)
ip route show # 或者简写 ip r
输出示例:
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
default via 192.168.1.1: 这条是默认路由,所有发往未知网络(即不匹配其他特定路由)的数据包,都会被发送到网关地址168.1.1。168.1.0/24 dev eth0 ...: 这是本地网络的路由,发往168.1.0/24网段的数据包,会直接通过eth0接口发送。
使用 route -n 命令(传统方法)
-n 参数的作用是以数字形式显示 IP 地址,避免 DNS 查询,加快显示速度。
route -n
监控网络连接与端口
了解系统当前有哪些网络连接、哪些服务在监听端口,对于系统安全和故障排查至关重要。

使用 ss 命令(推荐)
ss 是 netstat 的现代替代品,它更快速、更高效,能够从内核直接获取信息。
常用组合 ss -tulnp:
-t: 显示 TCP 协议的连接。-u: 显示 UDP 协议的连接。-l: 只显示处于监听状态的套接字。-n: 以数字形式显示地址和端口。-p: 显示使用该套接字的进程信息。
ss -tulnp
输出示例:
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1104,fd=3))
LISTEN 0 80 [::]:22 [::]:* users:(("sshd",pid=1104,fd=4))
从上例可以看出,sshd 进程(PID 为 1104)正在监听 TCP 的 22 端口(SSH 服务)。
使用 netstat 命令(传统方法)
netstat 是一个非常熟悉的工具,功能与 ss 类似,但性能稍差。
netstat -tulnp
DNS 解析配置
DNS 负责将域名(如 www.google.com)解析为 IP 地址。
查看 /etc/resolv.conf 文件
该文件是客户端 DNS 配置的核心。
cat /etc/resolv.conf
输出示例:
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114
nameserver: 指定了 DNS 服务器的地址,系统会按顺序依次尝试查询。
使用 dig 或 nslookup 测试解析
dig 功能更强大,输出信息更详细;nslookup 则更简单直观。

# 使用 dig 查询 dig www.baidu.com # 使用 nslookup 查询 nslookup www.baidu.com
主机名与本地解析
查看主机名
hostname
查看 /etc/hosts 文件
该文件用于本地域名解析,优先级高于 DNS,可以在此文件中添加自定义的域名与 IP 映射。
cat /etc/hosts
为了方便记忆和选择,下表小编总结了现代命令与传统命令的对应关系。
| 功能描述 | 现代命令 (推荐) | 传统命令 |
|---|---|---|
| 查看IP地址和接口 | ip addr / ip a |
ifconfig |
| 查看路由表 | ip route / ip r |
route -n |
| 查看网络连接/端口 | ss -tulnp |
netstat -tulnp |
相关问答 (FAQs)
为什么我在新安装的 CentOS 8/9 上输入 ifconfig 命令会提示“command not found”?
解答: 这是因为从 CentOS 7 开始,系统默认使用 iproute2 工具集(包含 ip, ss 等命令)来替代老旧的 net-tools 工具集(包含 ifconfig, netstat, route 等命令)。net-tools 已被官方视为过时,因此默认不再安装,如果您仍然习惯使用 ifconfig,可以通过以下命令手动安装 net-tools 包:sudo yum install net-tools
我们强烈建议您尽快熟悉并使用 ip 和 ss 命令,因为它们是未来的标准,功能也更加强大。
我如何快速检查服务器的 80 端口(Web 服务)是否正在被监听?
解答: 您可以使用 ss 或 netstat 命令,并结合 grep 过滤工具来快速实现,最推荐的命令是:sudo ss -lntp | grep ':80 '
这个命令的含义是:
sudo: 因为-p选项需要查看进程信息,可能需要 root 权限。ss -lntp: 只显示监听状态的(-l)TCP(-t)连接,以数字形式(-n)显示并显示进程(-p)。| grep ':80 ': 将ss的输出通过管道传递给grep,只过滤出包含80的行,注意80后面有一个空格,可以避免匹配到 8080 等端口。
如果命令有输出,就表示有进程正在监听 80 端口,输出中会包含进程名和 PID,如果没有任何输出,则说明 80 端口当前没有被监听。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!