CentOS系统下,具体都有哪些命令可以查看网络配置信息?

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

CentOS系统下,具体都有哪些命令可以查看网络配置信息?

查看网络接口与 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
  • : 这条是默认路由,所有发往未知网络(即不匹配其他特定路由)的数据包,都会被发送到网关地址 168.1.1
  • : 这是本地网络的路由,发往 168.1.0/24 网段的数据包,会直接通过 eth0 接口发送。

使用 route -n 命令(传统方法)

-n 参数的作用是以数字形式显示 IP 地址,避免 DNS 查询,加快显示速度。

route -n

监控网络连接与端口

了解系统当前有哪些网络连接、哪些服务在监听端口,对于系统安全和故障排查至关重要。

CentOS系统下,具体都有哪些命令可以查看网络配置信息?

使用 ss 命令(推荐)

ssnetstat 的现代替代品,它更快速、更高效,能够从内核直接获取信息。

常用组合 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 服务器的地址,系统会按顺序依次尝试查询。

使用 dignslookup 测试解析

dig 功能更强大,输出信息更详细;nslookup 则更简单直观。

CentOS系统下,具体都有哪些命令可以查看网络配置信息?

# 使用 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
我们强烈建议您尽快熟悉并使用 ipss 命令,因为它们是未来的标准,功能也更加强大。

我如何快速检查服务器的 80 端口(Web 服务)是否正在被监听?

解答: 您可以使用 ssnetstat 命令,并结合 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 端口当前没有被监听。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-01 17:40
下一篇 2024-08-23 16:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信