RHCE工程师认证学习笔记(七):网络配置与管理

大家好,欢迎回到RHCE9学习笔记系列。在前六篇文章中,我们覆盖了Linux基础、文件操作、权限、进程和软件包管理。今天,我们将进入Linux运维中最重要的领域之一:网络配置与管理。无论是在服务器上配置IP地址、调试网络问题,还是搭建各种网络服务,扎实的网络知识都是必不可少的。
1. RHEL9 网络管理概述
在RHEL 7之前,网络配置主要通过network服务配合/etc/sysconfig/network-scripts/下的脚本文件完成。从RHEL 7开始,NetworkManager成为默认的网络管理服务,它统一了网络配置的入口,提供了更灵活的管理方式。
NetworkManager 的核心优势:
统一管理:无论是有线、无线、VPN,还是虚拟网络设备,都可以通过同一套工具配置。
动态配置:支持网络热插拔和自动检测,适应移动办公和云环境。
多工具支持:提供图形界面(nm-connection-editor)、伪图形(nmtui)和命令行(nmcli)三种配置方式。
重要:NetworkManager 默认接管所有物理网卡,如果希望手动控制某些网卡,可以通过配置文件将其设为unmanaged。
2. 查看网络设备与连接状态
2.1 使用 nmcli 查看设备状态
nmcli(NetworkManager Command Line Interface)是 NetworkManager 的命令行工具,功能强大且支持补全。
查看所有网络设备的状态nmcli device status
输出示例:
DEVICE TYPE STATE CONNECTIONens160 ethernet connected ens160ens224 ethernet disconnected --lo loopback unmanaged --
各列含义:
DEVICE:网卡名称(如 ens160、eth0)
TYPE:设备类型(ethernet、wifi、bridge 等)
STATE:NetworkManager 对该设备的控制状态(connected 表示已连接,disconnected 表示未激活,unmanaged 表示未接管)
CONNECTION:当前使用的连接配置文件名称
2.2 查看连接配置文件
连接配置文件(connection)存储了特定网卡的 IP 地址、网关、DNS 等配置信息。一个网卡可以对应多个连接,但同一时间只能激活一个。
查看所有连接配置文件nmcli connection show# 查看指定连接的详细信息nmcli connection show ens160
3. 使用 nmcli 配置网络
3.1 添加一个新的连接配置文件
基本语法nmcli connection add con-name <名称> type <类型> ifname <网卡名># 示例:为 ens224 添加一个名为 eth1 的连接(DHCP)nmcli connection add con-name eth1 type ethernet ifname ens224# 示例:为 ens224 添加一个静态 IP 的连接nmcli connection add con-name eth1 type ethernet ifname ens224 </span> ipv4.addresses 192.168.50.100/24 </span> ipv4.gateway 192.168.50.1 </span> ipv4.dns 202.103.24.68,202.103.44.150 </span> ipv4.method manual
3.2 修改连接配置
修改 IP 地址nmcli connection modify eth1 ipv4.addresses 192.168.50.101/24# 修改 DNSnmcli connection modify eth1 ipv4.dns "8.8.8.8 8.8.4.4"# 修改为 DHCPnmcli connection modify eth1 ipv4.method auto# 设置开机自动连接nmcli connection modify eth1 connection.autoconnect yes
3.3 激活和停用连接
激活连接nmcli connection up eth1# 停用连接nmcli connection down eth1
3.4 删除连接
nmcli connection delete eth1
注意:删除连接不会删除网卡设备本身,只是移除了配置。
4. 使用 ip 命令(现代网络管理)
ip命令来自iproute2软件包,是ifconfig和route等传统工具的现代化替代。它功能强大,且语法统一。
4.1 查看网络接口信息
查看所有接口的详细信息ip addr show# 或简写ip a# 查看指定接口ip addr show ens160
4.2 添加/删除 IP 地址
添加 IP 地址(临时,重启失效)ip addr add 192.168.50.200/24 dev ens160# 删除 IP 地址ip addr del 192.168.50.200/24 dev ens160# 清除所有地址ip addr flush dev ens160
4.3 启动/停用网卡
ip link set ens160 up 启用ip link set ens160 down # 停用
4.4 查看和修改路由表
查看路由表ip route show# 或ip route# 添加默认网关ip route add default via 192.168.50.1# 添加静态路由ip route add 10.0.0.0/8 via 192.168.50.2# 删除路由ip route del default via 192.168.50.1
5. 传统网络命令(了解即可)
虽然现代Linux更推荐使用ip命令,但很多旧脚本和环境中仍会见到ifconfig、route、netstat等命令。它们来自net-tools包,未来可能会被移除。
5.1 ifconfig
查看所有接口ifconfig -a# 配置临时 IPifconfig ens160 192.168.50.200 netmask 255.255.255.0# 启用/禁用网卡ifconfig ens160 upifconfig ens160 down
5.2 route
查看路由表route -n# 添加默认网关route add default gw 192.168.50.1# 添加静态路由route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.50.2
5.3 netstat
netstat用于查看网络连接、路由表、接口统计等信息。
查看所有监听端口netstat -tulnp# 查看 TCP 连接状态netstat -ant# 查看路由表netstat -rn
注意:在 RHEL 9 中,netstat可能未预装,需要安装net-tools包。
5.4 ss – 更快的 socket 统计
ss是netstat的现代替代品,速度更快,输出更简洁。
查看所有 TCP 连接ss -t# 查看所有监听端口ss -tuln# 查看进程关联的连接ss -tunlp
6. 网络配置文件与持久化
虽然 NetworkManager 推荐使用nmcli管理配置,但配置文件仍然存在于/etc/sysconfig/network-scripts/目录下(RHEL 9 中可能不再默认生成,但兼容)。每个连接对应一个ifcfg-开头的文件。
6.1 配置文件示例(静态IP)
/etc/sysconfig/network-scripts/ifcfg-ens160DEVICE=ens160NAME=ens160ONBOOT=yesBOOTPROTO=noneIPADDR=192.168.50.100NETMASK=255.255.255.0GATEWAY=192.168.50.1DNS1=202.103.24.68DNS2=202.103.44.150
6.2 配置文件示例(DHCP)
DEVICE=ens160ONBOOT=yesBOOTPROTO=dhcp
6.3 应用配置文件
修改配置文件后,可以使用以下命令重新加载:
nmcli connection reload 重新加载所有连接nmcli connection up ens160 # 激活连接
7. 网络故障排查常用命令
7.1 ping – 测试连通性
ping -c 4 8.8.8.8
发送4个ICMP包ping -c 4 google.com # 测试域名解析和连通性
7.2 traceroute / tracepath – 路由追踪
traceroute 8.8.8.8 显示到目标的路由跳数tracepath 8.8.8.8 # 类似,但不需要root权限
7.3 dig / nslookup – DNS查询
dig www.baidu.com 详细的DNS查询结果nslookup www.baidu.com # 简单查询
7.4 ss / netstat – 端口和服务
ss -tuln 查看本机开放端口ss -tunp | grep :80 # 查看哪个进程占用80端口
7.5 tcpdump – 抓包分析
tcpdump -i ens160 抓取ens160网卡的数据包tcpdump -i ens160 port 80 # 只抓80端口tcpdump -i ens160 -w capture.pcap # 保存为文件,用Wireshark分析
8. 实战:配置静态 IP 并验证
假设我们要将ens160配置为静态 IP192.168.50.100/24,网关192.168.50.1,DNS202.103.24.68。
8.1 使用 nmcli 配置
1. 查看当前连接nmcli connection show# 2. 修改现有连接(假设已存在 ens160 连接)nmcli connection modify ens160 </span> ipv4.addresses 192.168.50.100/24 </span> ipv4.gateway 192.168.50.1 </span> ipv4.dns 202.103.24.68 </span> ipv4.method manual </span> connection.autoconnect yes# 3. 激活连接nmcli connection up ens160# 4. 验证ip addr show ens160ip route showping 192.168.50.1
8.2 验证 DNS 解析
cat /etc/resolv.conf 查看 DNS 配置ping www.baidu.com
9. 链路聚合(Bonding)
在生产环境中,常常需要将多块网卡绑定为一个逻辑接口,提供冗余或增加带宽。NetworkManager 简化了配置过程。
9.1 创建 bond 接口
创建 bond0 接口,模式为 active-backup(主备)nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup# 添加 slave 网卡nmcli connection add con-name bond0-slave1 ifname ens224 type bond-slave master bond0nmcli connection add con-name bond0-slave2 ifname ens256 type bond-slave master bond0# 配置 bond0 的 IP 地址(可选)nmcli connection modify bond0 ipv4.addresses 192.168.50.200/24 ipv4.method manual# 激活nmcli connection up bond0nmcli connection up bond0-slave1nmcli connection up bond0-slave2
9.2 查看 bond 状态
cat /proc/net/bonding/bond0
总结
本篇我们学习了 RHEL 9 网络管理的核心内容:
NetworkManager:现代 Linux 的网络管理服务,统一管理网络配置。
nmcli:强大的命令行配置工具,可以完成几乎所有网络管理任务。
ip 命令:新一代网络配置命令,替代 ifconfig/route。
传统命令:ifconfig、route、netstat 的使用方法,以备不时之需。
配置文件:了解 ifcfg 格式,但推荐使用 nmcli 修改。
故障排查:ping、traceroute、ss、tcpdump 等工具。
链路聚合:使用 bonding 实现网卡冗余。
掌握了这些知识,你就能在 RHEL 系统上灵活地配置各种网络环境,为后续搭建网络服务打下坚实的基础。
下一篇,我们将进入防火墙与 SELinux,学习如何保护系统安全,控制网络访问。敬请期待!
练习建议:
为你的虚拟机配置一个静态 IP,确保能正常上网和解析域名。
使用nmcli添加一个新的连接,临时切换 IP,观察网络变化。
用ss -tuln查看系统开放的端口,理解哪些服务在监听。
尝试在虚拟机上模拟双网卡,配置 bond 模式,并测试网卡故障时的切换效果。
标题:RHCE工程师认证学习笔记(七):网络配置与管理
作者:shuaiqijun
地址:https://www.shuaiqijun.com/articles/2026/03/26/1774504690521.html